Skip to content

Create a ticket

Request

You can create a new ticket.

Security
bearerAuth
Headers
Intercom-Versionstring(intercom_version)

Intercom API version.
By default, it's equal to the version set in the app package.

Default:"2.11"
Enum:"1.0""1.1""1.2""1.3""1.4""2.0""2.1""2.2""2.3""2.4"
Example:2.11
Bodyapplication/json
ticket_type_idstringrequired

The ID of the type of ticket you want to create

Example:"1234"
contactsArray of objectsrequired

The list of contacts (users or leads) affected by this ticket. Currently only one is allowed

Example:
[ { "id": "1234" } ]
company_idstring

The ID of the company that the ticket is associated with. The ID that you set upon company creation.

Example:"1234"
created_atinteger

The time the ticket was created. If not provided, the current time will be used.

Example:1590000000
ticket_attributesobject(Ticket Attributes)

The attributes set on the ticket. When setting the default title and description attributes, the attribute keys that should be used are _default_title_ and _default_description_. When setting ticket type attributes of the list attribute type, the key should be the attribute name and the value of the attribute should be the list item id, obtainable by listing the ticket type. For example, if the ticket type has an attribute called priority of type list, the key should be priority and the value of the attribute should be the guid of the list item (e.g. de1825a0-0164-4070-8ca6-13e22462fa7e).

Example:
{ "_default_title_": "Found a bug", "_default_description_": "The button is not working" }
curl -i -X POST \
  https://api.intercom.io/tickets \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'Intercom-Version: 2.11' \
  -d '{
    "ticket_type_id": 106,
    "contacts": [
      {
        "id": "667d61b78a68186f43bafe8d"
      }
    ],
    "ticket_attributes": {
      "_default_title_": "example",
      "_default_description_": "there is a problem"
    }
  }'

Responses

Successful response

Bodyapplication/json
typestringrequired

Always ticket

Default:"ticket"
Value:"ticket"
Example:"ticket"
idstringrequired

The unique identifier for the ticket which is given by Intercom.

Example:"1295"
ticket_idstringrequired

The ID of the Ticket used in the Intercom Inbox and Messenger. Do not use ticket_id for API queries.

Example:"1390"
categorystringrequired

Category of the Ticket.

Enum:"Customer""Back-office""Tracker"
Example:"Customer"
ticket_attributesobject(Ticket Attributes)required

An object containing the different attributes associated to the ticket as key-value pairs. For the default title and description attributes, the keys are _default_title_ and _default_description_.

Example:
{ "_default_title_": "Found a bug", "_default_description_": "The button's not working" }
ticket_statestringrequired

The state the ticket is currently in

Enum:"submitted""in_progress""waiting_on_customer""resolved"
Example:"submitted"
ticket_typeobject or null(Ticket Type)required

A ticket type, used to define the data fields to be captured in a ticket.

contactsobject(Contacts)required

The list of contacts affected by a ticket.

admin_assignee_idstring

The id representing the admin assigned to the ticket.

Example:"1295"
team_assignee_idstring

The id representing the team assigned to the ticket.

Example:"1295"
created_atinteger, (date-time)

The time the ticket was created as a UTC Unix timestamp.

Example:1663597223
updated_atinteger, (date-time)

The last time the ticket was updated as a UTC Unix timestamp.

Example:1663597260
openboolean

Whether or not the ticket is open. If false, the ticket is closed.

Example:true
snoozed_untilinteger, (date-time)

The time the ticket will be snoozed until as a UTC Unix timestamp. If null, the ticket is not currently snoozed.

Example:1663597260
linked_objectsobject(Linked Objects)

An object containing metadata about linked conversations and linked tickets. Up to 1000 can be returned.

ticket_partsobject(Ticket Parts)

A list of Ticket Part objects for each note and event in the ticket. There is a limit of 500 parts.

is_sharedboolean

Whether or not the ticket is shared with the customer.

Example:true
ticket_state_internal_labelstring

The state the ticket is currently in, in a human readable form - visible in Intercom

ticket_state_external_labelstring

The state the ticket is currently in, in a human readable form - visible to customers, in the messenger, email and tickets portal.

Response
{ "type": "ticket", "id": "489", "ticket_id": "48", "ticket_attributes": { "_default_title_": "example", "_default_description_": "there is a problem" }, "ticket_state": "submitted", "ticket_type": { "type": "ticket_type", "id": "106", "name": "my-ticket-type-15", "description": "my ticket type description is awesome.", "icon": "🦁", "workspace_id": "this_is_an_id648_that_should_be_at_least_", "archived": false, "created_at": 1719493047, "updated_at": 1719493047, "is_internal": false, "ticket_type_attributes": {}, "category": "Back-office" }, "contacts": { "type": "contact.list", "contacts": [] }, "admin_assignee_id": "0", "team_assignee_id": "0", "created_at": 1719493048, "updated_at": 1719493048, "ticket_parts": { "type": "ticket_part.list", "ticket_parts": [], "total_count": 1 }, "open": true, "linked_objects": { "type": "list", "data": [], "total_count": 0, "has_more": false }, "category": "Back-office", "is_shared": false, "ticket_state_internal_label": "Submitted", "ticket_state_external_label": "Submitted" }