The intercom API reference.
- Convert a conversation to a ticket
Intercom API (2.11)
Request
You can redact a conversation part or the source message of a conversation (as seen in the source object).
If you are redacting a conversation part, it must have a body. If you are redacting a source message, it must have been created by a contact. We will return a conversation_part_not_redactable error if these criteria are not met.
Payload of the request to redact a conversation part
The type of resource being redacted.
- The production API serverhttps://api.intercom.io/conversations/redact
- The european API serverhttps://api.eu.intercom.io/conversations/redact
- The australian API serverhttps://api.au.intercom.io/conversations/redact
- curl
- Node.js
- Ruby
- PHP
- Python
- Java
- Go
- C#
- R
curl -i -X POST \
https://api.intercom.io/conversations/redact \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Intercom-Version: 2.11' \
-d '{
"type": "conversation_part",
"conversation_id": 471,
"conversation_part_id": 115
}'Redact a conversation part
The last time a Contact responded to an Admin. In other words, the time a customer started waiting for a response. Set to null if last reply is from an Admin.
If set this is the time in the future when this conversation will be marked as open. i.e. it will be in a snoozed state until this time. i.e. it will be in a snoozed state until this time.
Can be set to "open", "closed" or "snoozed".
If marked as priority, it will return priority or else not_priority.
The id of the admin assigned to the conversation. If it's not assigned to an admin it will return null.
The id of the team assigned to the conversation. If it's not assigned to a team it will return null.
The Conversation Rating object which contains information on the rating and/or remark added by a Contact and the Admin assigned to the conversation.
The type of the conversation part that started this conversation. Can be Contact, Admin, Campaign, Automated or Operator initiated.
This includes conversation, email, facebook, instagram, phone_call, phone_switch, push, sms and whatsapp.
The conversation's initiation type. Possible values are customer_initiated, campaigns_initiated (legacy campaigns), operator_initiated (Custom bot), automated (Series and other outbounds with dynamic audience message) and admin_initiated (fixed audience message, ticket initiated by an admin, group email).
The object who initiated the conversation, which can be a Contact, Admin or Team. Bots and campaigns send messages on behalf of Admins or Teams.
The URL where the conversation was started. For Email and Bots, this will be blank.
The list of contacts (users or leads) involved in this conversation. This will only contain one customer unless more were added via the group conversation feature.
The list of contacts (users or leads) involved in this conversation. This will only contain one customer unless more were added via the group conversation feature.
The unique identifier for the contact which is given by Intercom.
The list of teammates who participated in the conversation (wrote at least one conversation part).
An object containing the different custom attributes associated to the conversation as key-value pairs. For relationship attributes the value will be a list of custom object instance models.
An object containing information on the first users message. For a contact initiated message this will represent the users original message.
The SLA Applied object contains the details for which SLA has been applied to this conversation. Important: if there are any canceled sla_events for the conversation - meaning an SLA has been manually removed from a conversation, the sla_status will always be returned as null.
A Statistics object containing all information required for reporting, with timestamps and calculated metrics.
A list of Conversation Part objects for each part message in the conversation. This is only returned when Retrieving a Conversation, and ignored when Listing all Conversations. There is a limit of 500 parts.
An object containing metadata about linked conversations and linked tickets. Up to 1000 can be returned.
Indicates whether the AI Agent participated in the conversation.
{ "type": "conversation", "id": "471", "created_at": 1719492938, "updated_at": 1719492940, "waiting_since": 1719492939, "snoozed_until": null, "source": { "type": "conversation", "id": "403918311", "delivered_as": "admin_initiated", "subject": "", "body": "<p>this is the message body</p>", "author": { … }, "attachments": [], "url": null, "redacted": false }, "contacts": { "type": "contact.list", "contacts": [ … ] }, "first_contact_reply": { "created_at": 1719492939, "type": "conversation", "url": null }, "admin_assignee_id": null, "team_assignee_id": null, "open": true, "state": "open", "read": true, "tags": { "type": "tag.list", "tags": [] }, "priority": "not_priority", "sla_applied": null, "statistics": null, "conversation_rating": null, "teammates": null, "title": null, "custom_attributes": {}, "topics": {}, "ticket": null, "linked_objects": { "type": "list", "data": [], "total_count": 0, "has_more": false }, "ai_agent": null, "ai_agent_participated": false, "conversation_parts": { "type": "conversation_part.list", "conversation_parts": [ … ], "total_count": 1 } }
The ID of the type of ticket you want to convert the conversation to
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).
- The production API serverhttps://api.intercom.io/conversations/{conversation_id}/convert
- The european API serverhttps://api.eu.intercom.io/conversations/{conversation_id}/convert
- The australian API serverhttps://api.au.intercom.io/conversations/{conversation_id}/convert
- curl
- Node.js
- Ruby
- PHP
- Python
- Java
- Go
- C#
- R
curl -i -X POST \
https://api.intercom.io/conversations/123/convert \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-H 'Intercom-Version: 2.11' \
-d '{
"ticket_type_id": "79"
}'successful
The ID of the Ticket used in the Intercom Inbox and Messenger. Do not use ticket_id for API queries.
Category of the Ticket.
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_.
The state the ticket is currently in
A ticket type, used to define the data fields to be captured in a ticket.
String representing the object's type. Always has the value ticket_type.
Category of the Ticket Type.
The description of the ticket type
The id of the workspace that the ticket type belongs to.
A list of attributes associated with a given ticket type.
String representing the object's type. Always has the value ticket_type_attributes.list.
A list of ticket type attributes associated with a given ticket type.
String representing the object's type. Always has the value ticket_type_attribute.
The id representing the ticket type attribute.
The id of the workspace that the ticket type attribute belongs to.
The name of the ticket type attribute
The description of the ticket type attribute
The type of the data attribute (allowed values: "string list integer decimal boolean datetime files")
Input options for the attribute
The order of the attribute against other attributes
Whether the attribute is required or not for teammates.
Whether the attribute is required or not for contacts.
Whether the attribute is visible or not to teammates.
Whether the attribute is visible or not to contacts.
Whether the attribute is built in or not.
The id of the ticket type that the attribute belongs to.
Whether the ticket type attribute is archived or not.
The date and time the ticket type attribute was created.
The list of contacts affected by a ticket.
The list of contacts affected by this ticket.
The unique identifier for the contact which is given by Intercom.
The time the ticket was created as a UTC Unix timestamp.
The last time the ticket was updated as a UTC Unix timestamp.
The time the ticket will be snoozed until as a UTC Unix timestamp. If null, the ticket is not currently snoozed.
An object containing metadata about linked conversations and linked tickets. Up to 1000 can be returned.
A list of Ticket Part objects for each note and event in the ticket. There is a limit of 500 parts.
The state the ticket is currently in, in a human readable form - visible in Intercom
{ "type": "ticket", "id": "474", "ticket_id": "37", "ticket_attributes": {}, "ticket_state": "submitted", "ticket_type": { "type": "ticket_type", "id": "79", "name": "my-ticket-type-1", "description": "my ticket type description is awesome.", "icon": "🦁", "workspace_id": "this_is_an_id404_that_should_be_at_least_", "archived": false, "created_at": 1719492947, "updated_at": 1719492947, "is_internal": false, "ticket_type_attributes": { … }, "category": "Customer" }, "contacts": { "type": "contact.list", "contacts": [ … ] }, "admin_assignee_id": "0", "team_assignee_id": "0", "created_at": 1719492945, "updated_at": 1719492947, "ticket_parts": { "type": "ticket_part.list", "ticket_parts": [ … ], "total_count": 2 }, "open": true, "linked_objects": { "type": "list", "data": [], "total_count": 0, "has_more": false }, "category": "Customer", "is_shared": true, "ticket_state_internal_label": "Submitted", "ticket_state_external_label": "Submitted" }