POST
/
ticket
curl --request POST \
  --url https://demo.enneo.ai/api/mind/ticket \
  --header 'Content-Type: application/json' \
  --data '{
  "from": "jsmith@example.com",
  "fromName": null,
  "subchannelId": 2,
  "to": [
    "customer@web.de"
  ],
  "cc": [
    "customer@web.de"
  ],
  "bcc": [
    "customer@web.de"
  ],
  "priority": "low",
  "channel": "email",
  "status": "open",
  "subject": "Ticket subject",
  "body": "<p>Ticket body<p>",
  "createdAt": "2021-01-01 00:00:00",
  "firstResponseDueBy": "2021-01-02 00:00:00",
  "dueBy": "2021-01-07 00:00:00",
  "attachments": [
    {
      "name": "myattachment1.png",
      "url": "https://my-server.com/my-image.png"
    }
  ],
  "tags": [
    54
  ],
  "contractId": null,
  "externalTicketId": null,
  "rawData": null,
  "templateId": null,
  "templateData": null
}'
{
  "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&#246;nnten Sie bitte den beiliegenden Z&#228;hlerstand meines Z&#228;hlers in Ihr System eintragen und mir eine Zwischenrechnung zukommen lassen? Au&#223;erdem w&#252;rde ich gerne zu meiner neuen Adresse Hugo-Junkers-Str. 5 in 82031 Gr&#252;nwald wechseln. Ich ziehe n&#228;chsten Donnerstag ein. K&#246;nnen Sie meinen alten Vertrag zum 1. November f&#252;r mich k&#252;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

connect.sid
string
cookie
required

Cookie-based authentication

Query Parameters

process
enum<string>
default:
batch

realtime = immediately run the AI logic synchronously; batch = process the AI asyncronously; false = not run pre-run AI agents. AI will be run on first user view;

Available options:
realtime,
batch,
false

Body

application/json
Ticket object to create
from
string | null

For new tickets, the email/id of the requester, typically the customer name

fromName
string | null

For new Tickets: The original requester, typically the customer name For outgoing emails: The name of the sender, typically the name of the mailbox (null value). If provided, the name is used, e.g. if an agent wants to send a personalized mail in his own name.

subchannelId
integer | null

The ID of the subchannel (=mailbox) from which the ticket should be sent. The list of subchannels is available through the /settings/subchannel endpoint

to
string[]

For new tickets: Optional, to which mailbox this was sent to. For outgoing emails: The email of the customer that the email should be sent to

cc
string[]

For new tickets: Optional, to which mailbox this was sent to in cc. For outgoing emails: The cc emails that the email should be sent to

bcc
string[]

Only for outgoing emails: The bcc emails that the email should be sent to

priority
enum<string>

Priority of ticket

Available options:
low,
medium,
high,
urgent
channel
enum<string>

Channel of ticket

Available options:
email,
portal,
phone,
letter,
system,
chat,
walkIn
status
enum<string>

Status of ticket

Available options:
open,
pending,
resolved,
closed,
waitingOnCustomer,
waitingOnThirdParty
subject
string
body
string

Can be either HTML (preferred if available) or plaintext

createdAt
string
firstResponseDueBy
string
dueBy
string
attachments
object[]
tags
integer[]
contractId
integer | null

If available, a contract id that was already identified for this ticket. If not set, enneo will attempt to auto-detect the contract

externalTicketId
integer | null

If available, the unique identifier of a third-party ticketing system can be stored in enneo

rawData
object | null

Any raw source data from the originating system in the proprietary format. Any data passed here is stored for later use via API or user defined functions.

templateId
integer | null

If available, a template id to be rendered into ticket body using data provided in templateData parameter.

templateData
object | null

Data to be used while rendering template into ticket body.

Response

200
application/json
Successful operation

A ticket, e.g. an email conversation, call or chat conversation. When fullData=false, some fields (body, bodyPlain, attachments, etc.) will be omitted.

id
integer
from

Sender of email. Used when channel is not call. Null is channel=system

fromName
string | null

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

to

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

ccEmails
string[]

Any emails in CC. Used when channel=email, otherwise empty array

replyCcEmails
string[]

Any emails in CC for a reply. Used when channel=email, otherwise empty array

subchannelId
integer | null

ID of the subchannel

sentiment
string | null

AI-detected sentiment

language
string | null

Detected language name

languageCode
string | null

Detected language code

autoExecuteAt
string | null

When the ticket should be auto-executed

aiSupportLevel
enum<string>

Level of AI support for this ticket

Available options:
unprocessed,
human,
bot,
automated
isCustomerActive
boolean

Whether the customer is currently active

interface
enum<string>

Name of the ticketing system interface

Available options:
internal,
Freshdesk,
api
priority
enum<string>

Priority of ticket

Available options:
low,
medium,
high,
urgent
channel
enum<string>

Channel of ticket

Available options:
email,
portal,
phone,
letter,
system,
chat,
walkIn
channelId
string | null

Unique ID of chat conversation. Used when channel=chat

status
enum<string>

Status of ticket

Available options:
open,
pending,
resolved,
closed,
waitingOnCustomer,
waitingOnThirdParty
summary
string

Summary of request

subject
string

Subject of email

bodyPlain
string

Body of request in plain text form (no HTML)

body
string

Body of request in originial form (incl. HTML)

isEscalated
boolean
createdAt
string
modifiedAt
string | null

Last change of this ticket

firstResponseDueBy
string | null

Latest date by when this ticket should be responded to, but not necessarily solved

dueBy
string | null

Latest date by when this ticket should be resolved

closedAt
string | null

Date when this ticket was closed/resolved

customer
object | null
customerId
integer | null

Associated primary customer id of that ticket. Null if not detected by AI or not set by user

contractId
integer | null

Associated primary contract id of that ticket. Null if not detected by AI or not set by user

partnerId
integer | null

Associated partner id of that ticket. Null if not detected by AI or not set by user

customerLegitimation
integer

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
responderId
integer | null

User ID of agent that authored the latest response to this ticket.

agentId
integer | null

Agent ID associated to this ticket (if any).

agent
object
assignedAgentIds
integer[]

Array of agent IDs that are assigned to this ticket

Agent ID

assignedAgents
object[]

Array of agents that are assigned to this ticket

workedOnByIds
integer[]

Array of agent IDs that worked on this ticket in last hour

Agent ID

workedOnBy
object[]

Array of agent IDs that worked on this ticket in last hour

attachments
object[]
additionalData
object | null

Client-specific data objects can be included here

template
string

Generic template (independent on intent)

tags
object[]

Tags loaded from intents

Tag object

agentSkillsMatch
boolean

If false, the agent doesn't have the skills to handle the ticket