Key metrics
Ready-made summaries calculated on the server: the results of a day or a period, the user's tasks, and KPI progress, both the user's own and their colleagues'. One request replaces dozens of list queries. These methods power the MCP server tools get_my_day, get_my_tasks, get_my_kpi, and get_team_kpi.
Note
All values are calculated on behalf of the token owner and respect their access rights. Dates use the YYYY-MM-DD format; when a date is omitted, today in the user's time zone is used. Amounts are in the account's base currency.
Headers
For every method in this section:
| Name | Type | Description |
|---|---|---|
| Authorization* | String | Bearer XXXXXX.XXXXX.XXXXX |
My day
GET https://do.workzeal.com/dashboard/my/day
A summary for a day or a period: companies added, tasks, deals, invoices, money, forgotten companies, and the user's KPI. Every value comes in two versions: total covers all records the user can see, and mine covers the records the user is responsible for (for tasks: as the assignee or a curator).
Query Parameters
| Name | Type | Description |
|---|---|---|
| date | String | Start of the period. Defaults to today |
| date_to | String | End of the period. Defaults to date (a single day) |
| Name | Description |
|---|---|
| period | date_from, date_to: the period that was calculated |
| user | id, name: the token owner |
| companies_added | Companies added: total, mine |
| tasks | Tasks in the period: scheduled_total, done_total, mine_scheduled, mine_done; overdue: overdue_total, mine_overdue; breakdown by task type: by_type (type, total, done, mine, mine_done) |
| deals_created | Deals created: counts total / mine and amounts total_sum / mine_sum |
| invoices_issued | Invoices issued (documents whose type is marked as an invoice): total, total_sum, mine, mine_sum |
| money | Money movements: income, income_count, mine_income, expense, expense_count. Transfers between your own accounts are excluded |
| forgotten_companies | Forgotten companies, as in the Forgotten indicator of the company list: companies of monitored types with no open tasks from the end of the period onward. total, mine |
| my_kpi | The user's KPI: the same fields as in My KPI |
{
"status": "success",
"error": "",
"code": null,
"value": "{
\"period\": {\"date_from\": \"2026-09-29\", \"date_to\": \"2026-09-29\"},
\"user\": {\"id\": 37, \"name\": \"Kate Smith\"},
\"companies_added\": {\"total\": 12, \"mine\": 3},
\"tasks\": {\"scheduled_total\": 48, \"done_total\": 30, \"mine_scheduled\": 9, \"mine_done\": 6,
\"overdue_total\": 14, \"mine_overdue\": 2,
\"by_type\": [{\"type\": \"Call\", \"total\": 20, \"done\": 15, \"mine\": 5, \"mine_done\": 4}]},
\"deals_created\": {\"total\": 4, \"total_sum\": 82000, \"mine\": 1, \"mine_sum\": 25000},
\"invoices_issued\": {\"total\": 6, \"total_sum\": 41000, \"mine\": 2, \"mine_sum\": 9500},
\"money\": {\"income\": 39000, \"income_count\": 5, \"mine_income\": 15000, \"expense\": 4200, \"expense_count\": 3},
\"forgotten_companies\": {\"total\": 57, \"mine\": 8},
\"my_kpi\": {\"has_kpi\": true, \"period_progress_percent\": 64, ...}
}"
}
My tasks
GET https://do.workzeal.com/dashboard/my/tasks
The user's tasks for the day, plus overdue ones: tasks where the user is the assignee or a curator. Overdue means due before that day and not done.
Query Parameters
| Name | Type | Description |
|---|---|---|
| date | String | The day. Defaults to today |
| overdue_limit | Int | How many overdue tasks to list, from 1 to 100 (30 by default), most recent first. The total count is always returned |
| Name | Description |
|---|---|
| date | The day that was calculated |
| today | total, done, and the list of the day's tasks |
| overdue | total: how many are overdue in all, shown: how many are listed, tasks: the tasks themselves |
Task fields in the lists: id, type, status, done, date_start, date_finish, company_id, company_name, deal_id, note, result.
My KPI
GET https://do.workzeal.com/dashboard/kpi/my
Progress on the user's KPI plan for a period and month to date.
Query Parameters
| Name | Type | Description |
|---|---|---|
| date_from | String | Start of the period. Defaults to the 1st of the month of date_to |
| date_to | String | End of the period. Defaults to today |
| Name | Description |
|---|---|
| has_kpi | false if the user has no KPI plan; the other fields are then omitted |
| period_progress_percent | Average completion of the plan items for the period |
| month_to_date_progress_percent | The same, month to date |
| month_to_date | date_from, date_to: the month-to-date period |
| month_items | Plan items, month to date: name, measure (count or amount), plan (prorated to the period), actual, progress_percent |
Team KPI
GET https://do.workzeal.com/dashboard/kpi/team
KPI progress by employee and by department, best first. Only employees and departments that have a KPI plan are listed.
Warning
Requires permission for the "KPI users" and/or "KPI departments" reports. Without either, the method returns an error with code 403. With only one of them, the other list comes back empty (null) and the reason is given in users_access or departments_access.
Query Parameters
| Name | Type | Description |
|---|---|---|
| date_from | String | Start of the period. Defaults to the 1st of the month of date_to |
| date_to | String | End of the period. Defaults to today |
| department_id | Int | Only employees of this department. The department list is not returned in this case |
| Name | Description |
|---|---|
| period | date_from, date_to |
| users | Employees: user_id, name, department_id, department, progress_percent |
| users_access | ok, or why the list is missing |
| departments | Departments: department_id, name, progress_percent |
| departments_access | ok, or why the list is missing |
progress_percent is the average completion of the plan items for the period: the monthly plan is prorated to the period, and each item counts for no more than 100%.
Example
curl --location --request GET 'https://do.workzeal.com/dashboard/my/day?date=2026-09-22&date_to=2026-09-28' \
--header 'Authorization: Bearer XXXX-XXXXXXX-XXXXXXX'