curl --request GET \
--url https://demo.enneo.ai/api/mind/export/reporting_worklog \
--header 'Authorization: Bearer <token>'[
{
"date": "2024-05-10 14:52:37",
"name": "Jane Doe",
"ticketId": 233,
"conversationId": null,
"userId": 1,
"action": "writeAction",
"duration": 206,
"durationAfterWork": 0,
"reOpened": 0,
"status": "active",
"aiAgent": null,
"topic": "Billing",
"subTopic": "Payment reminder",
"allTags": "Billing, Payment reminder",
"tags": "[\"Billing\", \"Payment reminder\"]",
"channel": "email",
"department": "Customer care",
"teams": "[\"Customer care\"]",
"email": "jane@example.com",
"rawData": "{...}",
"aiAutomationLevel": 3,
"customerIdentifiedCorrectly": 1,
"tagsIdentifiedCorrectly": 1,
"textAssistanceAccuracy": null,
"aiAgentsUsed": "[]",
"skippedTicket": 0,
"netSecondsClosedAfterSLA": -3600,
"closingDateForSLA": "2024-05-13 16:15:00",
"statusActionDetail": null,
"pendingDueBy": null,
"pendingSeconds": null,
"netPendingSeconds": null,
"firstPendingAt": null,
"userWorklogId": 1,
"timesSetToOpen": 0
}
]Export worklog activies. A work log is further defined in the Enneo documentation, section “Analytics”
Example request for worklog export:
GET /export/reporting_worklog?limit=1&offset=0&orderByField=duration&orderByDirection=asc&format=json&filters[0][key]=date&filters[0][comparator]=between&filters[0][from]=2024-05-10&filters[0][to]=2024-05-11&filters[1][key]=action&filters[1][comparator]=in&filters[1][values][]=writeAction&filters[1][values][]=statusAction
Synchronous limits apply (≤ 1,000 rows for Excel or ≤ 300,000 rows for CSV / JSON). Larger exports are processed asynchronously and delivered via email.
curl --request GET \
--url https://demo.enneo.ai/api/mind/export/reporting_worklog \
--header 'Authorization: Bearer <token>'[
{
"date": "2024-05-10 14:52:37",
"name": "Jane Doe",
"ticketId": 233,
"conversationId": null,
"userId": 1,
"action": "writeAction",
"duration": 206,
"durationAfterWork": 0,
"reOpened": 0,
"status": "active",
"aiAgent": null,
"topic": "Billing",
"subTopic": "Payment reminder",
"allTags": "Billing, Payment reminder",
"tags": "[\"Billing\", \"Payment reminder\"]",
"channel": "email",
"department": "Customer care",
"teams": "[\"Customer care\"]",
"email": "jane@example.com",
"rawData": "{...}",
"aiAutomationLevel": 3,
"customerIdentifiedCorrectly": 1,
"tagsIdentifiedCorrectly": 1,
"textAssistanceAccuracy": null,
"aiAgentsUsed": "[]",
"skippedTicket": 0,
"netSecondsClosedAfterSLA": -3600,
"closingDateForSLA": "2024-05-13 16:15:00",
"statusActionDetail": null,
"pendingDueBy": null,
"pendingSeconds": null,
"netPendingSeconds": null,
"firstPendingAt": null,
"userWorklogId": 1,
"timesSetToOpen": 0
}
]JWT-based authentication
Export format. Defaults to the backend defaultDateExportFormat setting.
xlsx, csv, json The number of items to return
1 <= x <= 1000The number of items to skip
x >= 0Column used to order the result set (e.g. date, duration, department).
Sort direction applied to orderByField.
asc, desc Export scheduled or returned successfully.
Timestamp of the worklog entry. When reportingPrivacyLevel is pseudonymized, only the date portion is returned (time stripped).
Name of the user who performed the action
ID of related ticket. Omitted when reportingPrivacyLevel is pseudonymized.
ID of related conversation. Omitted when reportingPrivacyLevel is pseudonymized.
ID of the user. Omitted when reportingPrivacyLevel is pseudonymized.
Type of action performed
closeAction, readAction, statusAction, writeAction, autoProcessAction Duration of the action in seconds
Duration of after-work in seconds
Whether the ticket was reopened (0 or 1)
Ticket status at time of action
Name of the AI agent involved
Primary topic (top-level tag name)
Sub-topic (child tag name)
Comma-separated list of all assigned tag names
JSON array of assigned tag names
Communication channel
email, portal, phone, system, chat, walkIn, letter Department handling the ticket
JSON array of team names the user belongs to
Email of the user. Omitted when reportingPrivacyLevel is pseudonymized or partiallyPseudonymized (without permission).
Full ticket payload as JSON string. Omitted when reportingPrivacyLevel is pseudonymized.
AI automation level (0–5)
Whether the customer was correctly identified (0 or 1)
Whether tags were correctly identified (0 or 1)
Accuracy score of text assistance
JSON array of AI agent identifiers used during processing
Whether the ticket was skipped (0 or 1)
Net seconds the ticket was closed after the SLA deadline (excludes pending time; negative = closed before SLA)
Effective closing date used for SLA calculation
Detail of the status action (e.g. sub-status reason)
Due-by timestamp while ticket was in pending state
Total seconds the ticket spent in pending state
Net seconds in pending state (adjusted)
Timestamp when ticket first entered pending state
ID of the user worklog entry
Number of times the ticket was set back to open status
[
{
"date": "2024-05-10 14:52:37",
"name": "Jane Doe",
"ticketId": 233,
"conversationId": null,
"userId": 1,
"action": "writeAction",
"duration": 206,
"durationAfterWork": 0,
"reOpened": 0,
"status": "active",
"aiAgent": null,
"topic": "Billing",
"subTopic": "Payment reminder",
"allTags": "Billing, Payment reminder",
"tags": "[\"Billing\", \"Payment reminder\"]",
"channel": "email",
"department": "Customer care",
"teams": "[\"Customer care\"]",
"email": "jane@example.com",
"rawData": "{...}",
"aiAutomationLevel": 3,
"customerIdentifiedCorrectly": 1,
"tagsIdentifiedCorrectly": 1,
"textAssistanceAccuracy": null,
"aiAgentsUsed": "[]",
"skippedTicket": 0,
"netSecondsClosedAfterSLA": -3600,
"closingDateForSLA": "2024-05-13 16:15:00",
"statusActionDetail": null,
"pendingDueBy": null,
"pendingSeconds": null,
"netPendingSeconds": null,
"firstPendingAt": null,
"userWorklogId": 1,
"timesSetToOpen": 0
}
]