Update a ticket by ticketId
curl --request PATCH \
--url https://demo.enneo.ai/api/mind/ticket/{ticketId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contractId": "376189",
"status": "open",
"workedOnBy": null,
"priority": "low",
"dueBy": 1609502400,
"firstResponseDueBy": 1609502400,
"tagIds": [
1
]
}
'{
"success": true,
"ticket": {
"id": 376189,
"direction": "in",
"from": "[email protected]",
"fromName": "Tom Mustermann",
"to": [
"[email protected]"
],
"ccEmails": [
"[email protected]"
],
"bccEmails": [
"[email protected]"
],
"replyCcEmails": [
"[email protected]"
],
"replyRecipients": {
"to": [
"[email protected]"
],
"cc": [
"[email protected]"
],
"bcc": []
},
"subchannelId": 123,
"externalTicketId": "EXT-12345",
"sentiment": "positive",
"language": "English",
"languageCode": "en",
"autoExecuteAt": "2023-11-07T05:31:56Z",
"aiSupportLevel": "unprocessed",
"isCustomerActive": true,
"interface": "internal",
"priority": "low",
"channel": "email",
"channelId": "32291c7e-1cce-4d4c-8269-15e6a6501466",
"status": "open",
"summary": "I want to relocate and send you a meter reading",
"subject": "I want to relocate and send you a meter reading",
"bodyPlain": "Sehr geehrter Kundenservice,\n\nkönnten Sie bitte den beiliegenden Zählerstand meines Zählers in Ihr System eintragen und mir eine Zwischenrechnung zukommen lassen? Außerdem würde ich gerne zu meiner neuen Adresse Hugo-Junkers-Str. 5 in 82031 Grünwald wechseln. Ich ziehe nächsten Donnerstag ein. Können Sie meinen alten Vertrag zum 1. November für mich kündigen?\n\nIch danke Ihnen, Tom",
"body": "<p>Sehr geehrter Kundenservice,</p><p>könnten Sie bitte den beiliegenden Zählerstand meines Zählers in Ihr System eintragen und mir eine Zwischenrechnung zukommen lassen? Außerdem würde ich gerne zu meiner neuen Adresse Hugo-Junkers-Str. 5 in 82031 Grünwald wechseln. Ich ziehe nächsten Donnerstag ein. Können Sie meinen alten Vertrag zum 1. November für mich kündigen?</p><p>Ich danke Ihnen, Tom</p>",
"bodyClean": "Sehr geehrter Kundenservice, könnten Sie bitte den beiliegenden Zählerstand meines Zählers in Ihr System eintragen und mir eine Zwischenrechnung zukommen lassen?",
"isEscalated": false,
"createdAt": "2022-12-13 22:18:06",
"modifiedAt": null,
"firstResponseDueBy": "2022-12-14 22:18:06",
"dueBy": "2022-12-15 22:18:06",
"closedAt": null,
"customer": {
"id": 83771,
"emailMatches": true,
"business": false,
"company": null,
"firstname": "Tom",
"lastname": "Mustermann",
"address": "Hugo-Junkers-Str. 5",
"phone": 49123456789,
"email": "[email protected]",
"tags": [
{
"id": 2,
"color": "green",
"name": "VIP"
}
],
"contracts": [
{
"id": 746839,
"orderId": 123,
"tenant": null,
"customerId": "123",
"signupDate": 1661126400,
"status": "active",
"statusCode": 5000,
"statusCodeTitle": "active",
"energy": "electricity",
"energyTypeId": 1,
"energySubTypeId": 1,
"email": "[email protected]",
"firstname": "John",
"lastname": "Doe",
"deliveryAddress": "Hugo-Junkers-Str. 5, 82031 Grünwald",
"iban": "DE89370400440532013000",
"monthlyDeposit": 53,
"startDate": 1661990400,
"endDate": null,
"consumption": 3477,
"counterNumber": "1ESY1160669167",
"productId": 1,
"productName": "Flex 24",
"productCode": "flx_24",
"campaignId": 1,
"salesChannelId": 1,
"unpaidDebt": 109.21,
"vatRate": 0.09,
"basePrice": 0.09,
"workingPrice": 0.09,
"billingAddress": "Rechnungssstraße 24, 10587 Berlin",
"business": false,
"phone": 491721041689,
"gridOperatorName": "E.ON Bayern AG",
"gridOperatorCode": 1000000000000,
"registers": [
{}
],
"erpUrls": [
{
"url": "https://erp-system.com/contract/123",
"logo": "powercloud"
}
],
"rawData": null,
"agentPreview": [
{
"label": "Tarif",
"value": "Flex 24",
"tooltip": "AP: 28.5 ct/kWh\nGP: 149.88 €/Jahr",
"url": "https://erp.example.com/contract/123"
}
],
"tabPreview": {
"color": "green",
"icon": "electricity"
}
}
],
"additionalData": {}
},
"customerId": "123",
"contractId": "746839",
"partnerId": 123,
"customerLegitimation": 30,
"customerLegitimationMessage": "Customer could not be confirmed",
"responderId": null,
"agentId": null,
"agent": {
"id": 1,
"firstName": "Max",
"lastName": "Mustermann",
"email": "[email protected]",
"phone": "+49 123 456789",
"lastSeen": "2022-08-12 12:21:21",
"type": "enneo",
"isSsoOnly": 0,
"lang": "de",
"nameAlias": "Johnny",
"externalId": "EMP-12345"
},
"assignedAgentIds": [
123
],
"assignedAgents": [
{
"id": 1,
"firstName": "Max",
"lastName": "Mustermann",
"email": "[email protected]",
"phone": "+49 123 456789",
"lastSeen": "2022-08-12 12:21:21",
"type": "enneo",
"isSsoOnly": 0,
"lang": "de",
"nameAlias": "Johnny",
"externalId": "EMP-12345"
}
],
"workedOnByIds": [
123
],
"workedOnBy": [
{
"id": 1,
"firstName": "Max",
"lastName": "Mustermann",
"email": "[email protected]",
"phone": "+49 123 456789",
"lastSeen": "2022-08-12 12:21:21",
"type": "enneo",
"isSsoOnly": 0,
"lang": "de",
"nameAlias": "Johnny",
"externalId": "EMP-12345"
}
],
"attachments": [
{
"id": "103013960646,",
"url": "https://storage.googleapis.com/enneo-attachments-public/a1/103013960646-4b1aa775/IMG_20230301_192712.jpg",
"name": "IMG_20230301_192712.jpg",
"size": 2292952,
"width": 3120,
"height": 4160,
"inline": false,
"fileEnding": "jpg",
"contentType": "image/jpeg",
"originalUrl": "https://storage.example.com/attachments/IMG_20230301_192712.jpg",
"extractedData": null,
"extractionStatus": "success",
"extractionData": {
"confidence": 0.815,
"meterValue": 87870.5
}
}
],
"additionalData": null,
"template": "<p>Hallo {{customer.firstname}},</p><p>%MESSAGE%</p><p>Viele Grüße,<br>{{agent.firstName}}</p>",
"tags": [
{
"id": 123,
"name": "Complaint",
"fullName": "Second Level: Complaint",
"parent": 6,
"reference": "ticket",
"type": "skill",
"visibility": "public",
"color": "grey",
"properties": [],
"complexity": "moderate",
"sla": 8,
"priority": "do-not-change",
"channels": [
"email",
"chat"
],
"subchannels": [
2,
4
],
"detectionDetails": {},
"assignment": [
"assignBySubchannel",
"assignByCustomLogic"
],
"testCase": {},
"modifiedBy": "John Doe",
"modifiedAt": "2024-08-29 14:38:12"
}
],
"tagIds": [
62,
61
],
"agentSkillsMatch": true,
"intents": [
{
"id": 1211221,
"code": "process_meter_reading",
"name": "Process a meter reading",
"contractId": "746839",
"confidence": 0.95,
"confidenceColor": "warning",
"verified": false,
"context": {},
"messagePreview": "We have successfully processed your meter reading",
"recipient": "[email protected]",
"tags": "prePopulated",
"data": {},
"options": [
{
"type": "enter_into_system",
"name": "Eintragen",
"icon": "check",
"recommended": true,
"order": 1
},
{
"type": "ignore",
"name": "Ignorieren",
"icon": "cancel",
"recommended": false,
"order": 2
},
{
"type": "forward_to_vnb",
"name": "An VNB verweisen",
"icon": "questionMark",
"recommended": false,
"order": 3
}
],
"infos": [
{
"type": "warning",
"message": "Reading is plausible",
"extraInfo": "Expected reading was 421 kWh. Plausbible because difference to 317 kWh is below threshold of 200 kWh"
}
],
"extraInfo": null,
"outcome": {
"aiAgentId": 1,
"success": true,
"messageLocalized": "Powercloud accepted meter reading",
"internalData": {
"requestEndpoint": "saveReadingByContractId",
"requestParams": "readingValue=21;date=2022-12-31"
},
"executedAt": "2022-12-13 22:18:06",
"userId": 1,
"sent": true,
"ticketClosed": true,
"recipient": "[email protected]",
"message": "We successfully processed your meter reading of 21 kWh dated Dec 31, 2022",
"template": "<p>Dear John,</p><p>%MESSAGE%</p><i>Mike from your service team</i>",
"sources": [
{
"type": "knowledgeSource",
"id": 376189,
"name": "Opening hours",
"url": "https://company.com/faq/376189",
"text": "Our service hours are from 8am to 5pm. We are closed on weekends. [...]"
}
],
"txId": "c916167c94"
}
}
],
"rawData": null,
"workitem": {}
}
}JWT-based authentication
The id of the ticket
Whether to include the ticket in time tracking, and thus worklog. Useful when a spam ticket should be closed, but it should not show up in the average handling time statistics
A JSON object containing changes
The id of the contract to set
"376189"
Status of ticket
open, pending, closed "open"
If set to null, flag that the agent has stopped working on this ticket
null
Priority of ticket
low, medium, high, urgent "low"
The due date to set
1609502400
The first response due date to set
1609502400
An array of tag ids to set
Successful operation
Data format of Enneo success messages
Operation was successful
true
A ticket, e.g. an email conversation, call or chat conversation.
⚠️ Response format varies by endpoint:
Show child attributes
376189
Direction of the ticket
in, out, internal "in"
Sender of email. Used when channel is not call. Null is channel=system
Provided when customer's request included a Name, e.g. 'Tom Mustermann [email protected]' for an email or during the chat bot initialization. Null when not set
"Tom Mustermann"
Recipent of request. Can be an array of email addresses, but also a phone number or chat group name depending on channel
E-Mail address, used when channel is email,portal,chat
⚠️ DEPRECATED: Use replyRecipients.cc instead. Any emails in CC. Used when channel=email, otherwise empty array
⚠️ DEPRECATED: Use replyRecipients.bcc instead. Any emails in BCC. Used when channel=email, otherwise empty array
⚠️ DEPRECATED: Use replyRecipients.cc instead. Any emails in CC for a reply. Used when channel=email, otherwise empty array
Recommended recipients for replying to this ticket. Calculated based on channel, direction, latest conversation, and ERP data. Returns null for system tickets (cannot be replied to).
Show child attributes
Primary recipients (email addresses or postal addresses depending on channel)
BCC recipients (email addresses only)
[]{
"to": ["[email protected]"],
"cc": ["[email protected]"],
"bcc": []
}ID of the subchannel
Unique identifier from an external ticketing system.
Can be provided when creating a ticket via POST /ticket to prevent duplicates. If a ticket with this externalTicketId already exists, it will be updated instead of creating a new one.
"EXT-12345"
AI-detected sentiment
"positive"
Detected language name
"English"
Detected language code
"en"
When the ticket should be auto-executed
Level of AI support for this ticket
unprocessed, human, bot, automated Whether the customer is currently active
Name of the ticketing system interface
internal "internal"
Priority of ticket
low, medium, high, urgent "low"
Channel of ticket
email, portal, phone, letter, system, chat, walkIn "email"
Unique ID of chat conversation. Used when channel=chat
"32291c7e-1cce-4d4c-8269-15e6a6501466"
Status of ticket
open, pending, closed "open"
Summary of request
"I want to relocate and send you a meter reading"
Subject of email
"I want to relocate and send you a meter reading"
Body of request in plain text form (no HTML).
⚠️ Only included in GET /ticket/{id}, NOT in POST /ticket/search responses. May be null if ticket has no body content.
"Sehr geehrter Kundenservice,\n\nkönnten Sie bitte den beiliegenden Zählerstand meines Zählers in Ihr System eintragen und mir eine Zwischenrechnung zukommen lassen? Außerdem würde ich gerne zu meiner neuen Adresse Hugo-Junkers-Str. 5 in 82031 Grünwald wechseln. Ich ziehe nächsten Donnerstag ein. Können Sie meinen alten Vertrag zum 1. November für mich kündigen?\n\nIch danke Ihnen, Tom"
Body of request in originial form (incl. HTML).
⚠️ Only included in GET /ticket/{id}, NOT in POST /ticket/search responses. May be null if ticket has no body content.
"<p>Sehr geehrter Kundenservice,</p><p>könnten Sie bitte den beiliegenden Zählerstand meines Zählers in Ihr System eintragen und mir eine Zwischenrechnung zukommen lassen? Außerdem würde ich gerne zu meiner neuen Adresse Hugo-Junkers-Str. 5 in 82031 Grünwald wechseln. Ich ziehe nächsten Donnerstag ein. Können Sie meinen alten Vertrag zum 1. November für mich kündigen?</p><p>Ich danke Ihnen, Tom</p>"
Version of body without any footers, signatures or other non-relevant content. Used as input for AI models.
⚠️ Only included in GET /ticket/{id}, NOT in POST /ticket/search responses. May be null if ticket has no body content.
"Sehr geehrter Kundenservice, könnten Sie bitte den beiliegenden Zählerstand meines Zählers in Ihr System eintragen und mir eine Zwischenrechnung zukommen lassen?"
false
"2022-12-13 22:18:06"
Last change of this ticket
null
Latest date by when this ticket should be responded to, but not necessarily solved
"2022-12-14 22:18:06"
Latest date by when this ticket should be resolved
"2022-12-15 22:18:06"
Date when this ticket was closed/resolved
null
Customer information associated with this ticket.
⚠️ Format varies by endpoint:
Show child attributes
83771
If false, the customer sent the email from an account that doesn't match our records. Always returns 'null' when customer is retrieved by customerId and not by ticketId
true
false
Name of the company. Null when customer is not a business but private
null
"Tom"
"Mustermann"
"Hugo-Junkers-Str. 5"
49123456789
Contracts that this customer has
Show child attributes
746839
123
If a customer has multiple tenants/brands, this is the tenant name. Currently only used for SAP
null
"123"
1661126400
"active"
5000
"active"
"electricity"
1
1
"John"
"Doe"
Address where the electricity/gas is being delivered to
"Hugo-Junkers-Str. 5, 82031 Grünwald"
"DE89370400440532013000"
53
1661990400
null
3477
"1ESY1160669167"
1
"Flex 24"
"flx_24"
1
1
109.21
VAT Rate, usually 0.19 (=19%) for electricity and 0.07 (=7%) for gas
0.09
0.09
0.09
Address where written communication should be sent to. NULL if same as delivery address
"Rechnungssstraße 24, 10587 Berlin"
false
491721041689
"E.ON Bayern AG"
1000000000000
Raw source data from the originating ERP system in the ERP-proprietary format is included here. Only provided on request.
null
Preview information shown to agents in the UI
Show child attributes
Label text shown to the agent
"Tarif"
Value text shown to the agent
"Flex 24"
Optional tooltip shown on hover
"AP: 28.5 ct/kWh\nGP: 149.88 €/Jahr"
Optional URL that opens when clicking the preview item
"https://erp.example.com/contract/123"
Preview information shown in contract tabs
Show child attributes
Color indicator for contract status
blue, green, red, grey, yellow, purple, orange, teal "green"
Icon shown in the tab
electricity, gas, other "electricity"
Client-specific data objects can be included here
Associated primary customer id of that ticket. Null if not detected by AI or not set by user
"123"
Associated primary contract id of that ticket. Null if not detected by AI or not set by user
"746839"
Associated partner id of that ticket. Null if not detected by AI or not set by user
123
Customer legitimation score:
30
Human-readable message explaining the customer legitimation status. Only provided when customerLegitimation is between 10 and 19.
"Customer could not be confirmed"
User ID of agent that authored the latest response to this ticket.
null
Agent ID associated to this ticket (if any).
null
Agent profile associated to this ticket. Null if no agent is assigned.
Show child attributes
User ID
1
First name
"Max"
Last name
"Mustermann"
Email address (read only)
Phone number
"+49 123 456789"
The last time the user was seen (read only)
"2022-08-12 12:21:21"
The type of the user
"enneo"
If 1, the user can only login via SSO. If 0, the user can login with password or SSO
0, 1 0
The language of the user
"de"
Alternative display name or alias for the user
"Johnny"
External identifier such as employee number or ID from external system
"EMP-12345"
Array of agent IDs that are assigned to this ticket
Agent ID
Array of agents that are assigned to this ticket
Show child attributes
User ID
1
First name
"Max"
Last name
"Mustermann"
Email address (read only)
Phone number
"+49 123 456789"
The last time the user was seen (read only)
"2022-08-12 12:21:21"
The type of the user
"enneo"
If 1, the user can only login via SSO. If 0, the user can login with password or SSO
0, 1 0
The language of the user
"de"
Alternative display name or alias for the user
"Johnny"
External identifier such as employee number or ID from external system
"EMP-12345"
Array of agent IDs that worked on this ticket in last hour
Agent ID
Array of agent IDs that worked on this ticket in last hour
Show child attributes
User ID
1
First name
"Max"
Last name
"Mustermann"
Email address (read only)
Phone number
"+49 123 456789"
The last time the user was seen (read only)
"2022-08-12 12:21:21"
The type of the user
"enneo"
If 1, the user can only login via SSO. If 0, the user can login with password or SSO
0, 1 0
The language of the user
"de"
Alternative display name or alias for the user
"Johnny"
External identifier such as employee number or ID from external system
"EMP-12345"
Attachments associated with this ticket (filtered: non-inline attachments or PDFs only).
⚠️ Only included in GET /ticket/{id}, NOT in POST /ticket/search responses.
Show child attributes
id of attachment
103013960646
"https://client.enneo.ai/attachments/reading_w23po_107647890574i49994_(1).pdf"
"reading_w23po_107647890574i49994_(1).pdf"
size of attachment in bytes.
721592
width of image attachment in pixels. Can be ommitted for non-image attachments.
3120
height of image attachment in pixels. Can be ommitted for non-image attachments.
4160
true if attachment is an inline image
false
file ending of attachment
"pdf"
content type of attachment
"application/pdf"
url of original attachment, most likely contains invalid temporary access token
"https://storage.example.com/attachments/reading_w23po_107647890574i49994_(1).pdf"
data extracted from the attachment, e.g. a PDF text or a meter reading
Status of the current extraction. Valid options: "notStarted", "inProgress", "success", "error"
"notStarted"
Data extracted from the attachment by meterReadingMicroservice
{ "confidence": 1, "meterValue": 1234 }Client-specific data objects can be included here
null
Generic email template with placeholders like "Hello {{customer.firstname}}, %MESSAGE%, Best regards {{agent.firstName}}".
⚠️ Only included in GET /ticket/{id}, NOT in POST /ticket/search responses. May be null if no template is configured for this subchannel.
"<p>Hallo {{customer.firstname}},</p><p>%MESSAGE%</p><p>Viele Grüße,<br>{{agent.firstName}}</p>"
Tags loaded from intents
Show child attributes
Internal id, e.g. 123
123
e.g. "Complaint"
"Complaint"
The full name when not shown in a tree
"Second Level: Complaint"
The id of the parent tag. null if on root level. Can be created to create the tree structure of tags
6
To what this tag can be assigned to
ticket, contract, customer "ticket"
Type of the tag
skill, product, brand, customerProperty, contractProperty, other "skill"
Visibility of the tag
public, private, disabled "public"
Color of the tag. Default is grey
grey, green, red, blue, yellow, purple, orange, teal "grey"
An array of strings that specify special properties. Currently only ['defaultSkill'], if this tag should be assigned if no skill was found
defaultSkill []The complexity of the tag
"moderate"
SLA in business hours. So if we have business hours from 9-17h, an 8 hour SLA means ticket has to be solved within one day. NULL means no SLA is assigned.
8
If set to anything other than do-not-change, then the ticket priority will be set to this value if the tag was assigned (either manually or via AI)
do-not-change, low, medium, high "do-not-change"
Channels for which this tag can be detected. If empty or null, then this tag can be assigned to all channels.
["email", "chat"]Subchannels (=Mailboxes/Chat channels) for which this tag can be detected. If empty or null, then this tag can be assigned to all subchannels.
[2, 4]Details how the AI agent is detected
Specifies how this tag is being assigned. The details in the assignment are specified in the settings page of the tag. So for example 'assignBySubchannel', 'assignByCustomLogic' means this tag is auto-assigned for certain subchannels, and using a custom logic defined in an executor.
assignByChannel, assignBySubchannel, assignByTicketProperty, assignByContractProperty, assignByCustomerProperty, assignByCustomLogic, assignByAI ["assignBySubchannel", "assignByCustomLogic"]Test case for the tag
The user that last modified the tag
"John Doe"
The date and time when the tag was last modified
"2024-08-29 14:38:12"
List of tag IDs. When updating, replaces all existing tags. Cannot be used together with addTagIds/removeTagIds
[62, 61]If false, the agent doesn't have the skills to handle the ticket
true
AI-detected intents for this ticket.
⚠️ Format varies by endpoint:
Show child attributes
Internal ID of intent
1211221
Intent model code that resolves a specific issue. Currently supported is process_meter_reading, process_bank_data and process_installment_change
"process_meter_reading"
User-readable name of intent as defined by client
"Process a meter reading"
"746839"
Confidence how certain the AI is that this is correct. 0.95 means for example 95% certain. Defaults to 100% when verified by human.
0.95
A color indication of an intent showing the user how much user interaction is needed. 'success' indicates the AI is ready to execute, all other codes require user interaction first
success, neutral, warning, danger "warning"
True if intent has been verified by human
false
Intent-specific additional data to be shown to the user so he has relevant information about the intent. Data type varies by intent code
A preview of the response a customer would receive when executing this intent. Not always available, e.g. when the respond depends on user-input
"We have successfully processed your meter reading"
Tags to show to the user. prePopulated means that all properties are already pre-filled by the AI and the user can just insert the template to the body. adaptionNeeded is the opposite, and means the user still needs to modify the text. writesToErp means that upon execution of the intent a write is done to the ERP system, like a insertion of a meter reading or the creation of a bill.
prePopulated, adaptionNeeded, writesToErp Intent-specific data object showing all the data that was extracted from the ticket in a structured form. Data type varies by intent code
Different options that the user is given. Every option is a new button in the UI
[
{
"type": "enter_into_system",
"name": "Eintragen",
"icon": "check",
"recommended": true,
"order": 1
},
{
"type": "ignore",
"name": "Ignorieren",
"icon": "cancel",
"recommended": false,
"order": 2
},
{
"type": "forward_to_vnb",
"name": "An VNB verweisen",
"icon": "questionMark",
"recommended": false,
"order": 3
}
]Show child attributes
success, neutral, warning, danger "warning"
"Reading is plausible"
Extra-Information shown in tooltip. Info-Icon only shown if not null
"Expected reading was 421 kWh. Plausbible because difference to 317 kWh is below threshold of 200 kWh"
Extra-Information shown in tooltip. Info-Icon only shown if not null
null
Shows the outcome (if the intent was already executed)
Show child attributes
ID of the AI agent that was executed
1
true
Human-readable message, usually from the backend system. Already localized.
"Powercloud accepted meter reading"
Technical output for debugging purposes
{
"requestEndpoint": "saveReadingByContractId",
"requestParams": "readingValue=21;date=2022-12-31"
}Date and time when intent was executed
"2022-12-13 22:18:06"
User ID of user that triggered the intent. 0 for system user
1
Was the email / chat message / etc. described in this object successfully sent?
Was the ticket closed?
true
"We successfully processed your meter reading of 21 kWh dated Dec 31, 2022"
"<p>Dear John,</p><p>%MESSAGE%</p><i>Mike from your service team</i>"
Any sources that were used to create the result
Show child attributes
The type of source used. ticket = A similar ticket existed and that response was used as a basis knowledgeSource = An external knowledge source was used, usually a company Wiki or FAQ template = A predefined text template could be applied languageModel = If the AI model did not use anything end created the answer by itself
ticket, knowledgeSource, template, languageModel "knowledgeSource"
Reference to the entry id, e.g. ticketId (if type=ticket)
376189
Name of reference (e.g. FAQ title or ticket title)
"Opening hours"
URL to associated source. null for sources with internal ids (tickets and templates) or if non-existant (language model source)
"https://company.com/faq/376189"
Full text that was used as source
"Our service hours are from 8am to 5pm. We are closed on weekends. [...]"
Unique transaction id. Corresponds to a log entry in enneo
"c916167c94"
Raw source data from the originating system in its proprietary format.
Only included if explicitly requested via includeRawData=true query parameter.
null
Additional metadata for system-generated tickets (channel=system). Used internally for automated processes.
⚠️ Only included in GET /ticket/{id} AND only when channel=system. Returns null for all other tickets.
curl --request PATCH \
--url https://demo.enneo.ai/api/mind/ticket/{ticketId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"contractId": "376189",
"status": "open",
"workedOnBy": null,
"priority": "low",
"dueBy": 1609502400,
"firstResponseDueBy": 1609502400,
"tagIds": [
1
]
}
'{
"success": true,
"ticket": {
"id": 376189,
"direction": "in",
"from": "[email protected]",
"fromName": "Tom Mustermann",
"to": [
"[email protected]"
],
"ccEmails": [
"[email protected]"
],
"bccEmails": [
"[email protected]"
],
"replyCcEmails": [
"[email protected]"
],
"replyRecipients": {
"to": [
"[email protected]"
],
"cc": [
"[email protected]"
],
"bcc": []
},
"subchannelId": 123,
"externalTicketId": "EXT-12345",
"sentiment": "positive",
"language": "English",
"languageCode": "en",
"autoExecuteAt": "2023-11-07T05:31:56Z",
"aiSupportLevel": "unprocessed",
"isCustomerActive": true,
"interface": "internal",
"priority": "low",
"channel": "email",
"channelId": "32291c7e-1cce-4d4c-8269-15e6a6501466",
"status": "open",
"summary": "I want to relocate and send you a meter reading",
"subject": "I want to relocate and send you a meter reading",
"bodyPlain": "Sehr geehrter Kundenservice,\n\nkönnten Sie bitte den beiliegenden Zählerstand meines Zählers in Ihr System eintragen und mir eine Zwischenrechnung zukommen lassen? Außerdem würde ich gerne zu meiner neuen Adresse Hugo-Junkers-Str. 5 in 82031 Grünwald wechseln. Ich ziehe nächsten Donnerstag ein. Können Sie meinen alten Vertrag zum 1. November für mich kündigen?\n\nIch danke Ihnen, Tom",
"body": "<p>Sehr geehrter Kundenservice,</p><p>könnten Sie bitte den beiliegenden Zählerstand meines Zählers in Ihr System eintragen und mir eine Zwischenrechnung zukommen lassen? Außerdem würde ich gerne zu meiner neuen Adresse Hugo-Junkers-Str. 5 in 82031 Grünwald wechseln. Ich ziehe nächsten Donnerstag ein. Können Sie meinen alten Vertrag zum 1. November für mich kündigen?</p><p>Ich danke Ihnen, Tom</p>",
"bodyClean": "Sehr geehrter Kundenservice, könnten Sie bitte den beiliegenden Zählerstand meines Zählers in Ihr System eintragen und mir eine Zwischenrechnung zukommen lassen?",
"isEscalated": false,
"createdAt": "2022-12-13 22:18:06",
"modifiedAt": null,
"firstResponseDueBy": "2022-12-14 22:18:06",
"dueBy": "2022-12-15 22:18:06",
"closedAt": null,
"customer": {
"id": 83771,
"emailMatches": true,
"business": false,
"company": null,
"firstname": "Tom",
"lastname": "Mustermann",
"address": "Hugo-Junkers-Str. 5",
"phone": 49123456789,
"email": "[email protected]",
"tags": [
{
"id": 2,
"color": "green",
"name": "VIP"
}
],
"contracts": [
{
"id": 746839,
"orderId": 123,
"tenant": null,
"customerId": "123",
"signupDate": 1661126400,
"status": "active",
"statusCode": 5000,
"statusCodeTitle": "active",
"energy": "electricity",
"energyTypeId": 1,
"energySubTypeId": 1,
"email": "[email protected]",
"firstname": "John",
"lastname": "Doe",
"deliveryAddress": "Hugo-Junkers-Str. 5, 82031 Grünwald",
"iban": "DE89370400440532013000",
"monthlyDeposit": 53,
"startDate": 1661990400,
"endDate": null,
"consumption": 3477,
"counterNumber": "1ESY1160669167",
"productId": 1,
"productName": "Flex 24",
"productCode": "flx_24",
"campaignId": 1,
"salesChannelId": 1,
"unpaidDebt": 109.21,
"vatRate": 0.09,
"basePrice": 0.09,
"workingPrice": 0.09,
"billingAddress": "Rechnungssstraße 24, 10587 Berlin",
"business": false,
"phone": 491721041689,
"gridOperatorName": "E.ON Bayern AG",
"gridOperatorCode": 1000000000000,
"registers": [
{}
],
"erpUrls": [
{
"url": "https://erp-system.com/contract/123",
"logo": "powercloud"
}
],
"rawData": null,
"agentPreview": [
{
"label": "Tarif",
"value": "Flex 24",
"tooltip": "AP: 28.5 ct/kWh\nGP: 149.88 €/Jahr",
"url": "https://erp.example.com/contract/123"
}
],
"tabPreview": {
"color": "green",
"icon": "electricity"
}
}
],
"additionalData": {}
},
"customerId": "123",
"contractId": "746839",
"partnerId": 123,
"customerLegitimation": 30,
"customerLegitimationMessage": "Customer could not be confirmed",
"responderId": null,
"agentId": null,
"agent": {
"id": 1,
"firstName": "Max",
"lastName": "Mustermann",
"email": "[email protected]",
"phone": "+49 123 456789",
"lastSeen": "2022-08-12 12:21:21",
"type": "enneo",
"isSsoOnly": 0,
"lang": "de",
"nameAlias": "Johnny",
"externalId": "EMP-12345"
},
"assignedAgentIds": [
123
],
"assignedAgents": [
{
"id": 1,
"firstName": "Max",
"lastName": "Mustermann",
"email": "[email protected]",
"phone": "+49 123 456789",
"lastSeen": "2022-08-12 12:21:21",
"type": "enneo",
"isSsoOnly": 0,
"lang": "de",
"nameAlias": "Johnny",
"externalId": "EMP-12345"
}
],
"workedOnByIds": [
123
],
"workedOnBy": [
{
"id": 1,
"firstName": "Max",
"lastName": "Mustermann",
"email": "[email protected]",
"phone": "+49 123 456789",
"lastSeen": "2022-08-12 12:21:21",
"type": "enneo",
"isSsoOnly": 0,
"lang": "de",
"nameAlias": "Johnny",
"externalId": "EMP-12345"
}
],
"attachments": [
{
"id": "103013960646,",
"url": "https://storage.googleapis.com/enneo-attachments-public/a1/103013960646-4b1aa775/IMG_20230301_192712.jpg",
"name": "IMG_20230301_192712.jpg",
"size": 2292952,
"width": 3120,
"height": 4160,
"inline": false,
"fileEnding": "jpg",
"contentType": "image/jpeg",
"originalUrl": "https://storage.example.com/attachments/IMG_20230301_192712.jpg",
"extractedData": null,
"extractionStatus": "success",
"extractionData": {
"confidence": 0.815,
"meterValue": 87870.5
}
}
],
"additionalData": null,
"template": "<p>Hallo {{customer.firstname}},</p><p>%MESSAGE%</p><p>Viele Grüße,<br>{{agent.firstName}}</p>",
"tags": [
{
"id": 123,
"name": "Complaint",
"fullName": "Second Level: Complaint",
"parent": 6,
"reference": "ticket",
"type": "skill",
"visibility": "public",
"color": "grey",
"properties": [],
"complexity": "moderate",
"sla": 8,
"priority": "do-not-change",
"channels": [
"email",
"chat"
],
"subchannels": [
2,
4
],
"detectionDetails": {},
"assignment": [
"assignBySubchannel",
"assignByCustomLogic"
],
"testCase": {},
"modifiedBy": "John Doe",
"modifiedAt": "2024-08-29 14:38:12"
}
],
"tagIds": [
62,
61
],
"agentSkillsMatch": true,
"intents": [
{
"id": 1211221,
"code": "process_meter_reading",
"name": "Process a meter reading",
"contractId": "746839",
"confidence": 0.95,
"confidenceColor": "warning",
"verified": false,
"context": {},
"messagePreview": "We have successfully processed your meter reading",
"recipient": "[email protected]",
"tags": "prePopulated",
"data": {},
"options": [
{
"type": "enter_into_system",
"name": "Eintragen",
"icon": "check",
"recommended": true,
"order": 1
},
{
"type": "ignore",
"name": "Ignorieren",
"icon": "cancel",
"recommended": false,
"order": 2
},
{
"type": "forward_to_vnb",
"name": "An VNB verweisen",
"icon": "questionMark",
"recommended": false,
"order": 3
}
],
"infos": [
{
"type": "warning",
"message": "Reading is plausible",
"extraInfo": "Expected reading was 421 kWh. Plausbible because difference to 317 kWh is below threshold of 200 kWh"
}
],
"extraInfo": null,
"outcome": {
"aiAgentId": 1,
"success": true,
"messageLocalized": "Powercloud accepted meter reading",
"internalData": {
"requestEndpoint": "saveReadingByContractId",
"requestParams": "readingValue=21;date=2022-12-31"
},
"executedAt": "2022-12-13 22:18:06",
"userId": 1,
"sent": true,
"ticketClosed": true,
"recipient": "[email protected]",
"message": "We successfully processed your meter reading of 21 kWh dated Dec 31, 2022",
"template": "<p>Dear John,</p><p>%MESSAGE%</p><i>Mike from your service team</i>",
"sources": [
{
"type": "knowledgeSource",
"id": 376189,
"name": "Opening hours",
"url": "https://company.com/faq/376189",
"text": "Our service hours are from 8am to 5pm. We are closed on weekends. [...]"
}
],
"txId": "c916167c94"
}
}
],
"rawData": null,
"workitem": {}
}
}