API Dokumentation
ticket
- GETGet next ticket id to work on
- POSTGet a list of tickets
- POSTCreate a ticket
- PATCHUpdate a few tickets at once
- GETGet a ticket
- PATCHUpdate a ticket
- GETGet ticket variables
- GETGet a tickets history
- POSTForward a ticket
- POSTAuto-execute a ticket
- GETPing a ticket
- GETGet ticket activity
- GETGet ticket stats
- GETGet agent queue status
customer
intent
aiAgent
- GETList of all available AI agents as an array
- GETList of all available AI agents as an tree based on associated tag
- POSTLoad enneo default AI Agents
- POSTCreate a new aiAgent
- GETGet an AI Agent by id
- DELDelete an existing AI Agent
- PATCHUpdate an existing AI Agent
- GETGet similar tickets for an AI Agent
- POSTPreview an AI Agent
- POSTGet the outcome of an AI Agent
aiQualityCheck
- GETGet all test runs with pagination
- POSTSchedule a new AI quality check
- GETGet a specific test run by ID
- DELDelete a specific test run by ID
- PATCHUpdate the expected result of a test ticket
- PATCHAccept the expected result of a test ticket
- POSTAccept ALL the expected results of for a test run
- GETGet all AI agents for which test runs can be triggered
- GETGet all AI agents for which test runs can be triggered
- GETGet test cases by AI agent ID
- POSTAdd test cases for an AI agent
- DELDelete a test case by ID
- PATCHUpdate a test case by ID
intentTemplate
profile
team
reminder
settings
- GETGet settings of a client
- POSTUpdate multiple settings at once
- GETGet settings of a client and return the results in a compact form
- GETGet settings of a client in a grouped way for a category
- PUTUpdate setting
- GETSearch settings
- GETGet Subchannels
- POSTAdd a new Subchannel
- DELDelete a Subchannel
- GETGet User Defined Functions
- POSTAdd a new User Defined Function
- DELDelete a User Defined Function
- GETRedirect to Microsoft authorization page
- GETCallback for Microsoft authorization
tag
cron
version
knowledgeSourceStructure
knowledgeSource
pcProxy
cortex
Get similar tickets for an AI Agent
curl --request GET \
--url https://demo.enneo.ai/api/mind/aiAgent/{id}/similarTickets
[
{
"id": 376189,
"from": "tom@gmail.com",
"fromName": "Tom Mustermann",
"to": [
"service@energy.com"
],
"ccEmails": [
"secondlevel@enneo.ai"
],
"replyCcEmails": [
"jsmith@example.com"
],
"subchannelId": 123,
"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>",
"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": "tom@mustermann.de",
"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": "johndoe@example.com",
"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": "83771",
"contractId": "746839",
"partnerId": 123,
"customerLegitimation": 30,
"responderId": null,
"agentId": null,
"agent": {
"id": 1,
"firstName": "Max",
"lastName": "Mustermann",
"email": "demo@enneo.dev",
"phone": "+49 123 456789",
"lastSeen": "2022-08-12 12:21:21",
"type": "enneo",
"isSsoOnly": false,
"lang": "de"
},
"assignedAgentIds": [
123
],
"assignedAgents": [
{
"id": 1,
"firstName": "Max",
"lastName": "Mustermann",
"email": "demo@enneo.dev",
"phone": "+49 123 456789",
"lastSeen": "2022-08-12 12:21:21",
"type": "enneo",
"isSsoOnly": false,
"lang": "de"
}
],
"workedOnByIds": [
123
],
"workedOnBy": [
{
"id": 1,
"firstName": "Max",
"lastName": "Mustermann",
"email": "demo@enneo.dev",
"phone": "+49 123 456789",
"lastSeen": "2022-08-12 12:21:21",
"type": "enneo",
"isSsoOnly": false,
"lang": "de"
}
],
"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://s3.eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/103013960646/original/IMG_20230301_192712.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAS6FNSMY2XLZULJPI%2F20230315%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20230315T135902Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signature=863f16c0b29b34cde3331ef76954db3f9605d8187cfd042b11d623ea988b9e0d",
"extractedData": null,
"extractionStatus": "success",
"extractionData": {
"confidence": 0.815,
"meterValue": 87870.5
}
}
],
"additionalData": null,
"template": "<string>",
"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"
}
],
"agentSkillsMatch": true
}
]
Authorizations
Cookie-based authentication
Path Parameters
The id of the AI Agent that should be retrieved
Response
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 tom@mm.com' for an email or during the chat bot initialization. Null when not set
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
Any emails in CC. Used when channel=email, otherwise empty array
Any emails in CC for a reply. Used when channel=email, otherwise empty array
ID of the subchannel
AI-detected sentiment
Detected language name
Detected language code
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
, Freshdesk
, api
Priority of ticket
low
, medium
, high
, urgent
Channel of ticket
email
, portal
, phone
, letter
, system
, chat
, walkIn
Unique ID of chat conversation. Used when channel=chat
Status of ticket
open
, pending
, resolved
, closed
, waitingOnCustomer
, waitingOnThirdParty
Summary of request
Subject of email
Body of request in plain text form (no HTML)
Body of request in originial form (incl. HTML)
Last change of this ticket
Latest date by when this ticket should be responded to, but not necessarily solved
Latest date by when this ticket should be resolved
Date when this ticket was closed/resolved
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
Name of the company. Null when customer is not a business but private
Contracts that this customer has
A contract of a customer. Either electricity or gas. IDs match the backend system (powercloud)
If a customer has multiple tenants/brands, this is the tenant name. Currently only used for SAP
Address where the electricity/gas is being delivered to
VAT Rate, usually 0.19 (=19%) for electricity and 0.07 (=7%) for gas
Address where written communication should be sent to. NULL if same as delivery address
Raw source data from the originating ERP system in the ERP-proprietary format is included here. Only provided on request.
Preview information shown to agents in the UI
Label text shown to the agent
Value text shown to the agent
Optional tooltip shown on hover
Optional URL that opens when clicking the preview item
Preview information shown in contract tabs
Associated primary customer id of that ticket. Null if not detected by AI or not set by user
Associated primary contract id of that ticket. Null if not detected by AI or not set by user
Associated partner id of that ticket. Null if not detected by AI or not set by user
Customer legitimation score:
- 0 = No customer identified or no contract associated
- 10 = Default confidence for email/portal/chat channels when no other criteria match
- 12 = Email not found in ERP system
- 13 = Matching contract/customer ID and lastname found in message
- 15 = Matching contract and customer ID found in message
- 20 = High confidence cases:
- System channel or outgoing/internal messages
- Sender email matches contract/customer email
- For letters: address matches customer/contract address
- 30 = Manually confirmed by agent or AI during chat
- 40+ = Custom level that will be set by agent/chatbot for more strict customer verification
User ID of agent that authored the latest response to this ticket.
Agent ID associated to this ticket (if any).
User ID
First name
Last name
Email address
Phone number
The last time the user was seen
The type of the user
If true, the user can only login via SSO
The language of the user
Array of agent IDs that are assigned to this ticket
Agent ID
Array of agents that are assigned to this ticket
User ID
First name
Last name
Email address
Phone number
The last time the user was seen
The type of the user
If true, the user can only login via SSO
The language of the user
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
User ID
First name
Last name
Email address
Phone number
The last time the user was seen
The type of the user
If true, the user can only login via SSO
The language of the user
id of attachment
size of attachment in bytes.
width of image attachment in pixels. Can be ommitted for non-image attachments.
height of image attachment in pixels. Can be ommitted for non-image attachments.
true if attachment is an inline image
file ending of attachment
content type of attachment
url of original attachment, most likely contains invalid temporary access token
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"
Data extracted from the attachment by meterReadingMicroservice
Client-specific data objects can be included here
Generic template (independent on intent)
Tags loaded from intents
Tag object
Internal id, e.g. 123
e.g. "Complaint"
The full name when not shown in a tree
The id of the parent tag. null if on root level. Can be created to create the tree structure of tags
To what this tag can be assigned to
ticket
, contract
, customer
Type of the tag
skill
, product
, brand
, customerProperty
, contractProperty
, other
Visibility of the tag
public
, private
, disabled
Color of the tag. Default is grey
grey
, green
, red
, blue
, yellow
, purple
, orange
, teal
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
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.
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
Channels for which this tag can be detected. If empty or null, then this tag can be assigned to all channels.
Subchannels (=Mailboxes/Chat channels) for which this tag can be detected. If empty or null, then this tag can be assigned to all subchannels.
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
Test case for the tag
The user that last modified the tag
The date and time when the tag was last modified
If false, the agent doesn't have the skills to handle the ticket
curl --request GET \
--url https://demo.enneo.ai/api/mind/aiAgent/{id}/similarTickets
[
{
"id": 376189,
"from": "tom@gmail.com",
"fromName": "Tom Mustermann",
"to": [
"service@energy.com"
],
"ccEmails": [
"secondlevel@enneo.ai"
],
"replyCcEmails": [
"jsmith@example.com"
],
"subchannelId": 123,
"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>",
"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": "tom@mustermann.de",
"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": "johndoe@example.com",
"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": "83771",
"contractId": "746839",
"partnerId": 123,
"customerLegitimation": 30,
"responderId": null,
"agentId": null,
"agent": {
"id": 1,
"firstName": "Max",
"lastName": "Mustermann",
"email": "demo@enneo.dev",
"phone": "+49 123 456789",
"lastSeen": "2022-08-12 12:21:21",
"type": "enneo",
"isSsoOnly": false,
"lang": "de"
},
"assignedAgentIds": [
123
],
"assignedAgents": [
{
"id": 1,
"firstName": "Max",
"lastName": "Mustermann",
"email": "demo@enneo.dev",
"phone": "+49 123 456789",
"lastSeen": "2022-08-12 12:21:21",
"type": "enneo",
"isSsoOnly": false,
"lang": "de"
}
],
"workedOnByIds": [
123
],
"workedOnBy": [
{
"id": 1,
"firstName": "Max",
"lastName": "Mustermann",
"email": "demo@enneo.dev",
"phone": "+49 123 456789",
"lastSeen": "2022-08-12 12:21:21",
"type": "enneo",
"isSsoOnly": false,
"lang": "de"
}
],
"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://s3.eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/103013960646/original/IMG_20230301_192712.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAS6FNSMY2XLZULJPI%2F20230315%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20230315T135902Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signature=863f16c0b29b34cde3331ef76954db3f9605d8187cfd042b11d623ea988b9e0d",
"extractedData": null,
"extractionStatus": "success",
"extractionData": {
"confidence": 0.815,
"meterValue": 87870.5
}
}
],
"additionalData": null,
"template": "<string>",
"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"
}
],
"agentSkillsMatch": true
}
]