---
title: "Create a ticket"
method: POST
path: "/tickets"
tags: ["Tickets"]
---

# Create a ticket

`POST /tickets`

You can create a new ticket.

## Headers

- `Intercom-Version` '1.0' | '1.1' | '1.2' | '1.3' | '1.4' | '2.0' | '2.1' | '2.2' | '2.3' | '2.4' | '2.5' | '2.6' | '2.7' | '2.8' | '2.9' | '2.10' | '2.11' | '2.12' | '2.13' | '2.14' — Intercom API version.</br>By default, it's equal to the version set in the app package.

## Request body

- CreateTicketRequest — You can create a Ticket
  - `ticket_type_id` string, required — The ID of the type of ticket you want to create
  - `contacts` union[], required — The list of contacts (users or leads) affected by this ticket. Currently only one is allowed
    - union
      - object
        - `id` string, required — The identifier for the contact as given by Intercom.
      - object
        - `external_id` string, required — The external_id you have defined for the contact who is being added as a participant.
      - object
        - `email` string, required — The email you have defined for the contact who is being added as a participant. If a contact with this email does not exist, one will be created.
  - `conversation_to_link_id` string — The ID of the conversation you want to link to the ticket. Here are the valid ways of linking two tickets: - conversation | back-office ticket - customer tickets | non-shared back-office ticket - conversation | tracker ticket - customer ticket | tracker ticket
  - `company_id` string — The ID of the company that the ticket is associated with. The unique identifier for the company which is given by Intercom
  - `created_at` integer — The time the ticket was created. If not provided, the current time will be used.
  - `ticket_attributes` TicketRequestCustomAttributes — 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](ref:get_ticket-types). 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`).
  - `assignment` object
    - `admin_assignee_id` string — The ID of the admin to which the ticket is assigned. If not provided, the ticket will be unassigned.
    - `team_assignee_id` string — The ID of the team to which the ticket is assigned. If not provided, the ticket will be unassigned.

## Response `200`

Successful response

- Ticket, nullable — Tickets are how you track requests from your users.
  - `type` 'ticket' — Always ticket
  - `id` string — The unique identifier for the ticket which is given by Intercom.
  - `ticket_id` string — The ID of the Ticket used in the Intercom Inbox and Messenger. Do not use ticket_id for API queries.
  - `category` 'Customer' | 'Back-office' | 'Tracker' — Category of the Ticket.
  - `ticket_attributes` TicketCustomAttributes — 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_`.
  - `ticket_state` TicketState, nullable — A ticket state, used to define the state of a ticket.
    - `type` string — String representing the object's type. Always has the value `ticket_state`.
    - `id` string — The id of the ticket state
    - `category` 'submitted' | 'in_progress' | 'waiting_on_customer' | 'resolved' — The category of the ticket state
    - `internal_label` string — The state the ticket is currently in, in a human readable form - visible in Intercom
    - `external_label` string — The state the ticket is currently in, in a human readable form - visible to customers, in the messenger, email and tickets portal.
  - `ticket_type` TicketType, nullable — A ticket type, used to define the data fields to be captured in a ticket.
    - `type` string — String representing the object's type. Always has the value `ticket_type`.
    - `id` string — The id representing the ticket type.
    - `category` 'Customer' | 'Back-office' | 'Tracker' — Category of the Ticket Type.
    - `name` string — The name of the ticket type
    - `description` string — The description of the ticket type
    - `icon` string — The icon of the ticket type
    - `workspace_id` string — The id of the workspace that the ticket type belongs to.
    - `ticket_type_attributes` TicketTypeAttributeList — A list of attributes associated with a given ticket type.
      - `type` string — String representing the object's type. Always has the value `ticket_type_attributes.list`.
      - `ticket_type_attributes` TicketTypeAttribute[] — A list of ticket type attributes associated with a given ticket type.
        - `type` string — String representing the object's type. Always has the value `ticket_type_attribute`.
        - `id` string — The id representing the ticket type attribute.
        - `workspace_id` string — The id of the workspace that the ticket type attribute belongs to.
        - `name` string — The name of the ticket type attribute
        - `description` string — The description of the ticket type attribute
        - `data_type` string — The type of the data attribute (allowed values: "string list integer decimal boolean datetime files")
        - `input_options` object — Input options for the attribute
        - `order` integer — The order of the attribute against other attributes
        - `required_to_create` boolean — Whether the attribute is required or not for teammates.
        - `required_to_create_for_contacts` boolean — Whether the attribute is required or not for contacts.
        - `visible_on_create` boolean — Whether the attribute is visible or not to teammates.
        - `visible_to_contacts` boolean — Whether the attribute is visible or not to contacts.
        - `default` boolean — Whether the attribute is built in or not.
        - `ticket_type_id` integer — The id of the ticket type that the attribute belongs to.
        - `archived` boolean — Whether the ticket type attribute is archived or not.
        - `created_at` integer — The date and time the ticket type attribute was created.
        - `updated_at` integer — The date and time the ticket type attribute was last updated.
    - `ticket_states` object — A list of ticket states associated with a given ticket type.
      - `type` string — String representing the object's type. Always has the value `list`.
      - `data` TicketState[] — A list of ticket states associated with a given ticket type.
        - `type` string — String representing the object's type. Always has the value `ticket_state`.
        - `id` string — The id of the ticket state
        - `category` 'submitted' | 'in_progress' | 'waiting_on_customer' | 'resolved' — The category of the ticket state
        - `internal_label` string — The state the ticket is currently in, in a human readable form - visible in Intercom
        - `external_label` string — The state the ticket is currently in, in a human readable form - visible to customers, in the messenger, email and tickets portal.
    - `archived` boolean — Whether the ticket type is archived or not.
    - `created_at` integer — The date and time the ticket type was created.
    - `updated_at` integer — The date and time the ticket type was last updated.
  - `contacts` TicketContacts — The list of contacts affected by a ticket.
    - `type` 'contact.list' — always contact.list
    - `contacts` ContactReference[] — The list of contacts affected by this ticket.
      - `type` 'contact' — always contact
      - `id` string — The unique identifier for the contact which is given by Intercom.
      - `external_id` string, nullable — The unique identifier for the contact which is provided by the Client.
  - `admin_assignee_id` string — The id representing the admin assigned to the ticket.
  - `team_assignee_id` string — The id representing the team assigned to the ticket.
  - `created_at` integer — The time the ticket was created as a UTC Unix timestamp.
  - `updated_at` integer — The last time the ticket was updated as a UTC Unix timestamp.
  - `open` boolean — Whether or not the ticket is open. If false, the ticket is closed.
  - `snoozed_until` integer — The time the ticket will be snoozed until as a UTC Unix timestamp. If null, the ticket is not currently snoozed.
  - `linked_objects` LinkedObjectList — An object containing metadata about linked conversations and linked tickets. Up to 1000 can be returned.
    - `type` 'list' — Always list.
    - `total_count` integer — The total number of linked objects.
    - `has_more` boolean — Whether or not there are more linked objects than returned.
    - `data` LinkedObject[] — An array containing the linked conversations and linked tickets.
      - `type` 'ticket' | 'conversation' — ticket or conversation
      - `id` string — The ID of the linked object
      - `category` 'Customer' | 'Back-office' | 'Tracker' | 'null', nullable — Category of the Linked Ticket Object.
  - `ticket_parts` TicketParts — A list of Ticket Part objects for each note and event in the ticket. There is a limit of 500 parts.
    - `type` 'ticket_part.list'
    - `ticket_parts` TicketPart[] — A list of Ticket Part objects for each ticket. There is a limit of 500 parts.
      - `type` string — Always ticket_part
      - `id` string — The id representing the ticket part.
      - `part_type` string — The type of ticket part.
      - `body` string, nullable — The message body, which may contain HTML.
      - `previous_ticket_state` 'submitted' | 'in_progress' | 'waiting_on_customer' | 'resolved' — The previous state of the ticket.
      - `ticket_state` 'submitted' | 'in_progress' | 'waiting_on_customer' | 'resolved' — The state of the ticket.
      - `created_at` integer — The time the ticket part was created.
      - `updated_at` integer — The last time the ticket part was updated.
      - `assigned_to` Reference — reference to another object
        - `type` string
        - `id` string, nullable
      - `author` TicketPartAuthor — The author that wrote or triggered the part. Can be a bot, admin, team or user.
        - `type` 'admin' | 'bot' | 'team' | 'user' — The type of the author
        - `id` string — The id of the author
        - `name` string, nullable — The name of the author
        - `email` string, email — The email of the author
      - `attachments` PartAttachment[] — A list of attachments for the part.
        - `type` string — The type of attachment
        - `name` string — The name of the attachment
        - `url` string — The URL of the attachment
        - `content_type` string — The content type of the attachment
        - `filesize` integer — The size of the attachment
        - `width` integer — The width of the attachment
        - `height` integer — The height of the attachment
      - `external_id` string, nullable — The external id of the ticket part
      - `redacted` boolean — Whether or not the ticket part has been redacted.
      - `app_package_code` string — The app package code if this part was created via API. Note this field won't show if the part was not created via API.
      - `updated_attribute_data` object, nullable — The updated attribute data of the ticket part. Only present for attribute update parts.
        - `attribute` object, required — Information about the attribute that was updated.
          - `type` 'attribute', required — The type of the object. Always 'attribute'.
          - `id` string, required — The unique identifier of the attribute.
          - `label` string, required — The human-readable name of the attribute.
        - `value` object, required — The new value of the attribute.
          - `type` 'value', required — The type of the object. Always 'value'.
          - `id` union, required
            - string, nullable — The value for text/number/decimal/boolean/date attributes, or the ID of the list option for list attributes.
            - integer[] — Array of file IDs for file attributes.
          - `label` union, required
            - string — The display value for text/number/decimal/boolean/date/list attributes.
            - string[] — Array of file names for file attributes.
    - `total_count` integer
  - `is_shared` boolean — Whether or not the ticket is shared with the customer.

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.net/intercom/apis/intercom-api.md) · [All operations](https://skmtc.net/intercom/apis/intercom-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/intercom/intercom-api/revisions/9517e80f2642/schema)
