diff --git a/descriptions/2.10/api.intercom.io.yaml b/descriptions/2.10/api.intercom.io.yaml index 11970ba..6aec949 100644 --- a/descriptions/2.10/api.intercom.io.yaml +++ b/descriptions/2.10/api.intercom.io.yaml @@ -1321,7 +1321,7 @@ paths: Companies are looked up via `company_id` in a `POST` request, if not found via `company_id`, the new company will be created, if found, that company will be updated. - {% admonition type="attention" name="Using `company_id`" %} + {% admonition type="warning" name="Using `company_id`" %} You can set a unique `company_id` value when creating a company. However, it is not possible to update `company_id`. Be sure to set a unique value once upon creation of the company. {% /admonition %} responses: @@ -1624,7 +1624,7 @@ paths: description: | You can update a single company using the Intercom provisioned `id`. - {% admonition type="attention" name="Using `company_id`" %} + {% admonition type="warning" name="Using `company_id`" %} When updating a company it is not possible to update `company_id`. This can only be set once upon creation of the company. {% /admonition %} responses: @@ -3637,7 +3637,6 @@ paths: | email | String | | email_domain | String | | phone | String | - | formatted_phone | String | | external_id | String | | created_at | Date (UNIX Timestamp) | | signed_up_at | Date (UNIX Timestamp) | @@ -3675,7 +3674,7 @@ paths: ### Accepted Operators - {% admonition type="attention" name="Searching based on `created_at`" %} + {% admonition type="warning" name="Searching based on `created_at`" %} You cannot use the `<=` or `>=` operators to search by `created_at`. {% /admonition %} @@ -4272,7 +4271,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -4494,7 +4492,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -4631,9 +4628,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: - issue_type: Billing - priority: High topics: {} ticket: linked_objects: @@ -4731,16 +4725,10 @@ paths: summary: conversation found value: read: true - custom_attributes: - issue_type: Billing - priority: High not_found: summary: Not found value: read: true - custom_attributes: - issue_type: Billing - priority: High "/conversations/search": post: summary: Search conversations @@ -4774,7 +4762,7 @@ paths: ### Accepted Fields - Most keys listed as part of the The conversation model is searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foorbar"`). + Most keys listed as part of the conversation model are searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foorbar"`). The `source.body` field is unique as the search will not be performed against the entire value, but instead against every element of the value separately. For example, when searching for a conversation with a `"I need support"` body - the query should contain a `=` operator with the value `"support"` for such conversation to be returned. A query with a `=` operator and a `"need support"` value will not yield a result. | Field | Type | @@ -4909,7 +4897,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5009,7 +4996,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5096,7 +5082,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5182,7 +5167,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5380,7 +5364,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5451,7 +5434,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5522,7 +5504,6 @@ paths: conversation_rating: teammates: title: '' - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5593,7 +5574,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5728,8 +5708,11 @@ paths: - Conversations operationId: autoAssignConversation description: | + {% admonition type="danger" name="Deprecation of Run Assignment Rules" %} + Run assignment rules is now deprecated in version 2.12 and future versions and will be permanently removed on December 31, 2026. After this date, any requests made to this endpoint will fail. + {% /admonition %} You can let a conversation be automatically assigned following assignment rules. - {% admonition type="attention" name="When using workflows" %} + {% admonition type="warning" name="When using workflows" %} It is not possible to use this endpoint with Workflows. {% /admonition %} responses: @@ -5781,7 +5764,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5876,7 +5858,7 @@ paths: description: |+ You can add participants who are contacts to a conversation, on behalf of either another contact or an admin. - {% admonition type="attention" name="Contacts without an email" %} + {% admonition type="warning" name="Contacts without an email" %} If you add a contact via the email parameter and there is no user/lead found on that workspace with he given email, then we will create a new contact with `role` set to `lead`. {% /admonition %} @@ -5981,7 +5963,7 @@ paths: description: |+ You can add participants who are contacts to a conversation, on behalf of either another contact or an admin. - {% admonition type="attention" name="Contacts without an email" %} + {% admonition type="warning" name="Contacts without an email" %} If you add a contact via the email parameter and there is no user/lead found on that workspace with he given email, then we will create a new contact with `role` set to `lead`. {% /admonition %} @@ -6161,7 +6143,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -10267,14 +10248,15 @@ paths: ### Accepted Fields Most keys listed as part of the Ticket model are searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foobar"`). + The `source.body` field is unique as the search will not be performed against the entire value, but instead against every element of the value separately. For example, when searching for a conversation with a `"I need support"` body - the query should contain a `=` operator with the value `"support"` for such conversation to be returned. A query with a `=` operator and a `"need support"` value will not yield a result. | Field | Type | | :---------------------------------------- | :--------------------------------------------------------------------------------------- | | id | String | | created_at | Date (UNIX timestamp) | | updated_at | Date (UNIX timestamp) | - | _default_title_ | String | - | _default_description_ | String | + | title | String | + | description | String | | category | String | | ticket_type_id | String | | contact_ids | String | @@ -11012,11 +10994,11 @@ components: name: type: string description: The name of the admin. - example: Hoban Washburne + example: Joe Examplee email: type: string description: The email of the admin. - example: wash@serenity.io + example: wash@example.com job_title: type: string description: The job title of the admin. @@ -11212,11 +11194,11 @@ components: name: type: string description: The name of the admin. - example: Hoban Washburne + example: Joe Examplee email: type: string description: The email of the admin. - example: wash@serenity.io + example: wash@example.com job_title: type: string description: The job title of the admin. @@ -11821,7 +11803,7 @@ components: type: string description: The email you have defined for the contact who is being added as a participant. - example: winstonsmith@truth.org + example: joe@example.com customer: "$ref": "#/components/schemas/customer_request" required: @@ -11976,7 +11958,7 @@ components: name: type: string description: The name of the company. - example: Blue Sun + example: Example Company Inc. app_id: type: string description: The Intercom defined code of the workspace the company is associated @@ -12210,11 +12192,6 @@ components: nullable: true description: The contacts phone. example: "+1123456789" - formatted_phone: - type: string - nullable: true - description: The contacts phone number normalized to the E164 format - example: "+1123456789" name: type: string nullable: true @@ -12458,6 +12435,11 @@ components: description: An object containing companies meta data about the companies that a contact has. Up to 10 will be displayed here. Use the url to get more. properties: + data: + type: array + description: An array of company data objects attached to the contact. + items: + "$ref": "#/components/schemas/company_data" url: type: string format: uri @@ -12473,6 +12455,26 @@ components: description: Whether there's more Addressable Objects to be viewed. If true, use the url to view all example: true + company_data: + title: Company Data + type: object + description: An object containing data about the companies that a contact is associated with. + properties: + id: + type: string + description: The unique identifier for the company which is given by Intercom. + example: 5ba682d23d7cf92bef87bfd4 + type: + type: string + description: The type of the object + enum: + - company + example: company + url: + type: string + format: uri + description: The relative URL of the company. + example: "/companies/5ba682d23d7cf92bef87bfd4" contact_deleted: title: Contact Deleted type: object @@ -12928,8 +12930,6 @@ components: "$ref": "#/components/schemas/conversation_contacts" teammates: "$ref": "#/components/schemas/conversation_teammates" - custom_attributes: - "$ref": "#/components/schemas/custom_attributes" first_contact_reply: "$ref": "#/components/schemas/conversation_first_contact_reply" sla_applied: @@ -13160,14 +13160,24 @@ components: conversation_source: title: Conversation source type: object - description: The Conversation Part that originated this conversation, which - can be Contact, Admin, Campaign, Automated or Operator initiated. + description: The type of the conversation part that started this conversation. Can be Contact, Admin, Campaign, Automated or Operator initiated. properties: type: type: string description: This includes conversation, email, facebook, instagram, phone_call, phone_switch, push, sms, twitter and whatsapp. example: conversation + enum: + - conversation + - email + - facebook + - instagram + - phone_call + - phone_switch + - push + - sms + - twitter + - whatsapp id: type: string description: The id representing the message. @@ -13364,7 +13374,7 @@ components: email: type: string description: The contact's email, retained by default if one is present. - example: winstonsmith@truth.org + example: joe@example.com anyOf: - required: - id @@ -13386,7 +13396,7 @@ components: email: type: string description: The visitor's email. - example: winstonsmith@truth.org + example: joe@example.com anyOf: - required: - id @@ -13856,7 +13866,7 @@ components: industry: type: string description: The industry that this company operates in. - example: Manufacturing + example: Technology custom_attributes: type: object description: A hash of key/value pairs containing any other data about the @@ -15634,9 +15644,17 @@ components: search for the value. example: ">" value: - type: string + oneOf: + - type: string + - type: integer + - type: array + items: + oneOf: + - type: string + - type: integer description: The value that you want to search on. example: '73732934' + nullable: true sla_applied: title: Applied SLA type: object @@ -16662,8 +16680,6 @@ components: type: boolean description: Mark a conversation as read within Intercom. example: true - custom_attributes: - "$ref": "#/components/schemas/custom_attributes" update_data_attribute_request: description: '' type: object diff --git a/descriptions/2.11/api.intercom.io.yaml b/descriptions/2.11/api.intercom.io.yaml index 504c8a8..80c5cfc 100644 --- a/descriptions/2.11/api.intercom.io.yaml +++ b/descriptions/2.11/api.intercom.io.yaml @@ -56,7 +56,7 @@ paths: has_inbox_seat: true schema: "$ref": "#/components/schemas/admin_with_app" - "/admins/{admin_id}/away": + "/admins/{id}/away": put: summary: Set an admin to away parameters: @@ -64,12 +64,12 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: admin_id + - name: id in: path required: true description: The unique identifier of a given admin schema: - type: string + type: integer tags: - Admins operationId: setAwayAdmin @@ -293,7 +293,7 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/admins/{admin_id}": + "/admins/{id}": get: summary: Retrieve an admin parameters: @@ -301,13 +301,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: admin_id + - name: id in: path required: true description: The unique identifier of a given admin - example: "123" + example: 123 schema: - type: string + type: integer tags: - Admins operationId: retrieveAdmin @@ -366,20 +366,6 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: page - in: query - required: false - description: The page of results to fetch. Defaults to first page - example: 1 - schema: - type: integer - - name: per_page - in: query - required: false - description: How many results to display per page. Defaults to 15 - example: 15 - schema: - type: integer tags: - Articles operationId: listArticles @@ -536,7 +522,7 @@ paths: description: Description of the Article body: Body of the Article state: published - "/articles/{article_id}": + "/articles/{id}": get: summary: Retrieve an article parameters: @@ -544,13 +530,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: article_id + - name: id in: path required: true description: The unique identifier for the article which is given by Intercom. - example: "123" + example: 123 schema: - type: string + type: integer tags: - Articles operationId: retrieveArticle @@ -623,13 +609,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: article_id + - name: id in: path required: true description: The unique identifier for the article which is given by Intercom. - example: "123" + example: 123 schema: - type: string + type: integer tags: - Articles operationId: updateArticle @@ -699,7 +685,7 @@ paths: content: application/json: schema: - "$ref": "#/components/schemas/update_article_request_body" + "$ref": "#/components/schemas/update_article_request" examples: successful: summary: successful @@ -718,13 +704,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: article_id + - name: id in: path required: true description: The unique identifier for the article which is given by Intercom. - example: "123" + example: 123 schema: - type: string + type: integer tags: - Articles operationId: deleteArticle @@ -845,7 +831,7 @@ paths: total_pages: 1 per_page: 10 schema: - "$ref": "#/components/schemas/search_articles_response" + "$ref": "#/components/schemas/article_search_response" '401': description: Unauthorized content: @@ -868,20 +854,6 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: page - in: query - required: false - description: The page of results to fetch. Defaults to first page - example: 1 - schema: - type: integer - - name: per_page - in: query - required: false - description: How many results to display per page. Defaults to 15 - example: 15 - schema: - type: integer tags: - Help Center operationId: listAllCollections @@ -1017,7 +989,7 @@ paths: summary: Bad Request value: description: Missing required parameter - "/help_center/collections/{collection_id}": + "/help_center/collections/{id}": get: summary: Retrieve a collection parameters: @@ -1025,13 +997,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: collection_id + - name: id in: path required: true description: The unique identifier for the collection which is given by Intercom. - example: "123" + example: 123 schema: - type: string + type: integer tags: - Help Center operationId: retrieveCollection @@ -1093,13 +1065,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: collection_id + - name: id in: path required: true description: The unique identifier for the collection which is given by Intercom. - example: "123" + example: 123 schema: - type: string + type: integer tags: - Help Center operationId: updateCollection @@ -1175,13 +1147,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: collection_id + - name: id in: path required: true description: The unique identifier for the collection which is given by Intercom. - example: "123" + example: 123 schema: - type: string + type: integer tags: - Help Center operationId: deleteCollection @@ -1228,7 +1200,7 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/help_center/help_centers/{help_center_id}": + "/help_center/help_centers/{id}": get: summary: Retrieve a Help Center parameters: @@ -1236,13 +1208,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: help_center_id + - name: id in: path required: true - description: The unique identifier for the Help Center which is given by Intercom. - example: "123" + description: The unique identifier for the collection which is given by Intercom. + example: 123 schema: - type: string + type: integer tags: - Help Center operationId: retrieveHelpCenter @@ -1301,20 +1273,6 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: page - in: query - required: false - description: The page of results to fetch. Defaults to first page - example: 1 - schema: - type: integer - - name: per_page - in: query - required: false - description: How many results to display per page. Defaults to 15 - example: 15 - schema: - type: integer tags: - Help Center operationId: listHelpCenters @@ -1363,7 +1321,7 @@ paths: Companies are looked up via `company_id` in a `POST` request, if not found via `company_id`, the new company will be created, if found, that company will be updated. - {% admonition type="attention" name="Using `company_id`" %} + {% admonition type="warning" name="Using `company_id`" %} You can set a unique `company_id` value when creating a company. However, it is not possible to update `company_id`. Be sure to set a unique value once upon creation of the company. {% /admonition %} responses: @@ -1570,7 +1528,7 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/companies/{company_id}": + "/companies/{id}": get: summary: Retrieve a company by ID parameters: @@ -1578,7 +1536,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: company_id + - name: id in: path required: true description: The unique identifier for the company which is given by Intercom @@ -1653,7 +1611,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: company_id + - name: id in: path required: true description: The unique identifier for the company which is given by Intercom @@ -1666,7 +1624,7 @@ paths: description: | You can update a single company using the Intercom provisioned `id`. - {% admonition type="attention" name="Using `company_id`" %} + {% admonition type="warning" name="Using `company_id`" %} When updating a company it is not possible to update `company_id`. This can only be set once upon creation of the company. {% /admonition %} responses: @@ -1733,7 +1691,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: company_id + - name: id in: path required: true description: The unique identifier for the company which is given by Intercom @@ -1785,7 +1743,7 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/companies/{company_id}/contacts": + "/companies/{id}/contacts": get: summary: List attached contacts parameters: @@ -1793,27 +1751,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: company_id + - name: id in: path required: true description: The unique identifier for the company which is given by Intercom example: 5f4d3c1c-7b1b-4d7d-a97e-6095715c6632 schema: type: string - - name: page - in: query - required: false - description: The page of results to fetch. Defaults to first page - example: 1 - schema: - type: integer - - name: per_page - in: query - required: false - description: How many results to return per page. Defaults to 15 - example: 15 - schema: - type: integer tags: - Companies - Contacts @@ -1865,7 +1809,7 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/companies/{company_id}/segments": + "/companies/{id}/segments": get: summary: List attached segments for companies parameters: @@ -1873,7 +1817,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: company_id + - name: id in: path required: true description: The unique identifier for the company which is given by Intercom @@ -2100,7 +2044,7 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/contacts/{contact_id}/companies": + "/contacts/{id}/companies": post: summary: Attach a Contact to a Company parameters: @@ -2108,7 +2052,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: contact_id + - name: id in: path required: true description: The unique identifier for the contact which is given by Intercom @@ -2218,7 +2162,7 @@ paths: get: summary: List attached companies for contact parameters: - - name: contact_id + - name: id in: path description: The unique identifier for the contact which is given by Intercom example: 63a07ddf05a32042dffac965 @@ -2229,20 +2173,6 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: page - in: query - required: false - description: The page of results to fetch. Defaults to first page - example: 1 - schema: - type: integer - - name: per_page - in: query - required: false - description: How many results to display per page. Defaults to 15 - example: 15 - schema: - type: integer tags: - Contacts - Companies @@ -2315,7 +2245,7 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/contacts/{contact_id}/companies/{company_id}": + "/contacts/{contact_id}/companies/{id}": delete: summary: Detach a contact from a company parameters: @@ -2330,7 +2260,7 @@ paths: example: 58a430d35458202d41b1e65b schema: type: string - - name: company_id + - name: id in: path required: true description: The unique identifier for the company which is given by Intercom @@ -2406,34 +2336,20 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/contacts/{contact_id}/notes": + "/contacts/{id}/notes": get: summary: List all notes parameters: - - name: contact_id + - name: id in: path required: true description: The unique identifier of a contact. schema: - type: string + type: integer - name: Intercom-Version in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: page - in: query - required: false - description: The page of results to fetch. Defaults to first page - example: 1 - schema: - type: integer - - name: per_page - in: query - required: false - description: How many results to display per page. Defaults to 15 - example: 15 - schema: - type: integer tags: - Notes - Contacts @@ -2521,13 +2437,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: contact_id + - name: id in: path required: true description: The unique identifier of a given contact. - example: "123" + example: '123' schema: - type: string + type: integer tags: - Notes - Contacts @@ -2590,6 +2506,10 @@ paths: type: string description: The text of the note. example: New note + contact_id: + type: string + description: The unique identifier of a given contact. + example: '123' admin_id: type: string description: The unique identifier of a given admin. @@ -2893,7 +2813,7 @@ paths: value: id: invalid_id consent_type: opt_in - "/contacts/{contact_id}/subscriptions/{subscription_id}": + "/contacts/{contact_id}/subscriptions/{id}": delete: summary: Remove subscription from a contact tags: @@ -2911,7 +2831,7 @@ paths: required: true schema: type: string - - name: subscription_id + - name: id in: path description: The unique identifier for the subscription type which is given by Intercom @@ -3140,7 +3060,7 @@ paths: summary: Tag not found value: id: '123' - "/contacts/{contact_id}/tags/{tag_id}": + "/contacts/{contact_id}/tags/{id}": delete: summary: Remove tag from a contact tags: @@ -3158,7 +3078,7 @@ paths: required: true schema: type: string - - name: tag_id + - name: id in: path description: The unique identifier for the tag which is given by Intercom example: '7522907' @@ -3216,7 +3136,7 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/contacts/{contact_id}": + "/contacts/{id}": put: summary: Update a contact parameters: @@ -3224,7 +3144,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: contact_id + - name: id in: path description: id example: 63a07ddf05a32042dffac965 @@ -3348,7 +3268,8 @@ paths: content: application/json: schema: - "$ref": "#/components/schemas/update_contact_request" + oneOf: + - "$ref": "#/components/schemas/update_contact_request" examples: successful: summary: successful @@ -3362,7 +3283,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: contact_id + - name: id in: path description: id example: 63a07ddf05a32042dffac965 @@ -3489,7 +3410,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: contact_id + - name: id in: path description: id required: true @@ -3716,7 +3637,6 @@ paths: | email | String | | email_domain | String | | phone | String | - | formatted_phone | String | | external_id | String | | created_at | Date (UNIX Timestamp) | | signed_up_at | Date (UNIX Timestamp) | @@ -3754,7 +3674,7 @@ paths: ### Accepted Operators - {% admonition type="attention" name="Searching based on `created_at`" %} + {% admonition type="warning" name="Searching based on `created_at`" %} You cannot use the `<=` or `>=` operators to search by `created_at`. {% /admonition %} @@ -3829,26 +3749,6 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: page - in: query - required: false - description: The page of results to fetch. Defaults to first page - example: 1 - schema: - type: integer - - name: per_page - in: query - required: false - description: How many results to display per page. Defaults to 15 - example: 15 - schema: - type: integer - - name: starting_after - in: query - required: false - description: String used to get the next page of conversations. - schema: - type: string tags: - Contacts operationId: ListContacts @@ -4014,13 +3914,14 @@ paths: content: application/json: schema: - "$ref": "#/components/schemas/create_contact_request" + oneOf: + - "$ref": "#/components/schemas/create_contact_request" examples: successful: summary: successful value: email: joebloggs@intercom.io - "/contacts/{contact_id}/archive": + "/contacts/{id}/archive": post: summary: Archive contact parameters: @@ -4028,7 +3929,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: contact_id + - name: id in: path description: id example: 63a07ddf05a32042dffac965 @@ -4053,7 +3954,7 @@ paths: archived: true schema: "$ref": "#/components/schemas/contact_archived" - "/contacts/{contact_id}/unarchive": + "/contacts/{id}/unarchive": post: summary: Unarchive contact parameters: @@ -4061,7 +3962,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: contact_id + - name: id in: path description: id example: 63a07ddf05a32042dffac965 @@ -4178,7 +4079,7 @@ paths: value: id: 100 admin_id: 991267528 - "/conversations/{conversation_id}/tags/{tag_id}": + "/conversations/{conversation_id}/tags/{id}": delete: summary: Remove tag from a conversation parameters: @@ -4193,7 +4094,7 @@ paths: required: true schema: type: string - - name: tag_id + - name: id in: path description: id example: '7522907' @@ -4381,7 +4282,7 @@ paths: ai_agent: ai_agent_participated: false schema: - "$ref": "#/components/schemas/paginated_conversation_response" + "$ref": "#/components/schemas/paginated_response" '401': description: Unauthorized content: @@ -4509,7 +4410,7 @@ paths: type: user id: 123_doesnt_exist body: Hello there - "/conversations/{conversation_id}": + "/conversations/{id}": get: summary: Retrieve a conversation parameters: @@ -4517,13 +4418,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: conversation_id + - name: id in: path required: true description: The id of the conversation to target - example: "123" + example: 123 schema: - type: string + type: integer - name: display_as in: query required: false @@ -4659,13 +4560,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: conversation_id + - name: id in: path required: true description: The id of the conversation to target - example: "123" + example: 123 schema: - type: string + type: integer - name: display_as in: query required: false @@ -4835,16 +4736,10 @@ paths: summary: conversation found value: read: true - custom_attributes: - issue_type: Billing - priority: High not_found: summary: Not found value: read: true - custom_attributes: - issue_type: Billing - priority: High "/conversations/search": post: summary: Search conversations @@ -4878,7 +4773,7 @@ paths: ### Accepted Fields - Most keys listed as part of the The conversation model is searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foorbar"`). + Most keys listed in the conversation model are searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foorbar"`). The `source.body` field is unique as the search will not be performed against the entire value, but instead against every element of the value separately. For example, when searching for a conversation with a `"I need support"` body - the query should contain a `=` operator with the value `"support"` for such conversation to be returned. A query with a `=` operator and a `"need support"` value will not yield a result. | Field | Type | @@ -4948,8 +4843,8 @@ paths: | :------- | :----------------------------- | :----------------------------------------------------------- | | = | All | Equals | | != | All | Doesn't Equal | - | IN | All | In Shortcut for `OR` queries Values most be in Array | - | NIN | All | Not In Shortcut for `OR !` queries Values must be in Array | + | IN | All | In Shortcut for `OR` queries. Values must be in an array. | + | NIN | All | Not In Shortcut for `OR !` queries. Values must be in an array. | | > | Integer Date (UNIX Timestamp) | Greater (or equal) than | | < | Integer Date (UNIX Timestamp) | Lower (or equal) than | | ~ | String | Contains | @@ -5024,7 +4919,7 @@ paths: ai_agent: ai_agent_participated: false schema: - "$ref": "#/components/schemas/paginated_conversation_response" + "$ref": "#/components/schemas/conversation_list" requestBody: content: application/json: @@ -5042,7 +4937,7 @@ paths: value: '1306054154' pagination: per_page: 5 - "/conversations/{conversation_id}/reply": + "/conversations/{id}/reply": post: summary: Reply to a conversation parameters: @@ -5050,7 +4945,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: conversation_id + - name: id in: path required: true description: The Intercom provisioned identifier for the conversation or the @@ -5276,7 +5171,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5387,7 +5281,7 @@ paths: type: user intercom_user_id: 667d60f98a68186f43bafdf8 body: Thanks again :) - "/conversations/{conversation_id}/parts": + "/conversations/{id}/parts": post: summary: Manage a conversation parameters: @@ -5395,7 +5289,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: conversation_id + - name: id in: path required: true description: The identifier for the conversation as given by Intercom. @@ -5460,7 +5354,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5533,7 +5426,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5606,7 +5498,6 @@ paths: conversation_rating: teammates: title: '' - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5679,7 +5570,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5797,7 +5687,7 @@ paths: type: admin admin_id: 991267617 body: Goodbye :) - "/conversations/{conversation_id}/run_assignment_rules": + "/conversations/{id}/run_assignment_rules": post: summary: Run Assignment Rules on a conversation parameters: @@ -5805,7 +5695,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: conversation_id + - name: id in: path required: true description: The identifier for the conversation as given by Intercom. @@ -5816,8 +5706,11 @@ paths: - Conversations operationId: autoAssignConversation description: | + {% admonition type="danger" name="Deprecation of Run Assignment Rules" %} + Run assignment rules is now deprecated in version 2.12 and future versions and will be permanently removed on December 31, 2026. After this date, any requests made to this endpoint will fail. + {% /admonition %} You can let a conversation be automatically assigned following assignment rules. - {% admonition type="attention" name="When using workflows" %} + {% admonition type="warning" name="When using workflows" %} It is not possible to use this endpoint with Workflows. {% /admonition %} responses: @@ -5869,7 +5762,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -5945,7 +5837,7 @@ paths: message: Active subscription needed. schema: "$ref": "#/components/schemas/error" - "/conversations/{conversation_id}/customers": + "/conversations/{id}/customers": post: summary: Attach a contact to a conversation parameters: @@ -5953,7 +5845,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: conversation_id + - name: id in: path required: true description: The identifier for the conversation as given by Intercom. @@ -5966,7 +5858,7 @@ paths: description: |+ You can add participants who are contacts to a conversation, on behalf of either another contact or an admin. - {% admonition type="attention" name="Contacts without an email" %} + {% admonition type="warning" name="Contacts without an email" %} If you add a contact via the email parameter and there is no user/lead found on that workspace with he given email, then we will create a new contact with `role` set to `lead`. {% /admonition %} @@ -6071,7 +5963,7 @@ paths: description: |+ You can add participants who are contacts to a conversation, on behalf of either another contact or an admin. - {% admonition type="attention" name="Contacts without an email" %} + {% admonition type="warning" name="Contacts without an email" %} If you add a contact via the email parameter and there is no user/lead found on that workspace with he given email, then we will create a new contact with `role` set to `lead`. {% /admonition %} @@ -6251,7 +6143,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: linked_objects: @@ -6329,7 +6220,7 @@ paths: type: conversation_part conversation_id: really_123_doesnt_exist conversation_part_id: really_123_doesnt_exist - "/conversations/{conversation_id}/convert": + "/conversations/{id}/convert": post: summary: Convert a conversation to a ticket parameters: @@ -6337,13 +6228,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: conversation_id + - name: id in: path required: true description: The id of the conversation to target - example: "123" + example: 123 schema: - type: string + type: integer tags: - Conversations description: You can convert a conversation to a ticket. @@ -6486,7 +6377,7 @@ paths: type: boolean tags: - Data Attributes - operationId: listDataAttributes + operationId: lisDataAttributes description: You can fetch a list of all data attributes belonging to a workspace for contacts, companies or conversations. responses: @@ -6869,7 +6760,7 @@ paths: options: - value: 1-10 archived: false - "/data_attributes/{data_attribute_id}": + "/data_attributes/{id}": put: summary: Update a data attribute parameters: @@ -6877,13 +6768,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: data_attribute_id + - name: id in: path required: true description: The data attribute id - example: "1" + example: 1 schema: - type: string + type: integer tags: - Data Attributes operationId: updateDataAttribute @@ -7135,13 +7026,6 @@ paths: description: summary flag schema: type: boolean - - name: per_page - in: query - required: false - description: How many results to display per page. Defaults to 15 - example: 15 - schema: - type: integer tags: - Data Events operationId: lisDataEvents @@ -7626,7 +7510,7 @@ paths: newsfeed_assignments: [] total_count: 2 schema: - "$ref": "#/components/schemas/paginated_news_item_response" + "$ref": "#/components/schemas/paginated_response" '401': description: Unauthorized content: @@ -7721,7 +7605,7 @@ paths: newsfeed_assignments: - newsfeed_id: 53 published_at: 1664638214 - "/news/news_items/{news_item_id}": + "/news/news_items/{id}": get: summary: Retrieve a news item parameters: @@ -7729,13 +7613,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: news_item_id + - name: id in: path required: true description: The unique identifier for the news item which is given by Intercom. - example: "123" + example: 123 schema: - type: string + type: integer tags: - News operationId: retrieveNewsItem @@ -7805,13 +7689,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: news_item_id + - name: id in: path required: true description: The unique identifier for the news item which is given by Intercom. - example: "123" + example: 123 schema: - type: string + type: integer tags: - News operationId: updateNewsItem @@ -7900,13 +7784,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: news_item_id + - name: id in: path required: true description: The unique identifier for the news item which is given by Intercom. - example: "123" + example: 123 schema: - type: string + type: integer tags: - News operationId: deleteNewsItem @@ -7952,7 +7836,7 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/news/newsfeeds/{newsfeed_id}/items": + "/news/newsfeeds/{id}/items": get: summary: List all live newsfeed items parameters: @@ -7960,12 +7844,12 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: newsfeed_id + - name: id in: path required: true description: The unique identifier for the news feed item which is given by Intercom. - example: "123" + example: '123' schema: type: string tags: @@ -7990,7 +7874,7 @@ paths: data: [] total_count: 0 schema: - "$ref": "#/components/schemas/paginated_news_item_response" + "$ref": "#/components/schemas/paginated_response" '401': description: Unauthorized content: @@ -8044,7 +7928,7 @@ paths: updated_at: 1719492987 total_count: 2 schema: - "$ref": "#/components/schemas/paginated_newsfeed_response" + "$ref": "#/components/schemas/paginated_response" '401': description: Unauthorized content: @@ -8059,7 +7943,7 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/news/newsfeeds/{newsfeed_id}": + "/news/newsfeeds/{id}": get: summary: Retrieve a newsfeed parameters: @@ -8067,12 +7951,12 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: newsfeed_id + - name: id in: path required: true description: The unique identifier for the news feed item which is given by Intercom. - example: "123" + example: '123' schema: type: string tags: @@ -8108,7 +7992,7 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/notes/{note_id}": + "/notes/{id}": get: summary: Retrieve a note parameters: @@ -8116,13 +8000,13 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: note_id + - name: id in: path required: true description: The unique identifier of a given note - example: "1" + example: 1 schema: - type: string + type: integer tags: - Notes operationId: retrieveNote @@ -8236,7 +8120,7 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/segments/{segment_id}": + "/segments/{id}": get: summary: Retrieve a segment parameters: @@ -8244,11 +8128,11 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: segment_id + - name: id in: path required: true description: The unique identified of a given segment. - example: "123" + example: '123' schema: type: string tags: @@ -8606,7 +8490,7 @@ paths: name: test users: - id: '123' - "/tags/{tag_id}": + "/tags/{id}": get: summary: Find a specific tag parameters: @@ -8614,10 +8498,10 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: tag_id + - name: id in: path description: The unique identifier of a given tag - example: "123" + example: '123' required: true schema: type: string @@ -8675,10 +8559,10 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: tag_id + - name: id in: path description: The unique identifier of a given tag - example: "123" + example: '123' required: true schema: type: string @@ -8771,7 +8655,7 @@ paths: message: Access Token Invalid schema: "$ref": "#/components/schemas/error" - "/teams/{team_id}": + "/teams/{id}": get: summary: Retrieve a team parameters: @@ -8779,11 +8663,11 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: team_id + - name: id in: path required: true description: The unique identifier of a given team. - example: "123" + example: '123' schema: type: string tags: @@ -8906,7 +8790,7 @@ paths: description: Attribute Description data_type: string required_to_create: false - "/ticket_types/{ticket_type_id}/attributes/{attribute_id}": + "/ticket_types/{ticket_type_id}/attributes/{id}": put: summary: Update an existing attribute for a ticket type parameters: @@ -8920,7 +8804,7 @@ paths: description: The unique identifier for the ticket type which is given by Intercom. schema: type: string - - name: attribute_id + - name: id in: path required: true description: The unique identifier for the ticket type attribute which is @@ -9187,7 +9071,7 @@ paths: description: Customer Report Template icon: "\U0001F39F️" category: Customer - "/ticket_types/{ticket_type_id}": + "/ticket_types/{id}": get: summary: Retrieve a ticket type parameters: @@ -9195,7 +9079,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: ticket_type_id + - name: id in: path required: true description: The unique identifier for the ticket type which is given by Intercom. @@ -9303,7 +9187,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: ticket_type_id + - name: id in: path required: true description: The unique identifier for the ticket type which is given by Intercom. @@ -9409,13 +9293,13 @@ paths: content: application/json: schema: - "$ref": "#/components/schemas/update_ticket_type_request_body" + "$ref": "#/components/schemas/update_ticket_type_request" examples: ticket_type_updated: summary: Ticket type updated value: name: Bug Report 2 - "/tickets/{ticket_id}/reply": + "/tickets/{id}/reply": post: summary: Reply to a ticket operationId: replyTicket @@ -9426,14 +9310,14 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: ticket_id + - name: id in: path required: true schema: title: Ticket ID type: string description: The id of the ticket to target. - example: "123" + example: '123' tags: - Tickets responses: @@ -9662,7 +9546,7 @@ paths: value: id: 135 admin_id: 991267847 - "/tickets/{ticket_id}/tags/{tag_id}": + "/tickets/{ticket_id}/tags/{id}": delete: summary: Remove tag from a ticket parameters: @@ -9677,7 +9561,7 @@ paths: required: true schema: type: string - - name: tag_id + - name: id in: path description: The unique identifier for the tag which is given by Intercom example: '7522907' @@ -9909,7 +9793,7 @@ paths: ticket_attributes: _default_title_: example _default_description_: there is a problem - "/tickets/{ticket_id}": + "/tickets/{id}": put: summary: Update a ticket parameters: @@ -9917,7 +9801,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: ticket_id + - name: id in: path required: true description: The unique identifier for the ticket which is given by Intercom @@ -10175,7 +10059,7 @@ paths: in: header schema: "$ref": "#/components/schemas/intercom_version" - - name: ticket_id + - name: id in: path required: true description: The unique identifier for the ticket which is given by Intercom. @@ -10337,14 +10221,15 @@ paths: ### Accepted Fields Most keys listed as part of the Ticket model are searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foobar"`). + The `source.body` field is unique as the search will not be performed against the entire value, but instead against every element of the value separately. For example, when searching for a conversation with a `"I need support"` body - the query should contain a `=` operator with the value `"support"` for such conversation to be returned. A query with a `=` operator and a `"need support"` value will not yield a result. | Field | Type | | :---------------------------------------- | :--------------------------------------------------------------------------------------- | | id | String | | created_at | Date (UNIX timestamp) | | updated_at | Date (UNIX timestamp) | - | _default_title_ | String | - | _default_description_ | String | + | title | String | + | description | String | | category | String | | ticket_type_id | String | | contact_ids | String | @@ -10862,6 +10747,7 @@ components: title: Activity Log type: object description: Activities performed by Admins. + nullable: true properties: id: type: string @@ -10876,8 +10762,6 @@ components: description: String representing the object's type. Always has the value `admin`. example: admin - enum: - - admin id: type: string description: The id representing the admin. @@ -10972,10 +10856,6 @@ components: type: string description: A sentence or two describing the activity. example: Admin updated the app's name to "My App". - required: - - id - - performed_by - - activity_type activity_log_list: title: Paginated Response type: object @@ -10986,8 +10866,6 @@ components: description: String representing the object's type. Always has the value `activity_log.list`. example: activity_log.list - enum: - - activity_log.list pages: "$ref": "#/components/schemas/cursor_pages" activity_logs: @@ -10995,13 +10873,11 @@ components: description: An array of activity logs items: "$ref": "#/components/schemas/activity_log" - required: - - type - - activity_logs activity_log_metadata: title: Activity Log Metadata type: object description: Additional data provided about Admin activity. + nullable: true properties: sign_in_method: type: string @@ -11054,6 +10930,7 @@ components: addressable_list: title: Addressable List type: object + nullable: false description: A list used to access other resources from a parent model. properties: type: @@ -11070,33 +10947,19 @@ components: format: uri description: Url to get more company resources for this contact example: "/contacts/5ba682d23d7cf92bef87bfd4/notes" - required: - - type - - id - - url admin: title: Admin type: object x-tags: - Admins description: Admins are teammate accounts that have access to a workspace. - required: - - id - - name - - email - - job_title - - away_mode_enabled - - away_mode_reassign - - has_inbox_seat - - team_ids + nullable: true properties: type: type: string description: String representing the object's type. Always has the value `admin`. example: admin - enum: - - admin id: type: string description: The id representing the admin. @@ -11104,11 +10967,11 @@ components: name: type: string description: The name of the admin. - example: Hoban Washburne + example: Joe Examplee email: type: string description: The email of the admin. - example: wash@serenity.io + example: wash@example.com job_title: type: string description: The job title of the admin. @@ -11152,19 +11015,15 @@ components: description: String representing the object's type. Always has the value `admin.list`. example: admin.list - enum: - - admin.list admins: type: array description: A list of admins associated with a given workspace. items: "$ref": "#/components/schemas/admin" - required: - - type - - admins admin_priority_level: title: Admin Priority Level type: object + nullable: true description: Admin priority levels for the team properties: primary_admin_ids: @@ -11299,14 +11158,13 @@ components: title: Admin type: object description: Admins are the teammate accounts that have access to a workspace + nullable: true properties: type: type: string description: String representing the object's type. Always has the value `admin`. example: admin - enum: - - admin id: type: string description: The id representing the admin. @@ -11314,11 +11172,11 @@ components: name: type: string description: The name of the admin. - example: Hoban Washburne + example: Joe Examplee email: type: string description: The email of the admin. - example: wash@serenity.io + example: wash@example.com job_title: type: string description: The job title of the admin. @@ -11354,8 +11212,6 @@ components: description: This is a string that identifies the type of the object. It will always have the value `avatar`. default: avatar - enum: - - avatar example: avatar image_url: type: string @@ -11372,16 +11228,6 @@ components: "$ref": "#/components/schemas/app" nullable: true description: App that the admin belongs to. - required: - - type - - id - - name - - email - - job_title - - away_mode_enabled - - away_mode_reassign - - has_inbox_seat - - team_ids ai_agent: title: AI Agent type: object @@ -11441,12 +11287,11 @@ components: nullable: true content_sources: "$ref": "#/components/schemas/content_sources_list" - required: - - source_type app: title: App type: object description: App is a workspace on Intercom + nullable: true properties: type: type: string @@ -11477,14 +11322,6 @@ components: type: boolean description: Whether or not the app uses identity verification. example: false - required: - - type - - id_code - - name - - region - - timezone - - created_at - - identity_verification article: title: Article type: object @@ -11503,13 +11340,16 @@ components: title: Article Content type: object description: The Content of an Article. + nullable: true properties: type: type: string description: The type of object - `article_content` . enum: + - - article_content example: article_content + nullable: true title: type: string description: The title of the article. @@ -11547,13 +11387,6 @@ components: type: string description: The URL of the article. example: http://intercom.test/help/en/articles/3-default-language - required: - - type - - title - - description - - body - - author_id - - state article_list: title: Articles type: object @@ -11576,29 +11409,9 @@ components: description: An array of Article objects items: "$ref": "#/components/schemas/article_list_item" - required: - - type - - total_count - - data article_list_item: title: Articles type: object - required: - - id - - workspace_id - - title - - description - - body - - author_id - - state - - created_at - - updated_at - - url - - parent_id - - parent_type - - default_locale - - translated_content - - statistics x-tags: - Articles description: The data returned about your articles when you list them. @@ -11750,11 +11563,7 @@ components: type: string description: The text of the title. example: my query - required: - - article_id - - highlighted_title - - highlighted_summary - search_articles_response: + article_search_response: title: Article Search Response type: object x-tags: @@ -11787,14 +11596,11 @@ components: "$ref": "#/components/schemas/article_search_highlights" pages: "$ref": "#/components/schemas/cursor_pages" - required: - - type - - total_count - - data article_statistics: title: Article Statistics type: object description: The statistics of an article. + nullable: true properties: type: type: string @@ -11833,26 +11639,21 @@ components: description: The percentage of sad reactions the article has received against other types of reaction. example: 20.0 - required: - - type - - views - - conversions - - reactions - - happy_reaction_percentage - - neutral_reaction_percentage - - sad_reaction_percentage article_translated_content: title: Article Translated Content type: object description: The Translated Content of an Article. The keys are the locale codes and the values are the translated content of the article. + nullable: true properties: type: type: string description: The type of object - article_translated_content. enum: + - - article_translated_content example: article_translated_content + nullable: true ar: description: The content of the article in Arabic "$ref": "#/components/schemas/article_content" @@ -12020,7 +11821,6 @@ components: example: 6329bd9ffe4e2e91dac76188 customer: "$ref": "#/components/schemas/customer_request" - nullable: true required: - intercom_user_id - title: User ID @@ -12032,7 +11832,6 @@ components: example: 6329bd9ffe4e2e91dac76188 customer: "$ref": "#/components/schemas/customer_request" - nullable: true required: - user_id - title: Email @@ -12041,10 +11840,9 @@ components: type: string description: The email you have defined for the contact who is being added as a participant. - example: winstonsmith@truth.org + example: joe@example.com customer: "$ref": "#/components/schemas/customer_request" - nullable: true required: - email close_conversation_request: @@ -12153,13 +11951,6 @@ components: nullable: true description: The id of the help center the collection is in. example: '123' - required: - - id - - workspace_id - - name - - created_at - - order - - default_locale collection_list: title: Collections type: object @@ -12182,10 +11973,6 @@ components: description: An array of collection objects items: "$ref": "#/components/schemas/collection" - required: - - type - - total_count - - data company: title: Company type: object @@ -12194,21 +11981,6 @@ components: description: Companies allow you to represent organizations using your product. Each company will have its own description and be associated with contacts. You can fetch, create, update and list companies. - required: - - company_id - - id - - app_id - - name - - remote_created_at - - created_at - - updated_at - - last_request_at - - monthly_spend - - session_count - - user_count - - size - - website - - industry properties: type: type: string @@ -12223,7 +11995,7 @@ components: name: type: string description: The name of the company. - example: Blue Sun + example: Example Company Inc. app_id: type: string description: The Intercom defined code of the workspace the company is associated @@ -12236,8 +12008,6 @@ components: type: string description: Value is always "plan" example: plan - enum: - - plan id: type: string description: The id of the plan @@ -12348,10 +12118,6 @@ components: example: 100 pages: "$ref": "#/components/schemas/cursor_pages" - required: - - type - - total_count - - data company_attached_segments: title: Company Attached Segments type: object @@ -12368,10 +12134,6 @@ components: description: An array containing Segment Objects items: "$ref": "#/components/schemas/segment" - required: - - type - - total_count - - data company_list: title: Companies type: object @@ -12394,16 +12156,13 @@ components: description: An array containing Company Objects. items: "$ref": "#/components/schemas/company" - required: - - type - - total_count - - data company_scroll: title: Company Scroll type: object description: Companies allow you to represent organizations using your product. Each company will have its own description and be associated with contacts. You can fetch, create, update and list companies. + nullable: true properties: type: type: string @@ -12427,10 +12186,6 @@ components: description: The scroll parameter to use in the next request to fetch the next page of results. example: 25b649f7-4d33-4ef6-88f5-60e5b8244309 - required: - - type - - data - - total_count contact: title: Contact type: object @@ -12438,34 +12193,6 @@ components: - Contacts description: Contact are the objects that represent your leads and users in Intercom. - required: - - id - - workspace_id - - external_id - - role - - email - - phone - - name - - avatar - - owner_id - - social_profiles - - has_hard_bounced - - marked_email_as_spam - - unsubscribed_from_emails - - created_at - - updated_at - - signed_up_at - - last_seen_at - - last_replied_at - - last_contacted_at - - last_email_opened_at - - last_email_clicked_at - - language_override - - browser - - browser_version - - browser_language - - os - - location properties: type: type: string @@ -12502,11 +12229,6 @@ components: nullable: true description: The contacts phone. example: "+1123456789" - formatted_phone: - type: string - nullable: true - description: The contacts phone number normalized to the E164 format - example: "+1123456789" name: type: string nullable: true @@ -12721,10 +12443,6 @@ components: type: boolean description: Whether the contact is archived or not. example: true - required: - - type - - id - - archived contact_attached_companies: title: Contact Attached Companies type: object @@ -12747,16 +12465,18 @@ components: example: 100 pages: "$ref": "#/components/schemas/pages_link" - required: - - type - - companies - - total_count contact_companies: title: Contact companies type: object + nullable: false description: An object containing companies meta data about the companies that a contact has. Up to 10 will be displayed here. Use the url to get more. properties: + data: + type: array + description: An array of company data objects attached to the contact. + items: + "$ref": "#/components/schemas/company_data" url: type: string format: uri @@ -12772,10 +12492,26 @@ components: description: Whether there's more Addressable Objects to be viewed. If true, use the url to view all example: true - required: - - url - - total_count - - has_more + company_data: + title: Company Data + type: object + description: An object containing data about the companies that a contact is associated with. + properties: + id: + type: string + description: The unique identifier for the company which is given by Intercom. + example: 5ba682d23d7cf92bef87bfd4 + type: + type: string + description: The type of the object + enum: + - company + example: company + url: + type: string + format: uri + description: The relative URL of the company. + example: "/companies/5ba682d23d7cf92bef87bfd4" contact_deleted: title: Contact Deleted type: object @@ -12801,10 +12537,6 @@ components: type: boolean description: Whether the contact is deleted or not. example: true - required: - - type - - id - - deleted contact_list: title: Contact List type: object @@ -12827,21 +12559,17 @@ components: example: 100 pages: "$ref": "#/components/schemas/cursor_pages" - required: - - type - - data - - total_count contact_location: title: Contact Location type: object + nullable: false description: An object containing location meta data about a Intercom contact. properties: type: type: string + nullable: true description: Always location example: location - enum: - - location country: type: string nullable: true @@ -12857,11 +12585,10 @@ components: nullable: true description: The city that the contact is located in example: Dublin - required: - - type contact_notes: title: Contact notes type: object + nullable: false description: An object containing notes meta data about the notes that a contact has. Up to 10 will be displayed here. Use the url to get more. properties: @@ -12885,11 +12612,6 @@ components: description: Whether there's more Addressable Objects to be viewed. If true, use the url to view all example: true - required: - - data - - url - - total_count - - has_more contact_reference: title: Contact Reference type: object @@ -12911,9 +12633,6 @@ components: description: The unique identifier for the contact which is provided by the Client. example: f3b87a2e09d514c6c2e79b9a - required: - - type - - id contact_reply_base_request: title: Contact Reply Base Object type: object @@ -13070,12 +12789,10 @@ components: description: Segment objects associated with the contact. items: "$ref": "#/components/schemas/segment" - required: - - type - - data contact_social_profiles: title: Social Profile type: object + nullable: false description: An object containing social profiles that a contact has. properties: data: @@ -13083,11 +12800,10 @@ components: description: A list of social profiles objects associated with the contact. items: "$ref": "#/components/schemas/social_profile" - required: - - data contact_subscription_types: title: Contact Subscription Types type: object + nullable: false description: An object containing Subscription Types meta data about the SubscriptionTypes that a contact has. properties: @@ -13111,14 +12827,10 @@ components: description: Whether there's more Addressable Objects to be viewed. If true, use the url to view all example: true - required: - - data - - url - - total_count - - has_more contact_tags: title: Contact Tags type: object + nullable: true description: An object containing tags meta data about the tags that a contact has. Up to 10 will be displayed here. Use the url to get more. properties: @@ -13142,11 +12854,6 @@ components: description: Whether there's more Addressable Objects to be viewed. If true, use the url to view all example: true - required: - - data - - url - - total_count - - has_more contact_unarchived: title: Contact Unarchived type: object @@ -13172,10 +12879,6 @@ components: type: boolean description: Whether the contact is archived or not. example: false - required: - - type - - id - - archived content_source: title: Content Source type: object @@ -13205,13 +12908,9 @@ components: type: string description: The ISO 639 language code of the content source. example: en - required: - - content_type - - url - - title - - locale content_sources_list: title: Content Source List + nullable: false properties: type: type: string @@ -13228,10 +12927,6 @@ components: description: The content sources used by AI Agent in the conversation. items: "$ref": "#/components/schemas/content_source" - required: - - type - - total_count - - content_sources conversation: title: Conversation type: object @@ -13240,30 +12935,11 @@ components: description: Conversations are how you can communicate with users in Intercom. They are created when a contact replies to an outbound message, or when one admin directly sends a message to a single contact. - required: - - id - - created_at - - updated_at - - source - - contacts - - teammates - - title - - admin_assignee_id - - team_assignee_id - - custom_attributes - - topics - - open - - state - - read - - waiting_since - - snoozed_until properties: type: type: string description: Always conversation. example: conversation - enum: - - conversation id: type: string description: The id representing the conversation. @@ -13344,13 +13020,10 @@ components: "$ref": "#/components/schemas/conversation_contacts" teammates: "$ref": "#/components/schemas/conversation_teammates" - custom_attributes: - "$ref": "#/components/schemas/custom_attributes" first_contact_reply: "$ref": "#/components/schemas/conversation_first_contact_reply" sla_applied: "$ref": "#/components/schemas/sla_applied" - nullable: true statistics: "$ref": "#/components/schemas/conversation_statistics" conversation_parts: @@ -13381,10 +13054,6 @@ components: type: string description: The name of the file. example: test.json - required: - - content_type - - data - - name conversation_contacts: title: Contacts type: object @@ -13394,6 +13063,7 @@ components: properties: type: type: string + description: '' enum: - contact.list example: contact.list @@ -13404,12 +13074,10 @@ components: conversation feature. items: "$ref": "#/components/schemas/contact_reference" - required: - - type - - contacts conversation_first_contact_reply: title: First contact reply type: object + nullable: true description: An object containing information on the first users message. For a contact initiated message this will represent the users original message. properties: @@ -13427,10 +13095,7 @@ components: nullable: true description: '' example: https://developers.intercom.com/ - required: - - type - - created_at - paginated_conversation_response: + conversation_list: title: Conversation List type: object description: Conversations are how you can communicate with users in Intercom. @@ -13454,10 +13119,6 @@ components: example: 12345 pages: "$ref": "#/components/schemas/cursor_pages" - required: - - type - - conversations - - total_count conversation_part: title: Conversation Part type: object @@ -13467,8 +13128,6 @@ components: type: string description: Always conversation_part example: conversation_part - enum: - - conversation_part id: type: string description: The id representing the conversation part. @@ -13520,14 +13179,6 @@ components: type: boolean description: Whether or not the conversation part has been redacted. example: false - required: - - type - - id - - part_type - - created_at - - notified_at - - author - - redacted conversation_part_author: title: Conversation part author type: object @@ -13552,11 +13203,6 @@ components: format: email description: The email of the author example: operator+abcd1234@intercom.io - required: - - type - - id - - name - - email conversation_parts: title: Conversation Parts type: object @@ -13582,13 +13228,10 @@ components: type: integer description: '' example: 2 - required: - - type - - conversation_parts - - total_count conversation_rating: title: Conversation Rating type: object + nullable: true description: The Conversation Rating object which contains information on the rating and/or remark added by a Contact and the Admin assigned to the conversation. properties: @@ -13611,23 +13254,27 @@ components: "$ref": "#/components/schemas/contact_reference" teammate: "$ref": "#/components/schemas/reference" - required: - - rating - - remark - - created_at - - contact - - teammate conversation_source: title: Conversation source type: object - description: The Conversation Part that originated this conversation, which - can be Contact, Admin, Campaign, Automated or Operator initiated. + description: The type of the conversation part that started this conversation. Can be Contact, Admin, Campaign, Automated or Operator initiated. properties: type: type: string description: This includes conversation, email, facebook, instagram, phone_call, phone_switch, push, sms, twitter and whatsapp. example: conversation + enum: + - conversation + - email + - facebook + - instagram + - phone_call + - phone_switch + - push + - sms + - twitter + - whatsapp id: type: string description: The id representing the message. @@ -13668,16 +13315,10 @@ components: description: Whether or not the source message has been redacted. Only applicable for contact initiated messages. example: false - required: - - type - - id - - delivered_as - - subject - - author - - redacted conversation_statistics: title: Conversation statistics type: object + nullable: true description: A Statistics object containing all information required for reporting, with timestamps and calculated metrics. properties: @@ -13685,8 +13326,6 @@ components: type: string description: '' example: conversation_statistics - enum: - - conversation_statistics time_to_assignment: type: integer description: Duration until last assignment before first admin reply. In @@ -13774,11 +13413,10 @@ components: type: integer description: Total number of conversation parts. example: 1 - required: - - type conversation_teammates: title: Conversation teammates type: object + nullable: true description: The list of teammates who participated in the conversation (wrote at least one conversation part). properties: @@ -13792,9 +13430,6 @@ components: (wrote at least one conversation part). items: "$ref": "#/components/schemas/reference" - required: - - type - - teammates convert_conversation_to_ticket_request: description: You can convert a Conversation to a Ticket type: object @@ -13836,7 +13471,7 @@ components: email: type: string description: The contact's email, retained by default if one is present. - example: winstonsmith@truth.org + example: joe@example.com anyOf: - required: - id @@ -13858,7 +13493,7 @@ components: email: type: string description: The visitor's email. - example: winstonsmith@truth.org + example: joe@example.com anyOf: - required: - id @@ -13874,6 +13509,7 @@ components: description: You can create an Article type: object title: Create Article Request Payload + nullable: true properties: title: type: string @@ -14217,6 +13853,7 @@ components: description: You can create a message type: object title: Create Message Request Payload + nullable: true properties: message_type: type: string @@ -14305,6 +13942,7 @@ components: type: object title: Create Or Update Company Request Payload description: You can create or update a Company + nullable: true properties: name: type: string @@ -14330,7 +13968,7 @@ components: industry: type: string description: The industry that this company operates in. - example: Manufacturing + example: Technology custom_attributes: type: object description: A hash of key/value pairs containing any other data about the @@ -14373,6 +14011,7 @@ components: description: You can create an phone switch type: object title: Create Phone Switch Request Payload + nullable: true properties: phone: type: string @@ -14520,6 +14159,7 @@ components: You can copy the `icon` property for your ticket type from [Twemoji Cheatsheet](https://twemoji-cheatsheet.vercel.app/) type: object title: Create Ticket Type Request Payload + nullable: true properties: name: type: string @@ -14557,6 +14197,7 @@ components: description: | Cursor-based pagination is a technique used in the Intercom API to navigate through large amounts of data. A "cursor" or pointer is used to keep track of the current position in the result set, allowing the API to return the data in small chunks or "pages" as needed. + nullable: true properties: type: type: string @@ -14570,7 +14211,6 @@ components: example: 1 next: "$ref": "#/components/schemas/starting_after_paging" - nullable: true per_page: type: integer description: Number of results per page @@ -14579,8 +14219,6 @@ components: type: integer description: Total number of pages example: 13 - required: - - type custom_attributes: title: Custom Attributes type: object @@ -14596,6 +14234,7 @@ components: type: object x-tags: - Custom Object Instances + nullable: true description: A Custom Object Instance represents an instance of a custom object type. This allows you to create and set custom attributes to store data about your customers that is not already captured by Intercom. The parent object @@ -14619,11 +14258,9 @@ components: description: The custom attributes you have set on the custom object instance. additionalProperties: type: string - required: - - id - - type customer_request: type: object + nullable: true oneOf: - title: Intercom User ID properties: @@ -14750,13 +14387,6 @@ components: type: string description: Teammate who created the attribute. Only applicable to CDAs example: '5712945' - required: - - type - - name - - full_name - - label - - description - - data_type data_attribute_list: title: Data Attribute List type: object @@ -14774,9 +14404,6 @@ components: description: A list of data attributes items: "$ref": "#/components/schemas/data_attribute" - required: - - type - - data data_event: title: Data Event type: object @@ -14855,9 +14482,6 @@ components: since: type: string example: https://api.intercom.io/events?intercom_user_id=63a0979a5eeebeaf28dd56ba&type=user&since=1389913941065 - required: - - type - - events data_event_summary: title: Data Event Summary type: object @@ -14886,16 +14510,11 @@ components: description: A summary of data events items: "$ref": "#/components/schemas/data_event_summary_item" - required: - - type - - email - - intercom_user_id - - user_id - - events data_event_summary_item: title: Data Event Summary Item type: object description: This will return a summary of a data event for the App. + nullable: true properties: name: type: string @@ -14917,12 +14536,6 @@ components: type: string description: The description of the event example: A user placed an order - required: - - name - - first - - last - - count - - description data_export: title: Data Export type: object @@ -14931,7 +14544,7 @@ components: description: The data export api is used to view all message sent & viewed in a given timeframe. properties: - job_identifier: + job_identfier: type: string description: The identifier for your job. example: orzzsbd7hk67xyu @@ -14954,11 +14567,6 @@ components: type: string description: The location where you can download your data. example: https://api.intercom.test/download/messages/data/example - required: - - job_identifier - - status - - download_expires_at - - download_url data_export_csv: title: Data Export CSV type: object @@ -15055,15 +14663,6 @@ components: first_hard_bounce: type: integer description: The first time this message hard bounced for this user - required: - - user_id - - company_id - - email - - name - - ruleset_id - - content_id - - content_type - - content_title deleted_article_object: title: Deleted Article Object type: object @@ -15084,10 +14683,6 @@ components: type: boolean description: Whether the article was deleted successfully or not. example: true - required: - - id - - object - - deleted deleted_collection_object: title: Deleted Collection Object type: object @@ -15108,10 +14703,6 @@ components: type: boolean description: Whether the collection was deleted successfully or not. example: true - required: - - id - - object - - deleted deleted_company_object: title: Deleted Company Object type: object @@ -15131,10 +14722,6 @@ components: type: boolean description: Whether the company was deleted successfully or not. example: true - required: - - id - - object - - deleted deleted_object: title: Deleted Object type: object @@ -15155,10 +14742,6 @@ components: type: boolean description: Whether the news item was deleted successfully or not. example: true - required: - - id - - object - - deleted detach_contact_from_conversation_request: properties: admin_id: @@ -15242,25 +14825,24 @@ components: type: integer description: The height of the file in pixels, if applicable example: 1964 - required: - - type - - name - - url - - content_type - - filesize - - width - - height + filter: + anyOf: + - "$ref": "#/components/schemas/single_filter_search_request" + - "$ref": "#/components/schemas/multiple_filter_search_request" group_content: title: Group Content type: object description: The Content of a Group. + nullable: true properties: type: type: string description: The type of object - `group_content` . enum: + - - group_content example: group_content + nullable: true name: type: string description: The name of the collection or section. @@ -15269,20 +14851,19 @@ components: type: string description: The description of the collection. Only available for collections. example: " Collection description" - required: - - type - - name - - description group_translated_content: title: Group Translated Content type: object description: The Translated Content of an Group. The keys are the locale codes and the values are the translated content of the Group. + nullable: true properties: type: type: string description: The type of object - group_translated_content. + nullable: true enum: + - - group_translated_content example: group_translated_content ar: @@ -15396,8 +14977,6 @@ components: zh-TW: description: The content of the group in Chinese (Taiwan) "$ref": "#/components/schemas/group_content" - required: - - type help_center: title: Help Center type: object @@ -15438,13 +15017,6 @@ components: type: string description: The display name of the Help Center only seen by teammates. example: Intercom Help Center - required: - - id - - workspace_id - - created_at - - identifier - - website_turned_on - - display_name help_center_list: title: Help Centers type: object @@ -15463,9 +15035,6 @@ components: description: An array of Help Center objects items: "$ref": "#/components/schemas/help_center" - required: - - type - - data intercom_version: description: Intercom API version.By default, it's equal to the version set in the app package. @@ -15517,10 +15086,6 @@ components: - example: Customer nullable: true - required: - - type - - id - - category linked_object_list: title: Linked Objects type: object @@ -15546,11 +15111,6 @@ components: description: An array containing the linked conversations and linked tickets. items: "$ref": "#/components/schemas/linked_object" - required: - - type - - total_count - - has_more - - data merge_contacts_request: description: Merge contact data. type: object @@ -15566,9 +15126,6 @@ components: description: The unique identifier for the contact to merge into. Must be a user. example: 5ba682d23d7cf92bef87bfd4 - required: - - from - - into message: type: object title: Message @@ -15614,16 +15171,14 @@ components: description: The associated conversation_id example: '64619700005570' required: - - type - - id - - created_at - - subject - - body - - message_type - - conversation_id + - type + - id + - created_at + - body + - message_type multiple_filter_search_request: title: Multiple Filter Search Request - description: Search using Intercoms Search APIs with more than one filter. + description: Search with more than one filter. type: object properties: operator: @@ -15631,20 +15186,13 @@ components: enum: - AND - OR - description: An operator to allow boolean inspection between multiple fields. + description: A logical operator to combine multiple nested filters. example: AND value: - oneOf: - - type: array - description: Add mutiple filters. - title: multiple filter search request - items: - "$ref": "#/components/schemas/multiple_filter_search_request" - - type: array - description: Add a single filter field. - title: single filter search request - items: - "$ref": "#/components/schemas/single_filter_search_request" + type: array + items: + "$ref": "#/components/schemas/filter" + description: Nested filters or queries. news_item: title: News Item type: object @@ -15733,15 +15281,6 @@ components: format: timestamp description: Timestamp for when the news item was last updated. example: 1610589632 - required: - - type - - id - - workspace_id - - title - - body - - sender_id - - state - - created_at news_item_request: description: A News Item is a content type in Intercom enabling you to announce product updates, company news, promotions, events and more with your customers. @@ -15836,11 +15375,6 @@ components: format: timestamp description: Timestamp for when the newsfeed was last updated. example: 1674917488 - required: - - id - - type - - name - - created_at newsfeed_assignment: title: Newsfeed Assignment type: object @@ -15862,9 +15396,6 @@ components: news items). On write, this field will be ignored if the news item state is "draft". example: 1674917488 - required: - - newsfeed_id - - published_at note: title: Note type: object @@ -15877,8 +15408,6 @@ components: description: String representing the object's type. Always has the value `note`. example: note - enum: - - note id: type: string description: The id of the note. @@ -15897,8 +15426,6 @@ components: type: string description: String representing the object's type. Always has the value `contact`. - enum: - - contact id: type: string description: The id of the contact. @@ -15910,13 +15437,6 @@ components: type: string description: The body text of the note. example: "
Text for the note.
" - required: - - type - - id - - created_at - - contact - - author - - body note_list: title: Paginated Response type: object @@ -15927,8 +15447,6 @@ components: description: String representing the object's type. Always has the value `list`. example: list - enum: - - list data: type: array description: An array of notes. @@ -15940,10 +15458,6 @@ components: example: 1 pages: "$ref": "#/components/schemas/cursor_pages" - required: - - type - - data - - total_count open_conversation_request: title: Open Conversation Request type: object @@ -15989,63 +15503,31 @@ components: total_pages: type: integer example: 1 - required: - - type - - page - - per_page - - total_pages - paginated_news_item_response: - title: Paginated News Item Response - type: object - description: Paginated News Item Response - properties: - type: - type: string - description: The type of object - enum: - - list - example: list - pages: - "$ref": "#/components/schemas/cursor_pages" - total_count: - type: integer - description: A count of the total number of News Items. - example: 1 - data: - type: array - description: An array of News Items - items: - "$ref": "#/components/schemas/news_item" - required: - - type - - total_count - - data - paginated_newsfeed_response: - title: Paginated Newsfeed Response + paginated_response: + title: Paginated Response type: object - description: Paginated Newsfeed Response + description: Paginated Response properties: type: type: string description: The type of object enum: - list + - conversation.list example: list pages: "$ref": "#/components/schemas/cursor_pages" total_count: type: integer - description: A count of the total number of Newsfeeds. + description: A count of the total number of objects. example: 1 data: type: array - description: An array of Newsfeeds + description: An array of Objects items: - "$ref": "#/components/schemas/newsfeed" - required: - - type - - total_count - - data + anyOf: + - "$ref": "#/components/schemas/news_item" + - "$ref": "#/components/schemas/newsfeed" part_attachment: title: Part attachment type: object @@ -16079,18 +15561,11 @@ components: type: integer description: The height of the attachment example: 100 - required: - - type - - name - - url - - content_type - - filesize - - width - - height phone_switch: title: Phone Switch type: object description: Phone Switch Response + nullable: true properties: type: type: string @@ -16104,9 +15579,6 @@ components: description: Phone number in E.164 format, that has received the SMS to continue the conversation in the Messenger. example: "+1 1234567890" - required: - - type - - phone redact_conversation_request: oneOf: - title: Redact Conversation Part Request @@ -16167,26 +15639,19 @@ components: nullable: true description: '' example: 1a2b3c - required: - - type reply_conversation_request: oneOf: - "$ref": "#/components/schemas/contact_reply_conversation_request" - "$ref": "#/components/schemas/admin_reply_conversation_request" search_request: - description: Search using Intercoms Search APIs. + description: Search using Intercom's Search APIs. type: object title: Search data properties: query: - oneOf: - - "$ref": "#/components/schemas/single_filter_search_request" - title: Single filter search request - - "$ref": "#/components/schemas/multiple_filter_search_request" - title: multiple filter search request + "$ref": "#/components/schemas/filter" pagination: "$ref": "#/components/schemas/starting_after_paging" - nullable: true required: - query segment: @@ -16196,12 +15661,6 @@ components: - Segments description: A segment is a group of your contacts defined by the rules that you set. - required: - - type - - id - - name - - created_at - - person_type properties: type: type: string @@ -16259,9 +15718,6 @@ components: type: object description: A pagination object, which may be empty, indicating no further pages to fetch. - required: - - type - - segments single_filter_search_request: title: Single Filter Search Request description: Search using Intercoms Search APIs with a single filter. @@ -16270,7 +15726,51 @@ components: field: type: string description: The accepted field that you want to search on. - example: created_at + enum: + - id + - role + - name + - avatar + - owner_id + - email + - email_domain + - phone + - external_id + - created_at + - signed_up_at + - updated_at + - last_seen_at + - last_contacted_at + - last_replied_at + - last_email_opened_at + - last_email_clicked_at + - language_override + - browser + - browser_language + - os + - location.country + - location.city + - location.region + - unsubscribed_from_emails + - marked_email_as_spam + - has_hard_bounced + - ios_last_seen_at + - ios_app_version + - ios_device + - ios_app_device + - ios_os_version + - ios_app_name + - ios_sdk_version + - android_last_seen_at + - android_app_version + - android_device + - android_app_device + - android_app_name + - android_sdk_version + - segment_id + - tag_id + - custom_attributes.* + example: custom_attributes.favorite_color operator: type: string enum: @@ -16288,12 +15788,21 @@ components: search for the value. example: ">" value: - type: string + oneOf: + - type: string + - type: integer + - type: array + items: + oneOf: + - type: string + - type: integer description: The value that you want to search on. example: '73732934' + nullable: true sla_applied: title: Applied SLA type: object + nullable: true description: | 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. @@ -16319,10 +15828,6 @@ components: - `missed`: If there are any missed sla_events for the conversation and no canceled events. If there’s even a single missed sla event, the status will always be missed. A missed status is not applied when the SLA expires, only the next time a teammate replies. - `active`: An SLA has been applied to a conversation, but has not yet been fulfilled. SLA status is active only if there are no “hit, “missed”, or “canceled” events. example: hit - required: - - type - - sla_name - - sla_status snooze_conversation_request: title: Snooze Conversation Request type: object @@ -16365,13 +15870,10 @@ components: format: uri description: The name of the Social media profile example: http://twitter.com/th1sland - required: - - type - - name - - url starting_after_paging: title: 'Pagination: Starting After' type: object + nullable: true properties: per_page: type: integer @@ -16383,8 +15885,6 @@ components: of results. nullable: true example: your-cursor-from-response - required: - - per_page subscription_type: title: Subscription Types type: object @@ -16435,14 +15935,6 @@ components: - email - sms_message example: email - required: - - type - - id - - state - - default_translation - - translations - - consent_type - - content_types subscription_type_list: title: Subscription Types type: object @@ -16460,9 +15952,6 @@ components: . items: "$ref": "#/components/schemas/subscription_type" - required: - - type - - data tag: title: Tag type: object @@ -16490,12 +15979,6 @@ components: example: 1663597223 applied_by: "$ref": "#/components/schemas/reference" - required: - - type - - id - - name - - applied_at - - applied_by tag_company_request: description: You can tag a single company or a list of companies. type: object @@ -16538,9 +16021,6 @@ components: description: A list of tags objects associated with the workspace . items: "$ref": "#/components/schemas/tag" - required: - - type - - data tag_multiple_users_request: description: You can tag a list of users. type: object @@ -16577,9 +16057,6 @@ components: description: A list of tags objects associated with the conversation. items: "$ref": "#/components/schemas/tag" - required: - - type - - tags team: title: Team type: object @@ -16591,8 +16068,6 @@ components: type: string description: Value is always "team" example: team - enum: - - team id: type: string description: The id of the team @@ -16610,11 +16085,6 @@ components: type: integer admin_priority_level: "$ref": "#/components/schemas/admin_priority_level" - required: - - type - - id - - name - - admin_ids team_list: title: Team List type: object @@ -16631,12 +16101,10 @@ components: description: A list of team objects items: "$ref": "#/components/schemas/team" - required: - - type - - teams team_priority_level: title: Team Priority Level type: object + nullable: true description: Admin priority levels for teams properties: primary_team_ids: @@ -16661,6 +16129,7 @@ components: x-tags: - Tickets description: Tickets are how you track requests from your users. + nullable: true properties: type: type: string @@ -16699,7 +16168,6 @@ components: example: submitted ticket_type: "$ref": "#/components/schemas/ticket_type" - nullable: true contacts: "$ref": "#/components/schemas/ticket_contacts" admin_assignee_id: @@ -16747,15 +16215,6 @@ components: type: string description: The state the ticket is currently in, in a human readable form - visible to customers, in the messenger, email and tickets portal. - required: - - type - - id - - ticket_id - - category - - ticket_attributes - - ticket_state - - ticket_type - - contacts ticket_contacts: title: Contacts type: object @@ -16774,9 +16233,6 @@ components: description: The list of contacts affected by this ticket. items: "$ref": "#/components/schemas/contact_reference" - required: - - type - - contacts ticket_custom_attributes: title: Ticket Attributes type: object @@ -16816,10 +16272,6 @@ components: example: 12345 pages: "$ref": "#/components/schemas/cursor_pages" - required: - - type - - tickets - - total_count ticket_part: title: Ticket Part type: object @@ -16831,8 +16283,6 @@ components: type: string description: Always ticket_part example: ticket_part - enum: - - ticket_part id: type: string description: The id representing the ticket part. @@ -16896,13 +16346,6 @@ components: type: boolean description: Whether or not the ticket part has been redacted. example: false - required: - - type - - id - - part_type - - body - - ticket_state - - created_at ticket_part_author: title: Ticket part author type: object @@ -16932,10 +16375,6 @@ components: format: email description: The email of the author example: operator+abcd1234@intercom.io - required: - - type - - id - - email ticket_parts: title: Ticket Parts type: object @@ -16959,10 +16398,6 @@ components: type: integer description: '' example: 2 - required: - - type - - ticket_parts - - total_count ticket_reply: title: A Ticket Part representing a note, comment, or quick_reply on a ticket type: object @@ -17014,11 +16449,6 @@ components: type: boolean description: Whether or not the ticket part has been redacted. example: false - required: - - type - - id - - part_type - - created_at ticket_request_custom_attributes: title: Ticket Attributes type: object @@ -17047,14 +16477,13 @@ components: - Tickets description: A ticket type, used to define the data fields to be captured in a ticket. + nullable: true properties: type: type: string description: String representing the object's type. Always has the value `ticket_type`. example: ticket_type - enum: - - ticket_type id: type: string description: The id representing the ticket type. @@ -17097,30 +16526,18 @@ components: type: integer format: timestamp description: The date and time the ticket type was last updated. - required: - - type - - id - - category - - name - - description - - icon - - workspace_id - - ticket_type_attributes - - archived - - created_at ticket_type_attribute: title: Ticket Type Attribute type: object description: Ticket type attribute, used to define each data field to be captured in a ticket. + nullable: true properties: type: type: string description: String representing the object's type. Always has the value `ticket_type_attribute`. example: ticket_type_attribute - enum: - - ticket_type_attribute id: type: string description: The id representing the ticket type attribute. @@ -17191,23 +16608,6 @@ components: type: integer format: timestamp description: The date and time the ticket type attribute was last updated. - required: - - type - - id - - workspace_id - - name - - description - - data_type - - input_options - - order - - required_to_create - - required_to_create_for_contacts - - visible_on_create - - visible_to_contacts - - default - - ticket_type_id - - archived - - created_at ticket_type_attribute_list: title: Ticket Type Attributes type: object @@ -17217,17 +16617,12 @@ components: type: string description: String representing the object's type. Always has the value `ticket_type_attributes.list`. - enum: - - ticket_type_attributes.list ticket_type_attributes: type: array description: A list of ticket type attributes associated with a given ticket type. items: "$ref": "#/components/schemas/ticket_type_attribute" - required: - - type - - ticket_type_attributes ticket_type_list: title: Ticket Types type: object @@ -17237,16 +16632,11 @@ components: type: string description: String representing the object's type. Always has the value `ticket_type.list`. - enum: - - ticket_type_attributes.list ticket_types: type: array description: A list of ticket_types associated with a given workspace. items: "$ref": "#/components/schemas/ticket_type" - required: - - type - - ticket_types translation: title: Translation type: object @@ -17266,10 +16656,6 @@ components: description: The two character identifier for the language of the translation object. example: en - required: - - name - - description - - locale untag_company_request: description: You can tag a single company or a list of companies. type: object @@ -17294,21 +16680,17 @@ components: untag: type: boolean description: Always set to true - example: true - x-fern-type: literalThis is external content
" + url: https://support.example.com/us/3 + ai_agent_availability: true + ai_copilot_availability: true + fin_availability: true + locale: en + source_id: 10 + external_id: '3' + created_at: 1736201411 + updated_at: 1736201411 + last_ingested_at: 1736201411 + - id: '2' + type: external_page + title: My External Content + html: "This is external content
" + url: https://support.example.com/us/2 + ai_agent_availability: true + ai_copilot_availability: true + fin_availability: true + locale: en + source_id: 9 + external_id: '2' + created_at: 1736201411 + updated_at: 1736201411 + last_ingested_at: 1736201411 + - id: '1' + type: external_page + title: My External Content + html: "This is external content
" + url: https://support.example.com/us/1 + ai_agent_availability: true + ai_copilot_availability: true + fin_availability: true + locale: en + source_id: 8 + external_id: '1' + created_at: 1736201411 + updated_at: 1736201411 + last_ingested_at: 1736201411 + pages: + type: pages + page: 1 + per_page: 50 + total_pages: 1 + total_count: 3 + type: list + schema: + "$ref": "#/components/schemas/external_pages_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: dd3cc8b6-bc26-46c2-8f66-4b5654f5f009 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + post: + summary: Create an external page (or update an external page by external ID) + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - AI Content + operationId: createExternalPage + description: You can create a new external page by sending a POST request to + this endpoint. If an external page already exists with the specified source_id + and external_id, it will be updated instead. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: '5' + type: external_page + title: Test + html: "This is external content
" + url: https://support.example.com/us/6 + ai_agent_availability: true + ai_copilot_availability: true + fin_availability: true + locale: en + source_id: 14 + external_id: '5' + created_at: 1736201418 + updated_at: 1736201418 + last_ingested_at: 1736201418 + schema: + "$ref": "#/components/schemas/external_page" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 791fdc2c-ca60-41db-b828-2d9c9cdccf8d + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + put: + summary: Update an external page + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - AI Content + operationId: updateExternalPage + description: You can update an existing external page (if it was created via + the API). + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: '8' + type: external_page + title: Test + html: "Body of the Article
+ author_id: 991266252 + state: published + created_at: 1736201425 + updated_at: 1736201425 + url: http://help-center.test/myapp-68/en/articles/4-thanks-for-everything + schema: + "$ref": "#/components/schemas/article" + '400': + description: Bad Request + content: + application/json: + examples: + Bad Request: + value: + type: error.list + request_id: f48a23c3-8d82-4bc5-ae80-0b2048b481b9 + errors: + - code: parameter_not_found + message: author_id must be in the main body or default locale + translated_content object + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: b3b04042-a80c-49fc-bcf2-33807467f3f9 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_article_request" + examples: + article_created: + summary: article created + value: + title: Thanks for everything + description: Description of the Article + body: Body of the Article + author_id: 991266252 + state: published + parent_id: 3 + parent_type: collection + translated_content: + fr: + title: Merci pour tout + description: Description de l'article + body: Corps de l'article + author_id: 991266252 + state: published + bad_request: + summary: Bad Request + value: + title: Thanks for everything + description: Description of the Article + body: Body of the Article + state: published + "/articles/{id}": + get: + summary: Retrieve an article + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the article which is given by Intercom. + example: 123 + schema: + type: integer + tags: + - Articles + operationId: retrieveArticle + description: You can fetch the details of a single article by making a GET request + to `https://api.intercom.io/articles/New gifts in store for the jolly season
+ author_id: 991266263 + state: published + created_at: 1736201432 + updated_at: 1736201433 + url: http://help-center.test/myapp-80/en/articles/10-christmas-is-here + schema: + "$ref": "#/components/schemas/article" + '404': + description: Article Not Found + content: + application/json: + examples: + Article Not Found: + value: + type: error.list + request_id: c6f3133c-f293-42f7-a202-02dcd40dea76 + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: b5a5fe64-fe1e-4757-92ea-200575a6f7fc + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/update_article_request" + examples: + successful: + summary: successful + value: + title: Christmas is here! + body: "New gifts in store for the jolly season
" + article_not_found: + summary: Article Not Found + value: + title: Christmas is here! + body: "New gifts in store for the jolly season
" + delete: + summary: Delete an article + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the article which is given by Intercom. + example: 123 + schema: + type: integer + tags: + - Articles + operationId: deleteArticle + description: You can delete a single article by making a DELETE request to `https://api.intercom.io/articles/This is a note.
" + - type: note + id: '2' + created_at: 1735510313 + contact: + type: contact + id: 677c55296abd011ad17ff4cf + author: + type: admin + id: '991266336' + name: Ciaran122 Lee + email: admin122@email.com + away_mode_enabled: false + away_mode_reassign: false + body: "This is a note.
" + - type: note + id: '1' + created_at: 1735510313 + contact: + type: contact + id: 677c55296abd011ad17ff4cf + author: + type: admin + id: '991266336' + name: Ciaran122 Lee + email: admin122@email.com + away_mode_enabled: false + away_mode_reassign: false + body: "This is a note.
" + total_count: 3 + pages: + type: pages + next: + page: 1 + per_page: 50 + total_pages: 1 + schema: + "$ref": "#/components/schemas/note_list" + '404': + description: Contact not found + content: + application/json: + examples: + Contact not found: + value: + type: error.list + request_id: 902de2e2-fa77-49c1-a77c-595d2c858827 + errors: + - code: not_found + message: User Not Found + schema: + "$ref": "#/components/schemas/error" + post: + summary: Create a note + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier of a given contact. + example: '123' + schema: + type: integer + tags: + - Notes + - Contacts + operationId: createNote + description: You can add a note to a single contact. + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful response: + value: + type: note + id: '8' + created_at: 1736201515 + contact: + type: contact + id: 677c552b6abd011ad17ff4d1 + author: + type: admin + id: '991266338' + name: Ciaran124 Lee + email: admin124@email.com + away_mode_enabled: false + away_mode_reassign: false + body: "Hello
" + schema: + "$ref": "#/components/schemas/note" + '404': + description: Contact not found + content: + application/json: + examples: + Admin not found: + value: + type: error.list + request_id: 11676a9f-3cab-4c51-baf9-3e930cfe25bb + errors: + - code: not_found + message: Resource Not Found + Contact not found: + value: + type: error.list + request_id: 509c4e8f-2c9d-4843-94b7-c71e245ac052 + errors: + - code: not_found + message: User Not Found + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + type: object + required: + - body + properties: + body: + type: string + description: The text of the note. + example: New note + contact_id: + type: string + description: The unique identifier of a given contact. + example: '123' + admin_id: + type: string + description: The unique identifier of a given admin. + example: '123' + examples: + successful_response: + summary: Successful response + value: + contact_id: 677c552b6abd011ad17ff4d1 + admin_id: 991266338 + body: Hello + admin_not_found: + summary: Admin not found + value: + contact_id: 677c552c6abd011ad17ff4d2 + admin_id: 123 + body: Hello + contact_not_found: + summary: Contact not found + value: + contact_id: 123 + admin_id: 991266340 + body: Hello + "/contacts/{contact_id}/segments": + get: + summary: List attached segments for contact + parameters: + - name: contact_id + in: path + description: The unique identifier for the contact which is given by Intercom + example: 63a07ddf05a32042dffac965 + required: true + schema: + type: string + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Contacts + - Segments + operationId: listSegmentsForAContact + description: You can fetch a list of segments that are associated to a contact. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: list + data: + - type: segment + id: 677c552e6abd011ad17ff4d4 + name: segment + created_at: 1736201518 + updated_at: 1736201518 + person_type: user + schema: + "$ref": "#/components/schemas/contact_segments" + '404': + description: Contact not found + content: + application/json: + examples: + Contact not found: + value: + type: error.list + request_id: b4d259f0-4279-444e-a253-63dca659e554 + errors: + - code: not_found + message: User Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: d88826c5-9162-46e1-beb2-513c91ba3bd5 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/contacts/{contact_id}/subscriptions": + get: + summary: List subscriptions for a contact + parameters: + - name: contact_id + in: path + description: The unique identifier for the contact which is given by Intercom + example: 63a07ddf05a32042dffac965 + required: true + schema: + type: string + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Contacts + - Subscription Types + operationId: listSubscriptionsForAContact + description: | + You can fetch a list of subscription types that are attached to a contact. These can be subscriptions that a user has 'opted-in' to or has 'opted-out' from, depending on the subscription type. + This will return a list of Subscription Type objects that the contact is associated with. + + The data property will show a combined list of: + + 1.Opt-out subscription types that the user has opted-out from. + 2.Opt-in subscription types that the user has opted-in to receiving. + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: list + data: + - type: subscription + id: '1' + state: live + consent_type: opt_out + default_translation: + name: Newsletters + description: Lorem ipsum dolor sit amet + locale: en + translations: + - name: Newsletters + description: Lorem ipsum dolor sit amet + locale: en + content_types: + - email + - type: subscription + id: '3' + state: live + consent_type: opt_in + default_translation: + name: Newsletters + description: Lorem ipsum dolor sit amet + locale: en + translations: + - name: Newsletters + description: Lorem ipsum dolor sit amet + locale: en + content_types: + - sms_message + schema: + "$ref": "#/components/schemas/subscription_type_list" + '404': + description: Contact not found + content: + application/json: + examples: + Contact not found: + value: + type: error.list + request_id: def98523-ecf1-4e97-9781-7ebb3547c3d6 + errors: + - code: not_found + message: User Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 767a76aa-98b6-4489-a947-4f87d7c1f181 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + post: + summary: Add subscription to a contact + tags: + - Subscription Types + - Contacts + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: contact_id + in: path + description: The unique identifier for the contact which is given by Intercom + example: 63a07ddf05a32042dffac965 + required: true + schema: + type: string + operationId: attachSubscriptionTypeToContact + description: | + You can add a specific subscription to a contact. In Intercom, we have two different subscription types based on user consent - opt-out and opt-in: + + 1.Attaching a contact to an opt-out subscription type will opt that user out from receiving messages related to that subscription type. + + 2.Attaching a contact to an opt-in subscription type will opt that user in to receiving messages related to that subscription type. + + This will return a subscription type model for the subscription type that was added to the contact. + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: subscription + id: '16' + state: live + consent_type: opt_in + default_translation: + name: Newsletters + description: Lorem ipsum dolor sit amet + locale: en + translations: + - name: Newsletters + description: Lorem ipsum dolor sit amet + locale: en + content_types: + - sms_message + schema: + "$ref": "#/components/schemas/subscription_type" + '404': + description: Resource not found + content: + application/json: + examples: + Contact not found: + value: + type: error.list + request_id: 7651481f-6f68-41b5-b808-8edd118f88cb + errors: + - code: not_found + message: User Not Found + Resource not found: + value: + type: error.list + request_id: 41900b95-2170-49cf-b995-69e4f8af04d1 + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 49a772ef-b946-4a79-8399-c7167c6ebdec + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + type: object + required: + - id + - consent_type + properties: + id: + type: string + description: The unique identifier for the subscription which is + given by Intercom + example: '37846' + consent_type: + type: string + description: The consent_type of a subscription, opt_out or opt_in. + example: opt_in + examples: + successful: + summary: Successful + value: + id: 16 + consent_type: opt_in + contact_not_found: + summary: Contact not found + value: + id: 20 + consent_type: opt_in + resource_not_found: + summary: Resource not found + value: + id: invalid_id + consent_type: opt_in + "/contacts/{contact_id}/subscriptions/{id}": + delete: + summary: Remove subscription from a contact + tags: + - Subscription Types + - Contacts + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: contact_id + in: path + description: The unique identifier for the contact which is given by Intercom + example: 63a07ddf05a32042dffac965 + required: true + schema: + type: string + - name: id + in: path + description: The unique identifier for the subscription type which is given + by Intercom + example: '37846' + required: true + schema: + type: string + operationId: detachSubscriptionTypeToContact + description: You can remove a specific subscription from a contact. This will + return a subscription type model for the subscription type that was removed + from the contact. + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: subscription + id: '32' + state: live + consent_type: opt_in + default_translation: + name: Newsletters + description: Lorem ipsum dolor sit amet + locale: en + translations: + - name: Newsletters + description: Lorem ipsum dolor sit amet + locale: en + content_types: + - sms_message + schema: + "$ref": "#/components/schemas/subscription_type" + '404': + description: Resource not found + content: + application/json: + examples: + Contact not found: + value: + type: error.list + request_id: 4e118465-bc01-4004-9c18-c21b5b639aa1 + errors: + - code: not_found + message: User Not Found + Resource not found: + value: + type: error.list + request_id: 2dee041e-e2aa-4d5b-858a-1571aca1bbba + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: edfa9186-5886-4625-953b-9b5351a36612 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/contacts/{contact_id}/tags": + get: + summary: List tags attached to a contact + tags: + - Contacts + - Tags + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: contact_id + in: path + description: The unique identifier for the contact which is given by Intercom + example: 63a07ddf05a32042dffac965 + required: true + schema: + type: string + operationId: listTagsForAContact + description: You can fetch a list of all tags that are attached to a specific + contact. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: list + data: + - type: tag + id: '1' + name: Manual tag + schema: + "$ref": "#/components/schemas/tag_list" + '404': + description: Contact not found + content: + application/json: + examples: + Contact not found: + value: + type: error.list + request_id: 71633704-36d0-42f4-846d-4d96298f90f2 + errors: + - code: not_found + message: User Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 3417be72-22bb-45a1-86bf-aabaa1cf1d2a + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + post: + summary: Add tag to a contact + tags: + - Tags + - Contacts + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: contact_id + in: path + description: The unique identifier for the contact which is given by Intercom + example: 63a07ddf05a32042dffac965 + required: true + schema: + type: string + operationId: attachTagToContact + description: You can tag a specific contact. This will return a tag object for + the tag that was added to the contact. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: tag + id: '2' + name: Manual tag + schema: + "$ref": "#/components/schemas/tag" + '404': + description: Tag not found + content: + application/json: + examples: + Contact not found: + value: + type: error.list + request_id: 17a206f8-5295-48db-adfc-f81200964e78 + errors: + - code: not_found + message: User Not Found + Tag not found: + value: + type: error.list + request_id: 4b97f37f-3160-4410-a1bf-17e19de51677 + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 003a1d62-b248-4b34-b9df-32862e2e3e52 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + type: object + required: + - id + properties: + id: + type: string + description: The unique identifier for the tag which is given by + Intercom + example: '7522907' + examples: + successful: + summary: successful + value: + id: 2 + contact_not_found: + summary: Contact not found + value: + id: 3 + tag_not_found: + summary: Tag not found + value: + id: '123' + "/contacts/{contact_id}/tags/{id}": + delete: + summary: Remove tag from a contact + tags: + - Tags + - Contacts + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: contact_id + in: path + description: The unique identifier for the contact which is given by Intercom + example: 63a07ddf05a32042dffac965 + required: true + schema: + type: string + - name: id + in: path + description: The unique identifier for the tag which is given by Intercom + example: '7522907' + required: true + schema: + type: string + operationId: detachTagFromContact + description: You can remove tag from a specific contact. This will return a + tag object for the tag that was removed from the contact. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: tag + id: '5' + name: Manual tag + schema: + "$ref": "#/components/schemas/tag" + '404': + description: Tag not found + content: + application/json: + examples: + Contact not found: + value: + type: error.list + request_id: f2b8b5a0-f7af-42fc-a086-e7606f1239db + errors: + - code: not_found + message: User Not Found + Tag not found: + value: + type: error.list + request_id: d79bf90f-4ed4-49fa-930f-1e60895c7347 + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 8ba0bd8c-ddf7-4553-a828-863529952551 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/contacts/{id}": + put: + summary: Update a contact + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + description: id + example: 63a07ddf05a32042dffac965 + required: true + schema: + type: string + tags: + - Contacts + operationId: UpdateContact + description: You can update an existing contact (ie. user or lead). + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: contact + id: 677c55486abd011ad17ff4eb + workspace_id: this_is_an_id279_that_should_be_at_least_ + external_id: '70' + role: user + email: joebloggs@intercom.io + phone: + name: joe bloggs + avatar: + owner_id: + social_profiles: + type: list + data: [] + has_hard_bounced: false + marked_email_as_spam: false + unsubscribed_from_emails: false + created_at: 1736201544 + updated_at: 1736201545 + signed_up_at: 1736201544 + last_seen_at: + last_replied_at: + last_contacted_at: + last_email_opened_at: + last_email_clicked_at: + language_override: + browser: + browser_version: + browser_language: + os: + location: + type: location + country: + region: + city: + country_code: + continent_code: + android_app_name: + android_app_version: + android_device: + android_os_version: + android_sdk_version: + android_last_seen_at: + ios_app_name: + ios_app_version: + ios_device: + ios_os_version: + ios_sdk_version: + ios_last_seen_at: + custom_attributes: {} + tags: + type: list + data: [] + url: "/contacts/677c55486abd011ad17ff4eb/tags" + total_count: 0 + has_more: false + notes: + type: list + data: [] + url: "/contacts/677c55486abd011ad17ff4eb/notes" + total_count: 0 + has_more: false + companies: + type: list + data: [] + url: "/contacts/677c55486abd011ad17ff4eb/companies" + total_count: 0 + has_more: false + opted_out_subscription_types: + type: list + data: [] + url: "/contacts/677c55486abd011ad17ff4eb/subscriptions" + total_count: 0 + has_more: false + opted_in_subscription_types: + type: list + data: [] + url: "/contacts/677c55486abd011ad17ff4eb/subscriptions" + total_count: 0 + has_more: false + utm_campaign: + utm_content: + utm_medium: + utm_source: + utm_term: + referrer: + enabled_push_messaging: + schema: + allOf: + - "$ref": "#/components/schemas/contact" + properties: + enabled_push_messaging: + type: boolean + nullable: true + description: If the user has enabled push messaging. + example: true + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 07bb4c45-3e23-41f6-a8eb-59b8a9166e3d + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + oneOf: + - "$ref": "#/components/schemas/update_contact_request" + examples: + successful: + summary: successful + value: + email: joebloggs@intercom.io + name: joe bloggs + get: + summary: Get a contact + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + description: id + example: 63a07ddf05a32042dffac965 + required: true + schema: + type: string + tags: + - Contacts + operationId: ShowContact + description: You can fetch the details of a single contact. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: contact + id: 677c554b6abd011ad17ff4ec + workspace_id: this_is_an_id283_that_should_be_at_least_ + external_id: '70' + role: user + email: joe@bloggs.com + phone: + name: Joe Bloggs + avatar: + owner_id: + social_profiles: + type: list + data: [] + has_hard_bounced: false + marked_email_as_spam: false + unsubscribed_from_emails: false + created_at: 1736201547 + updated_at: 1736201547 + signed_up_at: 1736201547 + last_seen_at: + last_replied_at: + last_contacted_at: + last_email_opened_at: + last_email_clicked_at: + language_override: + browser: + browser_version: + browser_language: + os: + location: + type: location + country: + region: + city: + country_code: + continent_code: + android_app_name: + android_app_version: + android_device: + android_os_version: + android_sdk_version: + android_last_seen_at: + ios_app_name: + ios_app_version: + ios_device: + ios_os_version: + ios_sdk_version: + ios_last_seen_at: + custom_attributes: {} + tags: + type: list + data: [] + url: "/contacts/677c554b6abd011ad17ff4ec/tags" + total_count: 0 + has_more: false + notes: + type: list + data: [] + url: "/contacts/677c554b6abd011ad17ff4ec/notes" + total_count: 0 + has_more: false + companies: + type: list + data: [] + url: "/contacts/677c554b6abd011ad17ff4ec/companies" + total_count: 0 + has_more: false + opted_out_subscription_types: + type: list + data: [] + url: "/contacts/677c554b6abd011ad17ff4ec/subscriptions" + total_count: 0 + has_more: false + opted_in_subscription_types: + type: list + data: [] + url: "/contacts/677c554b6abd011ad17ff4ec/subscriptions" + total_count: 0 + has_more: false + utm_campaign: + utm_content: + utm_medium: + utm_source: + utm_term: + referrer: + enabled_push_messaging: + schema: + allOf: + - "$ref": "#/components/schemas/contact" + properties: + enabled_push_messaging: + type: boolean + nullable: true + description: If the user has enabled push messaging. + example: true + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 29e92fbf-b1da-4a3d-b9b1-4318fadbbe7e + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + delete: + summary: Delete a contact + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + description: id + required: true + schema: + type: string + tags: + - Contacts + operationId: DeleteContact + description: You can delete a single contact. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: 677c554d6abd011ad17ff4ed + external_id: '70' + type: contact + deleted: true + schema: + "$ref": "#/components/schemas/contact_deleted" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 99da37e1-e5ee-4665-9156-1bc11276afd5 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/contacts/merge": + post: + summary: Merge a lead and a user + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Contacts + operationId: MergeContact + description: You can merge a contact with a `role` of `lead` into a contact + with a `role` of `user`. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: contact + id: 677c554f6abd011ad17ff4ef + workspace_id: this_is_an_id291_that_should_be_at_least_ + external_id: '70' + role: user + email: joe@bloggs.com + phone: + name: Joe Bloggs + avatar: + owner_id: + social_profiles: + type: list + data: [] + has_hard_bounced: false + marked_email_as_spam: false + unsubscribed_from_emails: false + created_at: 1736201551 + updated_at: 1736201552 + signed_up_at: 1736201551 + last_seen_at: + last_replied_at: + last_contacted_at: + last_email_opened_at: + last_email_clicked_at: + language_override: + browser: + browser_version: + browser_language: + os: + location: + type: location + country: + region: + city: + country_code: + continent_code: + android_app_name: + android_app_version: + android_device: + android_os_version: + android_sdk_version: + android_last_seen_at: + ios_app_name: + ios_app_version: + ios_device: + ios_os_version: + ios_sdk_version: + ios_last_seen_at: + custom_attributes: {} + tags: + type: list + data: [] + url: "/contacts/677c554f6abd011ad17ff4ef/tags" + total_count: 0 + has_more: false + notes: + type: list + data: [] + url: "/contacts/677c554f6abd011ad17ff4ef/notes" + total_count: 0 + has_more: false + companies: + type: list + data: [] + url: "/contacts/677c554f6abd011ad17ff4ef/companies" + total_count: 0 + has_more: false + opted_out_subscription_types: + type: list + data: [] + url: "/contacts/677c554f6abd011ad17ff4ef/subscriptions" + total_count: 0 + has_more: false + opted_in_subscription_types: + type: list + data: [] + url: "/contacts/677c554f6abd011ad17ff4ef/subscriptions" + total_count: 0 + has_more: false + utm_campaign: + utm_content: + utm_medium: + utm_source: + utm_term: + referrer: + enabled_push_messaging: + schema: + allOf: + - "$ref": "#/components/schemas/contact" + properties: + enabled_push_messaging: + type: boolean + nullable: true + description: If the user has enabled push messaging. + example: true + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: f8224a37-5351-4e3f-8e66-78b32b51b643 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/merge_contacts_request" + examples: + successful: + summary: successful + value: + from: 677c554f6abd011ad17ff4ee + into: 677c554f6abd011ad17ff4ef + "/contacts/search": + post: + summary: Search contacts + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Contacts + operationId: SearchContacts + description: | + You can search for multiple contacts by the value of their attributes in order to fetch exactly who you want. + + To search for contacts, you need to send a `POST` request to `https://api.intercom.io/contacts/search`. + + This will accept a query object in the body which will define your filters in order to search for contacts. + + {% admonition type="warning" name="Optimizing search queries" %} + Search queries can be complex, so optimizing them can help the performance of your search. + Use the `AND` and `OR` operators to combine multiple filters to get the exact results you need and utilize + pagination to limit the number of results returned. The default is `50` results per page. + See the [pagination section](https://developers.intercom.com/docs/build-an-integration/learn-more/rest-apis/pagination/#example-search-conversations-request) for more details on how to use the `starting_after` param. + {% /admonition %} + ### Contact Creation Delay + + If a contact has recently been created, there is a possibility that it will not yet be available when searching. This means that it may not appear in the response. This delay can take a few minutes. If you need to be instantly notified it is recommended to use webhooks and iterate to see if they match your search filters. + + ### Nesting & Limitations + + You can nest these filters in order to get even more granular insights that pinpoint exactly what you need. Example: (1 OR 2) AND (3 OR 4). + There are some limitations to the amount of multiple's there can be: + * There's a limit of max 2 nested filters + * There's a limit of max 15 filters for each AND or OR group + + ### Searching for Timestamp Fields + + All timestamp fields (created_at, updated_at etc.) are indexed as Dates for Contact Search queries; Datetime queries are not currently supported. This means you can only query for timestamp fields by day - not hour, minute or second. + For example, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM), that will be interpreted as 1577836800 (January 1st, 2020 12:00 AM). The search results will then include Contacts created from January 2nd, 2020 12:00 AM onwards. + If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM). + This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. + + ### Accepted Fields + + Most key listed as part of the Contacts Model are searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foorbar"`). + + | Field | Type | + | ---------------------------------- | ------------------------------ | + | id | String | + | role | Stringthis is the message body
" + author: + type: admin + id: '991266381' + name: Ciaran164 Lee + email: admin164@email.com + attachments: [] + url: + redacted: false + contacts: + type: contact.list + contacts: + - type: contact + id: 677c55676abd011ad17ff4f8 + external_id: '70' + first_contact_reply: + admin_assignee_id: + team_assignee_id: + open: false + state: closed + read: false + tags: + type: tag.list + tags: [] + priority: not_priority + sla_applied: + statistics: + conversation_rating: + teammates: + title: + topics: {} + ticket: + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + ai_agent: + ai_agent_participated: false + schema: + "$ref": "#/components/schemas/paginated_response" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: b68959ea-6328-4f70-83cb-e7913dba1542 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + '403': + description: API plan restricted + content: + application/json: + examples: + API plan restricted: + value: + type: error.list + request_id: 5bf4d0e0-ebe0-483c-a30e-6adadb76c1e6 + errors: + - code: api_plan_restricted + message: Active subscription needed. + schema: + "$ref": "#/components/schemas/error" + post: + summary: Creates a conversation + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Conversations + operationId: createConversation + description: |+ + You can create a conversation that has been initiated by a contact (ie. user or lead). + The conversation can be an in-app message only. + + {% admonition type="info" name="Sending for visitors" %} + You can also send a message from a visitor by specifying their `user_id` or `id` value in the `from` field, along with a `type` field value of `contact`. + This visitor will be automatically converted to a contact with a lead role once the conversation is created. + {% /admonition %} + + This will return the Message model that has been created. + + responses: + '200': + description: conversation created + content: + application/json: + examples: + conversation created: + value: + type: user_message + id: '403918075' + created_at: 1736201609 + body: Hello there + message_type: inapp + conversation_id: '33' + schema: + "$ref": "#/components/schemas/message" + '404': + description: Contact Not Found + content: + application/json: + examples: + Contact Not Found: + value: + type: error.list + request_id: 804d10f9-c9c9-4280-a1ae-3f7a2f2d9a87 + errors: + - code: not_found + message: User Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 68b68480-5c50-454e-ad59-2bd75b9c30d6 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + '403': + description: API plan restricted + content: + application/json: + examples: + API plan restricted: + value: + type: error.list + request_id: 6e605cf9-4fe7-4998-b328-61754971a35b + errors: + - code: api_plan_restricted + message: Active subscription needed. + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_conversation_request" + examples: + conversation_created: + summary: conversation created + value: + from: + type: user + id: 677c55876abd011ad17ff510 + body: Hello there + contact_not_found: + summary: Contact Not Found + value: + from: + type: user + id: 123_doesnt_exist + body: Hello there + "/conversations/{id}": + get: + summary: Retrieve a conversation + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The id of the conversation to target + example: 123 + schema: + type: integer + - name: display_as + in: query + required: false + description: Set to plaintext to retrieve conversation messages in plain text. + example: plaintext + schema: + type: string + tags: + - Conversations + operationId: retrieveConversation + description: |2 + + You can fetch the details of a single conversation. + + This will return a single Conversation model with all its conversation parts. + + {% admonition type="warning" name="Hard limit of 500 parts" %} + The maximum number of conversation parts that can be returned via the API is 500. If you have more than that we will return the 500 most recent conversation parts. + {% /admonition %} + + For AI agent conversation metadata, please note that you need to have the agent enabled in your workspace, which is a [paid feature](https://www.intercom.com/help/en/articles/8205718-fin-resolutions#h_97f8c2e671). + responses: + '200': + description: conversation found + content: + application/json: + examples: + conversation found: + value: + type: conversation + id: '37' + created_at: 1736201617 + updated_at: 1736201617 + waiting_since: + snoozed_until: + source: + type: conversation + id: '403918079' + delivered_as: admin_initiated + subject: '' + body: "this is the message body
" + author: + type: admin + id: '991266398' + name: Ciaran174 Lee + email: admin174@email.com + attachments: [] + url: + redacted: false + contacts: + type: contact.list + contacts: + - type: contact + id: 677c55916abd011ad17ff514 + external_id: '70' + first_contact_reply: + admin_assignee_id: + team_assignee_id: + open: false + state: closed + read: false + tags: + type: tag.list + tags: [] + priority: not_priority + sla_applied: + statistics: + conversation_rating: + teammates: + title: + topics: {} + ticket: + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + ai_agent: + ai_agent_participated: false + conversation_parts: + type: conversation_part.list + conversation_parts: [] + total_count: 0 + schema: + "$ref": "#/components/schemas/conversation" + '404': + description: Not found + content: + application/json: + examples: + Not found: + value: + type: error.list + request_id: f1971bb0-4afa-4689-82ac-3a148aebe684 + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: b8a304bc-9437-43d1-9cdb-6166164a48d3 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + '403': + description: API plan restricted + content: + application/json: + examples: + API plan restricted: + value: + type: error.list + request_id: 427e689c-53ba-44f8-842e-1a9255b20b7b + errors: + - code: api_plan_restricted + message: Active subscription needed. + schema: + "$ref": "#/components/schemas/error" + put: + summary: Update a conversation + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The id of the conversation to target + example: 123 + schema: + type: integer + - name: display_as + in: query + required: false + description: Set to plaintext to retrieve conversation messages in plain text. + example: plaintext + schema: + type: string + tags: + - Conversations + operationId: updateConversation + description: |2+ + + You can update an existing conversation. + + {% admonition type="info" name="Replying and other actions" %} + If you want to reply to a coveration or take an action such as assign, unassign, open, close or snooze, take a look at the reply and manage endpoints. + {% /admonition %} + + responses: + '200': + description: update a conversation with an association to a custom object + instance + content: + application/json: + examples: + conversation found: + value: + type: conversation + id: '41' + created_at: 1736201626 + updated_at: 1736201628 + waiting_since: + snoozed_until: + source: + type: conversation + id: '403918083' + delivered_as: admin_initiated + subject: '' + body: "this is the message body
" + author: + type: admin + id: '991266406' + name: Ciaran178 Lee + email: admin178@email.com + attachments: [] + url: + redacted: false + contacts: + type: contact.list + contacts: + - type: contact + id: 677c559a6abd011ad17ff518 + external_id: '70' + first_contact_reply: + admin_assignee_id: + team_assignee_id: + open: false + state: closed + read: true + tags: + type: tag.list + tags: [] + priority: not_priority + sla_applied: + statistics: + conversation_rating: + teammates: + title: + topics: {} + ticket: + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + ai_agent: + ai_agent_participated: false + conversation_parts: + type: conversation_part.list + conversation_parts: + - type: conversation_part + id: '6' + part_type: conversation_attribute_updated_by_admin + body: + created_at: 1736201628 + updated_at: 1736201628 + notified_at: 1736201628 + assigned_to: + author: + id: '991266407' + type: bot + name: Fin + email: operator+this_is_an_id352_that_should_be_at_least_@intercom.io + attachments: [] + external_id: + redacted: false + - type: conversation_part + id: '7' + part_type: conversation_attribute_updated_by_admin + body: + created_at: 1736201628 + updated_at: 1736201628 + notified_at: 1736201628 + assigned_to: + author: + id: '991266407' + type: bot + name: Fin + email: operator+this_is_an_id352_that_should_be_at_least_@intercom.io + attachments: [] + external_id: + redacted: false + total_count: 2 + update a conversation with an association to a custom object instance: + value: + type: conversation + id: '42' + created_at: 1736201630 + updated_at: 1736201630 + waiting_since: + snoozed_until: + source: + type: conversation + id: '403918084' + delivered_as: admin_initiated + subject: '' + body: "this is the message body
" + author: + type: admin + id: '991266412' + name: Ciaran183 Lee + email: admin183@email.com + attachments: [] + url: + redacted: false + contacts: + type: contact.list + contacts: + - type: contact + id: 677c559d6abd011ad17ff519 + external_id: '70' + first_contact_reply: + admin_assignee_id: + team_assignee_id: + open: false + state: closed + read: false + tags: + type: tag.list + tags: [] + priority: not_priority + sla_applied: + statistics: + conversation_rating: + teammates: + title: + topics: {} + ticket: + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + ai_agent: + ai_agent_participated: false + conversation_parts: + type: conversation_part.list + conversation_parts: [] + total_count: 0 + schema: + "$ref": "#/components/schemas/conversation" + '404': + description: Not found + content: + application/json: + examples: + Not found: + value: + type: error.list + request_id: '091a0b6a-9ec2-44e6-9b58-b3e853db42ec' + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: e2924c78-e766-44b1-883f-ad7d198f636f + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + '403': + description: API plan restricted + content: + application/json: + examples: + API plan restricted: + value: + type: error.list + request_id: 2327de55-9d6c-4254-a16e-ec6da61c35a0 + errors: + - code: api_plan_restricted + message: Active subscription needed. + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/update_conversation_request" + examples: + conversation_found: + summary: conversation found + value: + read: true + not_found: + summary: Not found + value: + read: true + "/conversations/search": + post: + summary: Search conversations + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Conversations + operationId: searchConversations + description: | + You can search for multiple conversations by the value of their attributes in order to fetch exactly which ones you want. + + To search for conversations, you need to send a `POST` request to `https://api.intercom.io/conversations/search`. + + This will accept a query object in the body which will define your filters in order to search for conversations. + {% admonition type="warning" name="Optimizing search queries" %} + Search queries can be complex, so optimizing them can help the performance of your search. + Use the `AND` and `OR` operators to combine multiple filters to get the exact results you need and utilize + pagination to limit the number of results returned. The default is `20` results per page and maximum is `150`. + See the [pagination section](https://developers.intercom.com/docs/build-an-integration/learn-more/rest-apis/pagination/#example-search-conversations-request) for more details on how to use the `starting_after` param. + {% /admonition %} + + ### Nesting & Limitations + + You can nest these filters in order to get even more granular insights that pinpoint exactly what you need. Example: (1 OR 2) AND (3 OR 4). + There are some limitations to the amount of multiple's there can be: + - There's a limit of max 2 nested filters + - There's a limit of max 15 filters for each AND or OR group + + ### Accepted Fields + + Most keys listed as part of the conversation model are searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foorbar"`). + The `source.body` field is unique as the search will not be performed against the entire value, but instead against every element of the value separately. For example, when searching for a conversation with a `"I need support"` body - the query should contain a `=` operator with the value `"support"` for such conversation to be returned. A query with a `=` operator and a `"need support"` value will not yield a result. + + | Field | Type | + | :---------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | + | id | String | + | created_at | Date (UNIX timestamp) | + | updated_at | Date (UNIX timestamp) | + | source.type | Stringthis is the message body
" + author: + type: admin + id: '991266444' + name: Ciaran208 Lee + email: admin208@email.com + attachments: [] + url: + redacted: false + contacts: + type: contact.list + contacts: + - type: contact + id: 677c55ae6abd011ad17ff520 + external_id: '70' + first_contact_reply: + admin_assignee_id: + team_assignee_id: + open: false + state: closed + read: false + tags: + type: tag.list + tags: [] + priority: not_priority + sla_applied: + statistics: + conversation_rating: + teammates: + title: + topics: {} + ticket: + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + ai_agent: + ai_agent_participated: false + schema: + "$ref": "#/components/schemas/conversation_list" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/search_request" + examples: + successful: + summary: successful + value: + query: + operator: AND + value: + - field: created_at + operator: ">" + value: '1306054154' + pagination: + per_page: 5 + "/conversations/{id}/reply": + post: + summary: Reply to a conversation + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The Intercom provisioned identifier for the conversation or the + string "last" to reply to the last part of the conversation + example: 123 or "last" + schema: + type: string + tags: + - Conversations + operationId: replyConversation + description: You can reply to a conversation with a message from an admin or + on behalf of a contact, or with a note for admins. + responses: + '200': + description: User last conversation reply + content: + application/json: + examples: + User reply: + value: + type: conversation + id: '58' + created_at: 1736201657 + updated_at: 1736201658 + waiting_since: 1736201658 + snoozed_until: + source: + type: conversation + id: '403918094' + delivered_as: admin_initiated + subject: '' + body: "this is the message body
" + author: + type: admin + id: '991266447' + name: Ciaran210 Lee + email: admin210@email.com + attachments: [] + url: + redacted: false + contacts: + type: contact.list + contacts: + - type: contact + id: 677c55b86abd011ad17ff528 + external_id: '70' + first_contact_reply: + created_at: 1736201658 + type: conversation + url: + admin_assignee_id: + team_assignee_id: + open: true + state: open + read: false + tags: + type: tag.list + tags: [] + priority: not_priority + sla_applied: + statistics: + conversation_rating: + teammates: + title: + topics: {} + ticket: + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + ai_agent: + ai_agent_participated: false + conversation_parts: + type: conversation_part.list + conversation_parts: + - type: conversation_part + id: '9' + part_type: open + body: "Thanks again :)
" + created_at: 1736201658 + updated_at: 1736201658 + notified_at: 1736201658 + assigned_to: + author: + id: 677c55b86abd011ad17ff528 + type: user + name: Joe Bloggs + email: joe@bloggs.com + attachments: [] + external_id: + redacted: false + total_count: 1 + Admin note reply: + value: + type: conversation + id: '59' + created_at: 1736201661 + updated_at: 1736201662 + waiting_since: + snoozed_until: + source: + type: conversation + id: '403918095' + delivered_as: admin_initiated + subject: '' + body: "this is the message body
" + author: + type: admin + id: '991266449' + name: Ciaran211 Lee + email: admin211@email.com + attachments: [] + url: + redacted: false + contacts: + type: contact.list + contacts: + - type: contact + id: 677c55bc6abd011ad17ff529 + external_id: '70' + first_contact_reply: + admin_assignee_id: + team_assignee_id: + open: false + state: closed + read: false + tags: + type: tag.list + tags: [] + priority: not_priority + sla_applied: + statistics: + conversation_rating: + teammates: + title: + topics: {} + ticket: + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + ai_agent: + ai_agent_participated: false + conversation_parts: + type: conversation_part.list + conversation_parts: + - type: conversation_part + id: '10' + part_type: note + body: |- +this is the message body
" + author: + type: admin + id: '991266453' + name: Ciaran213 Lee + email: admin213@email.com + attachments: [] + url: + redacted: false + contacts: + type: contact.list + contacts: + - type: contact + id: 677c55c16abd011ad17ff52b + external_id: '70' + first_contact_reply: + created_at: 1736201667 + type: conversation + url: + admin_assignee_id: + team_assignee_id: + open: true + state: open + read: false + tags: + type: tag.list + tags: [] + priority: not_priority + sla_applied: + statistics: + conversation_rating: + teammates: + title: + topics: {} + ticket: + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + ai_agent: + ai_agent_participated: false + conversation_parts: + type: conversation_part.list + conversation_parts: + - type: conversation_part + id: '11' + part_type: open + body: "Thanks again :)
" + created_at: 1736201667 + updated_at: 1736201667 + notified_at: 1736201667 + assigned_to: + author: + id: 677c55c16abd011ad17ff52b + type: user + name: Joe Bloggs + email: joe@bloggs.com + attachments: [] + external_id: + redacted: false + total_count: 1 + schema: + "$ref": "#/components/schemas/conversation" + '404': + description: Not found + content: + application/json: + examples: + Not found: + value: + type: error.list + request_id: 22c05974-bc65-472d-b9e3-53435136e51e + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 3b664318-3827-49f1-9baf-a283599deab2 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + '403': + description: API plan restricted + content: + application/json: + examples: + API plan restricted: + value: + type: error.list + request_id: 92c282e3-41f3-4694-a979-a0afed978dc8 + errors: + - code: api_plan_restricted + message: Active subscription needed. + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/reply_conversation_request" + examples: + user_reply: + summary: User reply + value: + message_type: comment + type: user + intercom_user_id: 677c55b86abd011ad17ff528 + body: Thanks again :) + admin_note_reply: + summary: Admin note reply + value: + message_type: note + type: admin + admin_id: 991266449 + body: "this is the message body
" + author: + type: admin + id: '991266461' + name: Ciaran217 Lee + email: admin217@email.com + attachments: [] + url: + redacted: false + contacts: + type: contact.list + contacts: + - type: contact + id: 677c55cb6abd011ad17ff52f + external_id: '70' + first_contact_reply: + admin_assignee_id: + team_assignee_id: + open: false + state: closed + read: false + tags: + type: tag.list + tags: [] + priority: not_priority + sla_applied: + statistics: + conversation_rating: + teammates: + title: + topics: {} + ticket: + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + ai_agent: + ai_agent_participated: false + conversation_parts: + type: conversation_part.list + conversation_parts: + - type: conversation_part + id: '12' + part_type: close + body: "Goodbye :)
" + created_at: 1736201677 + updated_at: 1736201677 + notified_at: 1736201677 + assigned_to: + author: + id: '991266461' + type: admin + name: Ciaran217 Lee + email: admin217@email.com + attachments: [] + external_id: + redacted: false + total_count: 1 + Snooze a conversation: + value: + type: conversation + id: '66' + created_at: 1736201679 + updated_at: 1736201680 + waiting_since: + snoozed_until: 1736205280 + source: + type: conversation + id: '403918102' + delivered_as: admin_initiated + subject: '' + body: "this is the message body
" + author: + type: admin + id: '991266463' + name: Ciaran218 Lee + email: admin218@email.com + attachments: [] + url: + redacted: false + contacts: + type: contact.list + contacts: + - type: contact + id: 677c55ce6abd011ad17ff530 + external_id: '70' + first_contact_reply: + admin_assignee_id: + team_assignee_id: + open: true + state: snoozed + read: false + tags: + type: tag.list + tags: [] + priority: not_priority + sla_applied: + statistics: + conversation_rating: + teammates: + title: + topics: {} + ticket: + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + ai_agent: + ai_agent_participated: false + conversation_parts: + type: conversation_part.list + conversation_parts: + - type: conversation_part + id: '13' + part_type: snoozed + body: + created_at: 1736201680 + updated_at: 1736201680 + notified_at: 1736201680 + assigned_to: + author: + id: '991266463' + type: admin + name: Ciaran218 Lee + email: admin218@email.com + attachments: [] + external_id: + redacted: false + total_count: 1 + Open a conversation: + value: + type: conversation + id: '71' + created_at: 1736201680 + updated_at: 1736201691 + waiting_since: + snoozed_until: + source: + type: conversation + id: '403918103' + delivered_as: admin_initiated + subject: '' + body: "this is the message body
" + author: + type: admin + id: '991266465' + name: Ciaran219 Lee + email: admin219@email.com + attachments: [] + url: + redacted: false + contacts: + type: contact.list + contacts: + - type: contact + id: 677c55d56abd011ad17ff535 + external_id: '74' + first_contact_reply: + admin_assignee_id: + team_assignee_id: + open: true + state: open + read: true + tags: + type: tag.list + tags: [] + priority: not_priority + sla_applied: + statistics: + conversation_rating: + teammates: + title: '' + topics: {} + ticket: + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + ai_agent: + ai_agent_participated: false + conversation_parts: + type: conversation_part.list + conversation_parts: + - type: conversation_part + id: '15' + part_type: open + body: + created_at: 1736201691 + updated_at: 1736201691 + notified_at: 1736201691 + assigned_to: + author: + id: '991266465' + type: admin + name: Ciaran219 Lee + email: admin219@email.com + attachments: [] + external_id: + redacted: false + total_count: 1 + Assign a conversation: + value: + type: conversation + id: '76' + created_at: 1736201693 + updated_at: 1736201694 + waiting_since: + snoozed_until: + source: + type: conversation + id: '403918106' + delivered_as: admin_initiated + subject: '' + body: "this is the message body
" + author: + type: admin + id: '991266468' + name: Ciaran221 Lee + email: admin221@email.com + attachments: [] + url: + redacted: false + contacts: + type: contact.list + contacts: + - type: contact + id: 677c55dc6abd011ad17ff539 + external_id: '70' + first_contact_reply: + admin_assignee_id: 991266468 + team_assignee_id: + open: true + state: open + read: false + tags: + type: tag.list + tags: [] + priority: not_priority + sla_applied: + statistics: + conversation_rating: + teammates: + title: + topics: {} + ticket: + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + ai_agent: + ai_agent_participated: false + conversation_parts: + type: conversation_part.list + conversation_parts: + - type: conversation_part + id: '16' + part_type: assign_and_reopen + body: + created_at: 1736201694 + updated_at: 1736201694 + notified_at: 1736201694 + assigned_to: + type: admin + id: '991266468' + author: + id: '991266468' + type: admin + name: Ciaran221 Lee + email: admin221@email.com + attachments: [] + external_id: + redacted: false + total_count: 1 + schema: + "$ref": "#/components/schemas/conversation" + '404': + description: Not found + content: + application/json: + examples: + Not found: + value: + type: error.list + request_id: 3d166a11-245d-489e-a8f2-17f08e22b387 + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 3ab05479-d860-46d7-8486-897a09d9622e + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + '403': + description: API plan restricted + content: + application/json: + examples: + API plan restricted: + value: + type: error.list + request_id: af04d186-49dd-4590-a7e3-03b1b34352d8 + errors: + - code: api_plan_restricted + message: Active subscription needed. + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + oneOf: + - "$ref": "#/components/schemas/close_conversation_request" + - "$ref": "#/components/schemas/snooze_conversation_request" + - "$ref": "#/components/schemas/open_conversation_request" + - "$ref": "#/components/schemas/assign_conversation_request" + examples: + close_a_conversation: + summary: Close a conversation + value: + message_type: close + type: admin + admin_id: 991266461 + body: Goodbye :) + snooze_a_conversation: + summary: Snooze a conversation + value: + message_type: snoozed + admin_id: 991266463 + snoozed_until: 1736205280 + open_a_conversation: + summary: Open a conversation + value: + message_type: open + admin_id: 991266465 + assign_a_conversation: + summary: Assign a conversation + value: + message_type: assignment + type: admin + admin_id: 991266468 + assignee_id: 991266468 + not_found: + summary: Not found + value: + message_type: close + type: admin + admin_id: 991266470 + body: Goodbye :) + "/conversations/{id}/customers": + post: + summary: Attach a contact to a conversation + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The identifier for the conversation as given by Intercom. + example: '123' + schema: + type: string + tags: + - Conversations + operationId: attachContactToConversation + description: |+ + You can add participants who are contacts to a conversation, on behalf of either another contact or an admin. + + {% admonition type="warning" name="Contacts without an email" %} + If you add a contact via the email parameter and there is no user/lead found on that workspace with he given email, then we will create a new contact with `role` set to `lead`. + {% /admonition %} + + responses: + '200': + description: Attach a contact to a conversation + content: + application/json: + examples: + Attach a contact to a conversation: + value: + customers: + - type: user + id: 677c55ef6abd011ad17ff541 + schema: + "$ref": "#/components/schemas/conversation" + '404': + description: Not found + content: + application/json: + examples: + Not found: + value: + type: error.list + request_id: a4393b94-aff4-4060-9a68-7406747ca1c2 + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 48ac0299-e173-4bb0-9040-307ab8cb966f + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + '403': + description: API plan restricted + content: + application/json: + examples: + API plan restricted: + value: + type: error.list + request_id: 1f3bc9d0-8a06-4c51-aaa4-e442d61904bf + errors: + - code: api_plan_restricted + message: Active subscription needed. + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/attach_contact_to_conversation_request" + examples: + attach_a_contact_to_a_conversation: + summary: Attach a contact to a conversation + value: + admin_id: 991266484 + customer: + intercom_user_id: 677c55ef6abd011ad17ff541 + not_found: + summary: Not found + value: + admin_id: 991266486 + customer: + intercom_user_id: 677c55f16abd011ad17ff542 + "/conversations/{conversation_id}/customers/{contact_id}": + delete: + summary: Detach a contact from a group conversation + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: conversation_id + in: path + required: true + description: The identifier for the conversation as given by Intercom. + example: '123' + schema: + type: string + - name: contact_id + in: path + required: true + description: The identifier for the contact as given by Intercom. + example: '123' + schema: + type: string + tags: + - Conversations + operationId: detachContactFromConversation + description: |+ + You can add participants who are contacts to a conversation, on behalf of either another contact or an admin. + + {% admonition type="warning" name="Contacts without an email" %} + If you add a contact via the email parameter and there is no user/lead found on that workspace with he given email, then we will create a new contact with `role` set to `lead`. + {% /admonition %} + + responses: + '200': + description: Detach a contact from a group conversation + content: + application/json: + examples: + Detach a contact from a group conversation: + value: + customers: + - type: user + id: 677c56016abd011ad17ff54d + schema: + "$ref": "#/components/schemas/conversation" + '404': + description: Contact not found + content: + application/json: + examples: + Conversation not found: + value: + type: error.list + request_id: 7120d665-3fee-4cdd-8d59-000fb1f28340 + errors: + - code: not_found + message: Resource Not Found + Contact not found: + value: + type: error.list + request_id: 9f006c86-14e2-4de4-b9c9-5e90bfdfb58b + errors: + - code: not_found + message: User Not Found + schema: + "$ref": "#/components/schemas/error" + '422': + description: Last customer + content: + application/json: + examples: + Last customer: + value: + type: error.list + request_id: 133b4293-6579-4632-a799-b0fc7512e75f + errors: + - code: parameter_invalid + message: Removing the last customer is not allowed + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 52a82e93-fc21-4f77-a1d4-a8d934a1e8b6 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + '403': + description: API plan restricted + content: + application/json: + examples: + API plan restricted: + value: + type: error.list + request_id: cafa0c0a-ed3e-4a43-b145-6d3abbb33c43 + errors: + - code: api_plan_restricted + message: Active subscription needed. + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/detach_contact_from_conversation_request" + examples: + detach_a_contact_from_a_group_conversation: + summary: Detach a contact from a group conversation + value: + admin_id: 991266492 + customer: + intercom_user_id: 677c55f76abd011ad17ff545 + conversation_not_found: + summary: Conversation not found + value: + admin_id: 991266495 + customer: + intercom_user_id: 677c56026abd011ad17ff54e + contact_not_found: + summary: Contact not found + value: + admin_id: 991266498 + customer: + intercom_user_id: 677c560c6abd011ad17ff556 + last_customer: + summary: Last customer + value: + admin_id: 991266501 + customer: + intercom_user_id: 677c56176abd011ad17ff55e + "/conversations/redact": + post: + summary: Redact a conversation part + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Conversations + operationId: redactConversation + description: |+ + You can redact a conversation part or the source message of a conversation (as seen in the source object). + + {% admonition type="info" name="Redacting parts and messages" %} + 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. + {% /admonition %} + + responses: + '200': + description: Redact a conversation part + content: + application/json: + examples: + Redact a conversation part: + value: + type: conversation + id: '142' + created_at: 1736201782 + updated_at: 1736201785 + waiting_since: 1736201783 + snoozed_until: + source: + type: conversation + id: '403918136' + delivered_as: admin_initiated + subject: '' + body: "this is the message body
" + author: + type: admin + id: '991266510' + name: Ciaran245 Lee + email: admin245@email.com + attachments: [] + url: + redacted: false + contacts: + type: contact.list + contacts: + - type: contact + id: 677c56356abd011ad17ff576 + external_id: '70' + first_contact_reply: + created_at: 1736201783 + type: conversation + url: + admin_assignee_id: + team_assignee_id: + open: true + state: open + read: true + tags: + type: tag.list + tags: [] + priority: not_priority + sla_applied: + statistics: + conversation_rating: + teammates: + title: + topics: {} + ticket: + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + ai_agent: + ai_agent_participated: false + conversation_parts: + type: conversation_part.list + conversation_parts: + - type: conversation_part + id: '24' + part_type: open + body: "This message was deleted
" + created_at: 1736201783 + updated_at: 1736201784 + notified_at: 1736201783 + assigned_to: + author: + id: 677c56356abd011ad17ff576 + type: user + name: Joe Bloggs + email: joe@bloggs.com + attachments: [] + external_id: + redacted: true + total_count: 1 + schema: + "$ref": "#/components/schemas/conversation" + '404': + description: Not found + content: + application/json: + examples: + Not found: + value: + type: error.list + request_id: 1497bb6a-9a88-461d-8e5f-6ad77b8eb30a + errors: + - code: conversation_part_or_message_not_found + message: Conversation part or message not found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: e57a25dc-32f9-4a35-b22a-c2014f86982b + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/redact_conversation_request" + examples: + redact_a_conversation_part: + summary: Redact a conversation part + value: + type: conversation_part + conversation_id: 142 + conversation_part_id: 24 + not_found: + summary: Not found + value: + type: conversation_part + conversation_id: really_123_doesnt_exist + conversation_part_id: really_123_doesnt_exist + "/conversations/{id}/convert": + post: + summary: Convert a conversation to a ticket + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The id of the conversation to target + example: 123 + schema: + type: integer + tags: + - Conversations + description: You can convert a conversation to a ticket. + operationId: convertConversationToTicket + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: ticket + id: '145' + ticket_id: '1' + ticket_attributes: {} + ticket_state: + type: ticket_state + id: '1745' + category: submitted + internal_label: Submitted + external_label: Submitted + ticket_type: + type: ticket_type + id: '1' + name: my-ticket-type-1 + description: my ticket type description is awesome. + icon: "\U0001F981" + workspace_id: this_is_an_id437_that_should_be_at_least_ + archived: false + created_at: 1736201795 + updated_at: 1736201795 + is_internal: false + ticket_type_attributes: + type: list + data: [] + category: Customer + contacts: + type: contact.list + contacts: + - type: contact + id: 677c563f6abd011ad17ff579 + external_id: '70' + admin_assignee_id: '0' + team_assignee_id: '0' + created_at: 1736201792 + updated_at: 1736201795 + ticket_parts: + type: ticket_part.list + ticket_parts: + - type: ticket_part + id: '26' + part_type: comment + body: "Comment for message
" + created_at: 1736201792 + updated_at: 1736201792 + author: + id: 677c563f6abd011ad17ff579 + type: user + name: Joe Bloggs + email: joe@bloggs.com + attachments: [] + redacted: false + - type: ticket_part + id: '27' + part_type: ticket_state_updated_by_admin + ticket_state: submitted + previous_ticket_state: submitted + created_at: 1736201795 + updated_at: 1736201795 + author: + id: '991266520' + type: bot + name: Fin + email: operator+this_is_an_id437_that_should_be_at_least_@intercom.io + attachments: [] + redacted: false + total_count: 2 + open: true + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + category: Customer + is_shared: true + schema: + "$ref": "#/components/schemas/ticket" + '400': + description: Bad request + content: + application/json: + examples: + Bad request: + value: + type: error.list + request_id: 3540b986-61b8-41cc-9fd0-479b23868aed + errors: + - code: parameter_invalid + message: Ticket type is not a customer ticket type + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/convert_conversation_to_ticket_request" + examples: + successful: + summary: successful + value: + ticket_type_id: '1' + bad_request: + summary: Bad request + value: + ticket_type_id: '2' + "/data_attributes": + get: + summary: List all data attributes + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: model + in: query + required: false + description: Specify the data attribute model to return. + schema: + type: string + enum: + - contact + - company + - conversation + example: company + - name: include_archived + in: query + required: false + description: Include archived attributes in the list. By default we return + only non archived data attributes. + example: false + schema: + type: boolean + tags: + - Data Attributes + operationId: lisDataAttributes + description: You can fetch a list of all data attributes belonging to a workspace + for contacts, companies or conversations. + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful response: + value: + type: list + data: + - type: data_attribute + name: name + full_name: name + label: Company name + description: The name of a company + data_type: string + api_writable: true + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: company_id + full_name: company_id + label: Company ID + description: A number identifying a company + data_type: string + api_writable: false + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: last_request_at + full_name: last_request_at + label: Company last seen + description: The last day anyone from a company visited your + site or app + data_type: date + api_writable: false + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: remote_created_at + full_name: remote_created_at + label: Company created at + description: The day a company was added to Intercom + data_type: date + api_writable: true + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: user_count + full_name: user_count + label: People + description: The number of people in a company + data_type: integer + api_writable: false + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: session_count + full_name: session_count + label: Company web sessions + description: All visits from anyone in a company to your product's + site or app + data_type: integer + api_writable: false + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: name + full_name: plan.name + label: Plan + description: A specific plan or level within your product that + companies have signed up to + data_type: string + api_writable: false + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: monthly_spend + full_name: monthly_spend + label: Monthly Spend + description: The monthly revenue you receive from a company + data_type: float + api_writable: true + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: size + full_name: size + label: Company size + description: The number of people employed in this company, + expressed as a single number + data_type: integer + api_writable: true + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: industry + full_name: industry + label: Company industry + description: The category or domain this company belongs to + e.g. 'ecommerce' or 'SaaS' + data_type: string + api_writable: true + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: website + full_name: website + label: Company website + description: The web address for the company's primary marketing + site + data_type: string + api_writable: true + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - id: 2 + type: data_attribute + name: The One Ring + full_name: custom_attributes.The One Ring + label: The One Ring + description: One ring to rule them all, one ring to find them, + One ring to bring them all and in the darkness bind them. + data_type: string + api_writable: true + ui_writable: false + messenger_writable: true + custom: true + archived: false + admin_id: '991266537' + created_at: 1736201806 + updated_at: 1736201806 + model: company + - type: data_attribute + name: id + full_name: id + label: ID + description: The Intercom defined id representing the company + data_type: string + api_writable: false + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: created_at + full_name: created_at + label: Created at + description: The time the company was added to Intercom + data_type: date + api_writable: false + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: updated_at + full_name: updated_at + label: Updated at + description: The last time the company was updated + data_type: date + api_writable: false + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: id + full_name: plan.id + label: Plan ID + description: The Intercom defined id representing the plan + data_type: string + api_writable: false + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + - type: data_attribute + name: app_id + full_name: app_id + label: App ID + description: The Intercom defined id representing the app + data_type: string + api_writable: false + ui_writable: false + messenger_writable: true + custom: false + archived: false + model: company + schema: + "$ref": "#/components/schemas/data_attribute_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 1339f302-1711-4609-afe6-34d1f8b80d18 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + post: + summary: Create a data attribute + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Data Attributes + operationId: createDataAttribute + description: You can create a data attributes for a `contact` or a `company`. + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + id: 5 + type: data_attribute + name: Mithril Shirt + full_name: custom_attributes.Mithril Shirt + label: Mithril Shirt + data_type: string + api_writable: true + ui_writable: false + messenger_writable: false + custom: true + archived: false + admin_id: '991266539' + created_at: 1736201808 + updated_at: 1736201808 + model: company + schema: + "$ref": "#/components/schemas/data_attribute" + '400': + description: Too few options for list + content: + application/json: + examples: + Same name already exists: + value: + type: error.list + request_id: 687acfbe-1c73-4b0f-8d68-f218909c2ab6 + errors: + - code: parameter_invalid + message: You already have 'The One Ring' in your company data. + To save this as new people data, use a different name. + Invalid name: + value: + type: error.list + request_id: 0fceea37-98cc-47a0-b15e-feb2938e9fb2 + errors: + - code: parameter_invalid + message: Your name for this attribute must only contain alphanumeric + characters, currency symbols, and hyphens + Attribute already exists: + value: + type: error.list + request_id: bdbe3e42-43cc-4b31-ab24-a466efe9f1dc + errors: + - code: parameter_invalid + message: You already have 'The One Ring' in your company data. + To save this as new company data, use a different name. + Invalid Data Type: + value: + type: error.list + request_id: 4825a6f6-0ba7-4249-a126-fd5c17ccd150 + errors: + - code: parameter_invalid + message: Data Type isn't an option + Too few options for list: + value: + type: error.list + request_id: dc3bb674-284a-43db-875a-9d5935f8378d + errors: + - code: parameter_invalid + message: The Data Attribute model field must be either contact + or company + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 2f5d5d4a-8ca4-441f-adad-944681940c78 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_data_attribute_request" + examples: + successful: + summary: Successful + value: + name: Mithril Shirt + model: company + data_type: string + same_name_already_exists: + summary: Same name already exists + value: + name: The One Ring + model: contact + data_type: integer + invalid_name: + summary: Invalid name + value: + name: "!nv@l!d n@me" + model: company + data_type: string + attribute_already_exists: + summary: Attribute already exists + value: + name: The One Ring + model: company + data_type: string + invalid_data_type: + summary: Invalid Data Type + value: + name: The Second Ring + model: company + data_type: mithril + too_few_options_for_list: + summary: Too few options for list + value: + description: Just a plain old ring + options: + - value: 1-10 + archived: false + "/data_attributes/{id}": + put: + summary: Update a data attribute + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The data attribute id + example: 1 + schema: + type: integer + tags: + - Data Attributes + operationId: updateDataAttribute + description: "\nYou can update a data attribute.\n\n> \U0001F6A7 Updating the + data type is not possible\n>\n> It is currently a dangerous action to execute + changing a data attribute's type via the API. You will need to update the + type via the UI instead.\n" + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + id: 12 + type: data_attribute + name: The One Ring + full_name: custom_attributes.The One Ring + label: The One Ring + description: Just a plain old ring + data_type: string + options: + - 1-10 + - 11-20 + api_writable: true + ui_writable: false + messenger_writable: true + custom: true + archived: false + admin_id: '991266546' + created_at: 1736201813 + updated_at: 1736201813 + model: company + schema: + "$ref": "#/components/schemas/data_attribute" + '400': + description: Too few options in list + content: + application/json: + examples: + Too few options in list: + value: + type: error.list + request_id: 91a693a1-586f-40f7-92dc-005544836389 + errors: + - code: parameter_invalid + message: Options isn't an array + schema: + "$ref": "#/components/schemas/error" + '404': + description: Attribute Not Found + content: + application/json: + examples: + Attribute Not Found: + value: + type: error.list + request_id: 252401cb-0b72-4887-827f-24014f040bc2 + errors: + - code: field_not_found + message: We couldn't find that data attribute to update + schema: + "$ref": "#/components/schemas/error" + '422': + description: Has Dependant Object + content: + application/json: + examples: + Has Dependant Object: + value: + type: error.list + request_id: c050f493-1cc3-4af8-9b3d-8a6be4dade62 + errors: + - code: data_invalid + message: The Data Attribute you are trying to archive has a + dependant object + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: ec5d090e-cb85-4d98-90eb-86a9af57215d + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/update_data_attribute_request" + examples: + successful: + summary: Successful + value: + description: Just a plain old ring + options: + - value: 1-10 + - value: 11-20 + archived: false + too_few_options_in_list: + summary: Too few options in list + value: + description: Too few options + options: + value: 1-10 + archived: false + attribute_not_found: + summary: Attribute Not Found + value: + description: Just a plain old ring + options: + - value: 1-10 + - value: 11-20 + archived: false + has_dependant_object: + summary: Has Dependant Object + value: + description: Trying to archieve + archived: true + "/events": + post: + summary: Submit a data event + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Data Events + operationId: createDataEvent + description: |2+ + + You will need an Access Token that has write permissions to send Events. Once you have a key you can submit events via POST to the Events resource, which is located at https://api.intercom.io/events, or you can send events using one of the client libraries. When working with the HTTP API directly a client should send the event with a `Content-Type` of `application/json`. + + When using the JavaScript API, [adding the code to your app](http://docs.intercom.io/configuring-Intercom/tracking-user-events-in-your-app) makes the Events API available. Once added, you can submit an event using the `trackEvent` method. This will associate the event with the Lead or currently logged-in user or logged-out visitor/lead and send it to Intercom. The final parameter is a map that can be used to send optional metadata about the event. + + With the Ruby client you pass a hash describing the event to `Intercom::Event.create`, or call the `track_user` method directly on the current user object (e.g. `user.track_event`). + + **NB: For the JSON object types, please note that we do not currently support nested JSON structure.** + + | Type | Description | Example | + | :-------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------- | + | String | The value is a JSON String | `"source":"desktop"` | + | Number | The value is a JSON Number | `"load": 3.67` | + | Date | The key ends with the String `_date` and the value is a [Unix timestamp](http://en.wikipedia.org/wiki/Unix_time), assumed to be in the [UTC](http://en.wikipedia.org/wiki/Coordinated_Universal_Time) timezone. | `"contact_date": 1392036272` | + | Link | The value is a HTTP or HTTPS URI. | `"article": "https://example.org/ab1de.html"` | + | Rich Link | The value is a JSON object that contains `url` and `value` keys. | `"article": {"url": "https://example.org/ab1de.html", "value":"the dude abides"}` | + | Monetary Amount | The value is a JSON object that contains `amount` and `currency` keys. The `amount` key is a positive integer representing the amount in cents. The price in the example to the right denotes €349.99. | `"price": {"amount": 34999, "currency": "eur"}` | + + **Lead Events** + + When submitting events for Leads, you will need to specify the Lead's `id`. + + **Metadata behaviour** + + - We currently limit the number of tracked metadata keys to 10 per event. Once the quota is reached, we ignore any further keys we receive. The first 10 metadata keys are determined by the order in which they are sent in with the event. + - It is not possible to change the metadata keys once the event has been sent. A new event will need to be created with the new keys and you can archive the old one. + - There might be up to 24 hrs delay when you send a new metadata for an existing event. + + **Event de-duplication** + + The API may detect and ignore duplicate events. Each event is uniquely identified as a combination of the following data - the Workspace identifier, the Contact external identifier, the Data Event name and the Data Event created time. As a result, it is **strongly recommended** to send a second granularity Unix timestamp in the `created_at` field. + + Duplicated events are responded to using the normal `202 Accepted` code - an error is not thrown, however repeat requests will be counted against any rate limit that is in place. + + ### HTTP API Responses + + - Successful responses to submitted events return `202 Accepted` with an empty body. + - Unauthorised access will be rejected with a `401 Unauthorized` or `403 Forbidden` response code. + - Events sent about users that cannot be found will return a `404 Not Found`. + - Event lists containing duplicate events will have those duplicates ignored. + - Server errors will return a `500` response code and may contain an error message in the body. + + responses: + '202': + description: successful + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 2d7e1b07-42f0-4242-bf22-ec98d6a88fec + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_data_event_request" + get: + summary: List all data events + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - in: query + name: filter + required: true + style: form + explode: true + schema: + type: object + oneOf: + - title: user_id query parameter + properties: + user_id: + type: string + required: + - user_id + additionalProperties: false + - title: intercom_user_id query parameter + properties: + intercom_user_id: + type: string + required: + - intercom_user_id + additionalProperties: false + - title: email query parameter + properties: + email: + type: string + required: + - email + additionalProperties: false + - name: type + in: query + required: true + description: The value must be user + schema: + type: string + - name: summary + in: query + required: false + description: summary flag + schema: + type: boolean + tags: + - Data Events + operationId: lisDataEvents + description: "\n> \U0001F6A7\n>\n> Please note that you can only 'list' events + that are less than 90 days old. Event counts and summaries will still include + your events older than 90 days but you cannot 'list' these events individually + if they are older than 90 days\n\nThe events belonging to a customer can be + listed by sending a GET request to `https://api.intercom.io/events` with a + user or lead identifier along with a `type` parameter. The identifier parameter + can be one of `user_id`, `email` or `intercom_user_id`. The `type` parameter + value must be `user`.\n\n- `https://api.intercom.io/events?type=user&user_id={user_id}`\n- + `https://api.intercom.io/events?type=user&email={email}`\n- `https://api.intercom.io/events?type=user&intercom_user_id={id}` + (this call can be used to list leads)\n\nThe `email` parameter value should + be [url encoded](http://en.wikipedia.org/wiki/Percent-encoding) when sending.\n\nYou + can optionally define the result page size as well with the `per_page` parameter.\n" + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful response: + value: + type: event.summary + events: [] + pages: + next: http://api.intercom.test/events?next page + email: user26@email.com + intercom_user_id: 677c565d6abd011ad17ff57f + user_id: 3ecf64d0-9ed1-4e9f-88e1-da7d6e6782f3 + schema: + "$ref": "#/components/schemas/data_event_summary" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: f6c7bf28-e18a-4833-b989-8df4757ea71d + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/events/summaries": + post: + summary: Create event summaries + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Data Events + operationId: dataEventSummaries + description: "Create event summaries for a user. Event summaries are used to + track the number of times an event has occurred, the first time it occurred + and the last time it occurred.\n\n" + responses: + '200': + description: successful + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: a09af8f7-e1d7-4162-8721-393127fea72b + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_data_event_summaries_request" + "/export/content/data": + post: + summary: Create content data export + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Data Export + operationId: createDataExport + description: "To create your export job, you need to send a `POST` request to + the export endpoint `https://api.intercom.io/export/content/data`.\n\nThe + only parameters you need to provide are the range of dates that you want exported.\n\n>\U0001F6A7 + Limit of one active job\n>\n> You can only have one active job per workspace. + You will receive a HTTP status code of 429 with the message Exceeded rate + limit of 1 pending message data export jobs if you attempt to create a second + concurrent job.\n\n>❗️ Updated_at not included\n>\n> It should be noted that + the timeframe only includes messages sent during the time period and not messages + that were only updated during this period. For example, if a message was updated + yesterday but sent two days ago, you would need to set the created_at_after + date before the message was sent to include that in your retrieval job.\n\n>\U0001F4D8 + Date ranges are inclusive\n>\n> Requesting data for 2018-06-01 until 2018-06-30 + will get all data for those days including those specified - e.g. 2018-06-01 + 00:00:00 until 2018-06-30 23:59:99.\n" + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + job_identifier: d56irvdavk76r2nt + status: pending + download_url: '' + download_expires_at: '' + schema: + "$ref": "#/components/schemas/data_export" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_data_exports_request" + examples: + successful: + summary: successful + value: + created_at_after: 1736183825 + created_at_before: 1736201825 + "/export/content/data/{job_identifier}": + get: + summary: Show content data export + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: job_identifier + in: path + description: job_identifier + required: true + schema: + type: string + tags: + - Data Export + operationId: getDataExport + description: "You can view the status of your job by sending a `GET` request + to the URL\n`https://api.intercom.io/export/content/data/{job_identifier}` + - the `{job_identifier}` is the value returned in the response when you first + created the export job. More on it can be seen in the Export Job Model.\n\n> + \U0001F6A7 Jobs expire after two days\n> All jobs that have completed processing + (and are thus available to download from the provided URL) will have an expiry + limit of two days from when the export ob completed. After this, the data + will no longer be available.\n" + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + job_identifier: 2zxroytzdcplorav + status: pending + download_url: '' + download_expires_at: '' + schema: + "$ref": "#/components/schemas/data_export" + "/export/cancel/{job_identifier}": + post: + summary: Cancel content data export + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: job_identifier + in: path + description: job_identifier + required: true + schema: + type: string + tags: + - Data Export + operationId: cancelDataExport + description: You can cancel your job + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + job_identifier: bdvubp6ge6yxzh7p + status: canceled + download_url: '' + download_expires_at: '' + schema: + "$ref": "#/components/schemas/data_export" + "/download/content/data/{job_identifier}": + get: + summary: Download content data export + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: job_identifier + in: path + description: job_identifier + required: true + schema: + type: string + tags: + - Data Export + operationId: downloadDataExport + description: "When a job has a status of complete, and thus a filled download_url, + you can download your data by hitting that provided URL, formatted like so: + https://api.intercom.io/download/content/data/xyz1234.\n\nYour exported message + data will be streamed continuously back down to you in a gzipped CSV format.\n\n> + \U0001F4D8 Octet header required\n>\n> You will have to specify the header + Accept: `application/octet-stream` when hitting this endpoint.\n" + responses: + '200': + description: successful + "/messages": + post: + summary: Create a message + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Messages + operationId: createMessage + description: "You can create a message that has been initiated by an admin. + The conversation can be either an in-app message or an email.\n\n> \U0001F6A7 + Sending for visitors\n>\n> There can be a short delay between when a contact + is created and when a contact becomes available to be messaged through the + API. A 404 Not Found error will be returned in this case.\n\nThis will return + the Message model that has been created.\n\n> \U0001F6A7 Retrieving Associated + Conversations\n>\n> As this is a message, there will be no conversation present + until the contact responds. Once they do, you will have to search for a contact's + conversations with the id of the message.\n" + responses: + '200': + description: admin message created + content: + application/json: + examples: + user message created: + value: + type: user_message + id: '403918141' + created_at: 1736201828 + body: heyy + message_type: inapp + conversation_id: '147' + lead message created: + value: + type: user_message + id: '403918142' + created_at: 1736201830 + body: heyy + message_type: inapp + conversation_id: '148' + admin message created: + value: + type: admin_message + id: '5' + created_at: 1736201832 + subject: heyy + body: heyy + message_type: inapp + owner: + type: admin + id: '991266569' + name: Ciaran297 Lee + email: admin297@email.com + away_mode_enabled: false + away_mode_reassign: false + schema: + "$ref": "#/components/schemas/message" + '400': + description: No body supplied for email message + content: + application/json: + examples: + No body supplied for message: + value: + type: error.list + request_id: 8ec40e30-ca6d-4047-ae2b-6f6ee8f639af + errors: + - code: parameter_invalid + message: Body is required + No body supplied for email message: + value: + type: error.list + request_id: ac0ee304-4f40-4618-8d02-ecd3d0739d5d + errors: + - code: parameter_invalid + message: Body is required + schema: + "$ref": "#/components/schemas/error" + '422': + description: No subject supplied for email message + content: + application/json: + examples: + No subject supplied for email message: + value: + type: error.list + request_id: 69655c1d-40e2-4483-ae98-98a587e7c1ed + errors: + - code: parameter_not_found + message: No subject supplied for email message + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 3dd7e761-88b8-4826-9a75-f88fcde370dc + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + '403': + description: API plan restricted + content: + application/json: + examples: + API plan restricted: + value: + type: error.list + request_id: a7caf632-2f93-4142-9a89-3fb740b23ca3 + errors: + - code: api_plan_restricted + message: Active subscription needed. + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_message_request" + examples: + user_message_created: + summary: user message created + value: + from: + type: user + id: 677c56646abd011ad17ff584 + body: heyy + referer: https://twitter.com/bob + lead_message_created: + summary: lead message created + value: + from: + type: lead + id: 677c56666abd011ad17ff585 + body: heyy + referer: https://twitter.com/bob + admin_message_created: + summary: admin message created + value: + from: + type: admin + id: '991266569' + to: + type: user + id: 677c56686abd011ad17ff586 + message_type: conversation + body: heyy + no_body_supplied_for_message: + summary: No body supplied for message + value: + from: + type: admin + id: '991266571' + to: + type: user + id: 677c56696abd011ad17ff587 + message_type: inapp + body: + subject: heyy + no_subject_supplied_for_email_message: + summary: No subject supplied for email message + value: + from: + type: admin + id: '991266572' + to: + type: user + user_id: '70' + message_type: email + body: hey there + no_body_supplied_for_email_message: + summary: No body supplied for email message + value: + from: + type: admin + id: '991266573' + to: + type: user + id: 677c566b6abd011ad17ff589 + message_type: email + body: + subject: heyy + "/news/news_items": + get: + summary: List all news items + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - News + operationId: listNewsItems + description: You can fetch a list of all news items + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: list + pages: + page: 1 + per_page: 10 + total_pages: 1 + type: pages + data: + - id: '2' + type: news-item + workspace_id: this_is_an_id525_that_should_be_at_least_ + title: We have news + body: "Hello there,
" + sender_id: 991266580 + state: draft + labels: [] + cover_image_url: + reactions: + - + - + - + - + deliver_silently: false + created_at: 1736201838 + updated_at: 1736201838 + newsfeed_assignments: [] + - id: '1' + type: news-item + workspace_id: this_is_an_id525_that_should_be_at_least_ + title: We have news + body: "Hello there,
" + sender_id: 991266578 + state: draft + labels: [] + cover_image_url: + reactions: + - + - + - + - + deliver_silently: false + created_at: 1736201837 + updated_at: 1736201837 + newsfeed_assignments: [] + total_count: 2 + schema: + "$ref": "#/components/schemas/paginated_response" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 9011cae4-3b04-496c-9195-71ed2fb7285c + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + post: + summary: Create a news item + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - News + operationId: createNewsItem + description: You can create a news item + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: '5' + type: news-item + workspace_id: this_is_an_id529_that_should_be_at_least_ + title: Halloween is here! + body: "New costumes in store for this spooky season
" + sender_id: 991266587 + state: live + labels: + - New + - Product + - Update + cover_image_url: + reactions: + - "\U0001F606" + - "\U0001F605" + deliver_silently: true + created_at: 1736201841 + updated_at: 1736201841 + newsfeed_assignments: + - newsfeed_id: 3 + published_at: 1664638214 + schema: + "$ref": "#/components/schemas/news_item" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: ffcb4049-1c3e-4aa1-aca8-6fcdb87683a3 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/news_item_request" + examples: + successful: + summary: successful + value: + title: Halloween is here! + body: "New costumes in store for this spooky season
" + labels: + - Product + - Update + - New + sender_id: 991266587 + deliver_silently: true + reactions: + - "\U0001F606" + - "\U0001F605" + state: live + newsfeed_assignments: + - newsfeed_id: 3 + published_at: 1664638214 + "/news/news_items/{id}": + get: + summary: Retrieve a news item + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the news item which is given by Intercom. + example: 123 + schema: + type: integer + tags: + - News + operationId: retrieveNewsItem + description: You can fetch the details of a single news item. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: '6' + type: news-item + workspace_id: this_is_an_id533_that_should_be_at_least_ + title: We have news + body: "Hello there,
" + sender_id: 991266590 + state: live + labels: [] + cover_image_url: + reactions: + - + - + - + - + deliver_silently: false + created_at: 1736201843 + updated_at: 1736201843 + newsfeed_assignments: + - newsfeed_id: 5 + published_at: 1736201843 + schema: + "$ref": "#/components/schemas/news_item" + '404': + description: News Item Not Found + content: + application/json: + examples: + News Item Not Found: + value: + type: error.list + request_id: 7b23203e-9e2c-44bf-b450-09d9bad2713d + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 3985e2b0-2c6b-4707-ac6d-47dfcb4a7906 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + put: + summary: Update a news item + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the news item which is given by Intercom. + example: 123 + schema: + type: integer + tags: + - News + operationId: updateNewsItem + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: '9' + type: news-item + workspace_id: this_is_an_id539_that_should_be_at_least_ + title: Christmas is here! + body: "New gifts in store for the jolly season
" + sender_id: 991266598 + state: live + labels: [] + cover_image_url: + reactions: + - "\U0001F61D" + - "\U0001F602" + deliver_silently: false + created_at: 1736201846 + updated_at: 1736201846 + newsfeed_assignments: [] + schema: + "$ref": "#/components/schemas/news_item" + '404': + description: News Item Not Found + content: + application/json: + examples: + News Item Not Found: + value: + type: error.list + request_id: 60a14188-040d-4c74-b6c8-5025b7f7683b + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: c829be3a-7d95-4a83-8194-d4e6b3fb91ae + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/news_item_request" + examples: + successful: + summary: successful + value: + title: Christmas is here! + body: "New gifts in store for the jolly season
" + sender_id: 991266598 + reactions: + - "\U0001F61D" + - "\U0001F602" + news_item_not_found: + summary: News Item Not Found + value: + title: Christmas is here! + body: "New gifts in store for the jolly season
" + sender_id: 991266601 + reactions: + - "\U0001F61D" + - "\U0001F602" + delete: + summary: Delete a news item + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the news item which is given by Intercom. + example: 123 + schema: + type: integer + tags: + - News + operationId: deleteNewsItem + description: You can delete a single news item. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: '12' + object: news-item + deleted: true + schema: + "$ref": "#/components/schemas/deleted_object" + '404': + description: News Item Not Found + content: + application/json: + examples: + News Item Not Found: + value: + type: error.list + request_id: e883c635-f51f-4ee8-a7ca-d1a07357ee34 + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 31e13abb-9d5e-4bd3-832e-5a0eeb0332e1 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/news/newsfeeds/{id}/items": + get: + summary: List all live newsfeed items + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the news feed item which is given by + Intercom. + example: '123' + schema: + type: string + tags: + - News + operationId: listLiveNewsfeedItems + description: You can fetch a list of all news items that are live on a given + newsfeed + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: list + pages: + page: 1 + per_page: 20 + total_pages: 0 + type: pages + data: [] + total_count: 0 + schema: + "$ref": "#/components/schemas/paginated_response" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 51a249a7-8786-4dba-9703-ef5543ca854a + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/news/newsfeeds": + get: + summary: List all newsfeeds + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - News + operationId: listNewsfeeds + description: You can fetch a list of all newsfeeds + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: list + pages: + page: 1 + per_page: 10 + total_pages: 1 + type: pages + data: + - id: '18' + type: newsfeed + name: Visitor Feed + created_at: 1736201854 + updated_at: 1736201854 + - id: '19' + type: newsfeed + name: Visitor Feed + created_at: 1736201854 + updated_at: 1736201854 + total_count: 2 + schema: + "$ref": "#/components/schemas/paginated_response" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: d82a09d3-d338-411d-bc70-393ace0b3314 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/news/newsfeeds/{id}": + get: + summary: Retrieve a newsfeed + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the news feed item which is given by + Intercom. + example: '123' + schema: + type: string + tags: + - News + operationId: retrieveNewsfeed + description: You can fetch the details of a single newsfeed + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: '22' + type: newsfeed + name: Visitor Feed + created_at: 1736201855 + updated_at: 1736201855 + schema: + "$ref": "#/components/schemas/newsfeed" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 6625482d-a9fe-48f8-85ed-fb9170082e5b + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/notes/{id}": + get: + summary: Retrieve a note + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier of a given note + example: 1 + schema: + type: integer + tags: + - Notes + operationId: retrieveNote + description: You can fetch the details of a single note. + responses: + '200': + description: Note found + content: + application/json: + examples: + Note found: + value: + type: note + id: '11' + created_at: 1735510657 + contact: + type: contact + id: 677c56816abd011ad17ff58c + author: + type: admin + id: '991266617' + name: Ciaran344 Lee + email: admin344@email.com + away_mode_enabled: false + away_mode_reassign: false + body: "This is a note.
" + schema: + "$ref": "#/components/schemas/note" + '404': + description: Note not found + content: + application/json: + examples: + Note not found: + value: + type: error.list + request_id: b40211d9-d4ee-4ccd-9340-ec12337cc364 + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 0a1b8ad8-dc1e-45f4-bc0e-04bc81f073f7 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/segments": + get: + summary: List all segments + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: include_count + in: query + required: false + description: It includes the count of contacts that belong to each segment. + example: true + schema: + type: boolean + tags: + - Segments + operationId: listSegments + description: You can fetch a list of all segments. + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful response: + value: + type: segment.list + segments: + - type: segment + id: 677c56836abd011ad17ff58f + name: John segment + created_at: 1736201859 + updated_at: 1736201859 + person_type: user + - type: segment + id: 677c56846abd011ad17ff590 + name: Jane segment + created_at: 1736201860 + updated_at: 1736201860 + person_type: user + schema: + "$ref": "#/components/schemas/segment_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: bd2a7fd5-762d-4cf3-aa8b-294c6b7844f4 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/segments/{id}": + get: + summary: Retrieve a segment + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identified of a given segment. + example: '123' + schema: + type: string + tags: + - Segments + operationId: retrieveSegment + description: You can fetch the details of a single segment. + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful response: + value: + type: segment + id: 677c56856abd011ad17ff593 + name: John segment + created_at: 1736201861 + updated_at: 1736201861 + person_type: user + schema: + "$ref": "#/components/schemas/segment" + '404': + description: Segment not found + content: + application/json: + examples: + Segment not found: + value: + type: error.list + request_id: 30de3627-e074-489f-bd08-118bf958c444 + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 077b4be3-c3be-467a-bae0-10eff001d5f4 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/subscription_types": + get: + summary: List subscription types + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Subscription Types + operationId: listSubscriptionTypes + description: You can list all subscription types. A list of subscription type + objects will be returned. + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: list + data: + - type: subscription + id: '45' + state: live + consent_type: opt_out + default_translation: + name: Newsletters + description: Lorem ipsum dolor sit amet + locale: en + translations: + - name: Newsletters + description: Lorem ipsum dolor sit amet + locale: en + content_types: + - email + schema: + "$ref": "#/components/schemas/subscription_type_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: ec8321b9-727b-4da6-8c47-fcf0b6449bec + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/phone_call_redirects": + post: + summary: Create a phone Switch + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Switch + operationId: createPhoneSwitch + description: | + You can use the API to deflect phone calls to the Intercom Messenger. + Calling this endpoint will send an SMS with a link to the Messenger to the phone number specified. + + If custom attributes are specified, they will be added to the user or lead's custom data attributes. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + url: http://via.intercom.io/msgr/2f1c0451-fa3c-43f4-b75d-4450e2a593fa + type: phone_call_redirect + schema: + "$ref": "#/components/schemas/phone_switch" + '400': + description: bad request - invalid number + content: + application/json: + examples: + bad request - exception sending sms: + value: + error_key: sms_failed + message: SMS was not sent due to an unknown error + bad request - invalid number: + value: + error_key: invalid_phone_number + message: Invalid phone number + '422': + description: unprocessable entity + content: + application/json: + examples: + unprocessable entity: + value: + error_key: some_error + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: b67f417d-7f0b-410f-af31-647fcf7f9348 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_phone_switch_request" + examples: + successful: + summary: successful + value: + phone: "+353832345678" + custom_attributes: + issue_type: Billing + priority: High + bad_request_-_exception_sending_sms: + summary: bad request - exception sending sms + value: + phone: "+353832345678" + custom_attributes: + issue_type: Billing + priority: High + bad_request_-_invalid_number: + summary: bad request - invalid number + value: + phone: "+353832345678" + custom_attributes: + issue_type: Billing + priority: High + unprocessable_entity: + summary: unprocessable entity + value: + phone: "+40241100100" + custom_attributes: + issue_type: Billing + priority: High + "/tags": + get: + summary: List all tags + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Tags + operationId: listTags + description: "You can fetch a list of all tags for a given workspace.\n\n" + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: list + data: + - type: tag + id: '23' + name: Manual tag 1 + schema: + "$ref": "#/components/schemas/tag_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 01a6b73d-035d-45ab-8774-05bfa9e0e95d + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + post: + summary: Create or update a tag, Tag or untag companies, Tag contacts + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Tags + operationId: createTag + description: | + You can use this endpoint to perform the following operations: + + **1. Create a new tag:** You can create a new tag by passing in the tag name as specified in "Create or Update Tag Request Payload" described below. + + **2. Update an existing tag:** You can update an existing tag by passing the id of the tag as specified in "Create or Update Tag Request Payload" described below. + + **3. Tag Companies:** You can tag single company or a list of companies. You can tag a company by passing in the tag name and the company details as specified in "Tag Company Request Payload" described below. Also, if the tag doesn't exist then a new one will be created automatically. + + **4. Untag Companies:** You can untag a single company or a list of companies. You can untag a company by passing in the tag id and the company details as specified in "Untag Company Request Payload" described below. + + **5. Tag Multiple Users:** You can tag a list of users. You can tag the users by passing in the tag name and the user details as specified in "Tag Users Request Payload" described below. + + Each operation will return a tag object. + responses: + '200': + description: Action successful + content: + application/json: + examples: + Action successful: + value: + type: tag + id: '26' + name: test + schema: + "$ref": "#/components/schemas/tag" + '400': + description: Invalid parameters + content: + application/json: + examples: + Invalid parameters: + value: + type: error.list + request_id: b993f194-fef9-4040-90c8-9221c727b6c6 + errors: + - code: parameter_invalid + message: invalid tag parameters + schema: + "$ref": "#/components/schemas/error" + '404': + description: User not found + content: + application/json: + examples: + Company not found: + value: + type: error.list + request_id: 9d5afd34-e4c6-46f5-8821-d5855ebe018d + errors: + - code: company_not_found + message: Company Not Found + User not found: + value: + type: error.list + request_id: f9ac3a37-450a-4d7f-960a-9ea7888239e2 + errors: + - code: not_found + message: User Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: cf1aa9cf-ab83-46c4-a716-32f85bd7edf0 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + oneOf: + - "$ref": "#/components/schemas/create_or_update_tag_request" + - "$ref": "#/components/schemas/tag_company_request" + - "$ref": "#/components/schemas/untag_company_request" + - "$ref": "#/components/schemas/tag_multiple_users_request" + examples: + action_successful: + summary: Action successful + value: + name: test + invalid_parameters: + summary: Invalid parameters + value: + test: invalid + company_not_found: + summary: Company not found + value: + name: test + companies: + - company_id: '123' + user_not_found: + summary: User not found + value: + name: test + users: + - id: '123' + "/tags/{id}": + get: + summary: Find a specific tag + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + description: The unique identifier of a given tag + example: '123' + required: true + schema: + type: string + tags: + - Tags + operationId: findTag + description: | + You can fetch the details of tags that are on the workspace by their id. + This will return a tag object. + responses: + '200': + description: Tag found + content: + application/json: + examples: + Tag found: + value: + type: tag + id: '34' + name: Manual tag + schema: + "$ref": "#/components/schemas/tag" + '404': + description: Tag not found + content: + application/json: + examples: + Tag not found: + value: + type: error.list + request_id: a3912d5b-9eab-454d-b263-67f712e2e143 + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: cd73da89-780c-4efb-8024-c2df3575ebec + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + delete: + summary: Delete tag + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + description: The unique identifier of a given tag + example: '123' + required: true + schema: + type: string + tags: + - Tags + operationId: deleteTag + description: You can delete the details of tags that are on the workspace by + passing in the id. + responses: + '200': + description: Successful + '404': + description: Resource not found + content: + application/json: + examples: + Resource not found: + value: + type: error.list + request_id: 83cf2276-01a1-4691-a033-7b528507edc7 + errors: + - code: not_found + message: Resource Not Found + schema: + "$ref": "#/components/schemas/error" + '400': + description: Tag has dependent objects + content: + application/json: + examples: + Tag has dependent objects: + value: + type: error.list + request_id: 6a48c286-872d-4694-8341-a694d51c2358 + errors: + - code: tag_has_dependent_objects + message: 'Unable to delete Tag with dependent objects. Segments: + Seg 1.' + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 69f268b5-8a98-4bad-b114-310638e7f158 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/teams": + get: + summary: List all teams + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Teams + operationId: listTeams + description: This will return a list of team objects for the App. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: team.list + teams: [] + schema: + "$ref": "#/components/schemas/team_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: a4df18ab-48c5-42ae-84ca-832a95b302a4 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/teams/{id}": + get: + summary: Retrieve a team + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier of a given team. + example: '123' + schema: + type: string + tags: + - Teams + operationId: retrieveTeam + description: You can fetch the details of a single team, containing an array + of admins that belong to this team. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: team + id: '991266655' + name: team 1 + admin_ids: [] + schema: + "$ref": "#/components/schemas/team" + '404': + description: Team not found + content: + application/json: + examples: + Team not found: + value: + type: error.list + request_id: 944c113a-9c57-417e-9d55-d74c00554504 + errors: + - code: team_not_found + message: Team not found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 2d8c14af-808f-4c13-a511-ee6fe90140e5 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/ticket_states": + get: + summary: List all ticket states + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Ticket States + operationId: listTicketStates + description: You can get a list of all ticket states for a workspace. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: list + data: + - type: ticket_state + id: '2521' + category: submitted + internal_label: Submitted + external_label: Submitted + ticket_types: + type: list + data: + - type: ticket_type + id: '3' + name: my-ticket-type-3 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + - type: ticket_type + id: '4' + name: my-ticket-type-4 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + - type: ticket_type + id: '6' + name: my-ticket-type-6 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + archived: false + - type: ticket_state + id: '2522' + category: in_progress + internal_label: In progress + external_label: In progress + ticket_types: + type: list + data: + - type: ticket_type + id: '3' + name: my-ticket-type-3 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + - type: ticket_type + id: '4' + name: my-ticket-type-4 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + - type: ticket_type + id: '6' + name: my-ticket-type-6 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + archived: false + - type: ticket_state + id: '2523' + category: waiting_on_customer + internal_label: Waiting on customer + external_label: Waiting on you + ticket_types: + type: list + data: + - type: ticket_type + id: '3' + name: my-ticket-type-3 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + - type: ticket_type + id: '4' + name: my-ticket-type-4 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + - type: ticket_type + id: '6' + name: my-ticket-type-6 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + archived: false + - type: ticket_state + id: '2524' + category: resolved + internal_label: Resolved + external_label: Resolved + ticket_types: + type: list + data: + - type: ticket_type + id: '3' + name: my-ticket-type-3 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + - type: ticket_type + id: '4' + name: my-ticket-type-4 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + - type: ticket_type + id: '6' + name: my-ticket-type-6 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + archived: false + - type: ticket_state + id: '2525' + category: submitted + internal_label: Admin label 1 + external_label: User label + ticket_types: + type: list + data: + - type: ticket_type + id: '3' + name: my-ticket-type-3 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + - type: ticket_type + id: '4' + name: my-ticket-type-4 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + archived: false + - type: ticket_state + id: '2526' + category: submitted + internal_label: Admin label 2 + external_label: User label + ticket_types: + type: list + data: + - type: ticket_type + id: '6' + name: my-ticket-type-6 + description: my ticket type description is awesome. + icon: "\U0001F981" + archived: false + is_internal: false + category: Back-office + archived: false + schema: + "$ref": "#/components/schemas/ticket_state_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 8b8e536e-1902-4169-83b2-337218a1c098 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/ticket_types/{ticket_type_id}/attributes": + post: + summary: Create a new attribute for a ticket type + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: ticket_type_id + in: path + required: true + description: The unique identifier for the ticket type which is given by Intercom. + schema: + type: string + tags: + - Ticket Type Attributes + description: You can create a new attribute for a ticket type. + operationId: createTicketTypeAttribute + responses: + '200': + description: Ticket Type Attribute created + content: + application/json: + examples: + Ticket Type Attribute created: + value: + type: ticket_type_attribute + id: '24' + workspace_id: this_is_an_id635_that_should_be_at_least_ + name: Attribute Title + description: Attribute Description + data_type: string + input_options: + multiline: false + order: 2 + required_to_create: false + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: true + default: false + ticket_type_id: 11 + archived: false + created_at: 1736201893 + updated_at: 1736201893 + schema: + "$ref": "#/components/schemas/ticket_type_attribute" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 7cf73545-b2d7-419e-9490-31add60f9cc2 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_ticket_type_attribute_request" + examples: + ticket_type_attribute_created: + summary: Ticket Type Attribute created + value: + name: Attribute Title + description: Attribute Description + data_type: string + required_to_create: false + "/ticket_types/{ticket_type_id}/attributes/{id}": + put: + summary: Update an existing attribute for a ticket type + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: ticket_type_id + in: path + required: true + description: The unique identifier for the ticket type which is given by Intercom. + schema: + type: string + - name: id + in: path + required: true + description: The unique identifier for the ticket type attribute which is + given by Intercom. + schema: + type: string + tags: + - Ticket Type Attributes + description: You can update an existing attribute for a ticket type. + operationId: updateTicketTypeAttribute + responses: + '200': + description: Ticket Type Attribute updated + content: + application/json: + examples: + Ticket Type Attribute updated: + value: + type: ticket_type_attribute + id: '29' + workspace_id: this_is_an_id639_that_should_be_at_least_ + name: name + description: New Attribute Description + data_type: string + order: 0 + required_to_create: false + required_to_create_for_contacts: false + visible_on_create: false + visible_to_contacts: false + default: false + ticket_type_id: 13 + archived: false + created_at: 1736201894 + updated_at: 1736201895 + schema: + "$ref": "#/components/schemas/ticket_type_attribute" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 6dec099f-4f3d-4664-9bc5-ff5c576a37e4 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/update_ticket_type_attribute_request" + examples: + ticket_type_attribute_updated: + summary: Ticket Type Attribute updated + value: + description: New Attribute Description + "/ticket_types": + get: + summary: List all ticket types + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Ticket Types + operationId: listTicketTypes + description: You can get a list of all ticket types for a workspace. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: list + data: + - type: ticket_type + id: '15' + name: Bug Report + description: Bug Report Template + icon: "\U0001F39F️" + workspace_id: this_is_an_id643_that_should_be_at_least_ + archived: false + created_at: 1736201896 + updated_at: 1736201896 + is_internal: false + ticket_type_attributes: + type: list + data: + - type: ticket_type_attribute + id: '32' + workspace_id: this_is_an_id643_that_should_be_at_least_ + name: _default_title_ + description: '' + data_type: string + input_options: + multiline: false + order: 0 + required_to_create: false + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: true + default: true + ticket_type_id: 15 + archived: false + created_at: 1736201896 + updated_at: 1736201896 + - type: ticket_type_attribute + id: '34' + workspace_id: this_is_an_id643_that_should_be_at_least_ + name: name + description: description + data_type: string + input_options: + order: 0 + required_to_create: false + required_to_create_for_contacts: false + visible_on_create: false + visible_to_contacts: false + default: false + ticket_type_id: 15 + archived: false + created_at: 1736201896 + updated_at: 1736201896 + - type: ticket_type_attribute + id: '33' + workspace_id: this_is_an_id643_that_should_be_at_least_ + name: _default_description_ + description: '' + data_type: string + input_options: + multiline: true + order: 1 + required_to_create: false + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: true + default: true + ticket_type_id: 15 + archived: false + created_at: 1736201896 + updated_at: 1736201896 + category: Customer + ticket_states: + type: list + data: + - type: ticket_state + id: '2573' + category: submitted + internal_label: Submitted + external_label: Submitted + - type: ticket_state + id: '2574' + category: in_progress + internal_label: In progress + external_label: In progress + - type: ticket_state + id: '2575' + category: waiting_on_customer + internal_label: Waiting on customer + external_label: Waiting on you + - type: ticket_state + id: '2576' + category: resolved + internal_label: Resolved + external_label: Resolved + schema: + "$ref": "#/components/schemas/ticket_type_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: eb4900b9-1b12-4db0-8396-a6ef2c80d5cd + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + post: + summary: Create a ticket type + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Ticket Types + operationId: createTicketType + description: "You can create a new ticket type.\n> \U0001F4D8 Creating ticket + types.\n>\n> Every ticket type will be created with two default attributes: + _default_title_ and _default_description_.\n> For the `icon` propery, use + an emoji from [Twemoji Cheatsheet](https://twemoji-cheatsheet.vercel.app/)\n" + responses: + '200': + description: Ticket type created + content: + application/json: + examples: + Ticket type created: + value: + type: ticket_type + id: '18' + name: Customer Issue + description: Customer Report Template + icon: "\U0001F39F️" + workspace_id: this_is_an_id647_that_should_be_at_least_ + archived: false + created_at: 1736201898 + updated_at: 1736201898 + is_internal: false + ticket_type_attributes: + type: list + data: + - type: ticket_type_attribute + id: '41' + workspace_id: this_is_an_id647_that_should_be_at_least_ + name: _default_title_ + description: '' + data_type: string + input_options: + multiline: false + order: 0 + required_to_create: false + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: true + default: true + ticket_type_id: 18 + archived: false + created_at: 1736201898 + updated_at: 1736201898 + - type: ticket_type_attribute + id: '42' + workspace_id: this_is_an_id647_that_should_be_at_least_ + name: _default_description_ + description: '' + data_type: string + input_options: + multiline: true + order: 1 + required_to_create: false + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: true + default: true + ticket_type_id: 18 + archived: false + created_at: 1736201898 + updated_at: 1736201898 + category: Customer + ticket_states: + type: list + data: + - type: ticket_state + id: '2589' + category: submitted + internal_label: Submitted + external_label: Submitted + - type: ticket_state + id: '2590' + category: in_progress + internal_label: In progress + external_label: In progress + - type: ticket_state + id: '2591' + category: waiting_on_customer + internal_label: Waiting on customer + external_label: Waiting on you + - type: ticket_state + id: '2592' + category: resolved + internal_label: Resolved + external_label: Resolved + schema: + "$ref": "#/components/schemas/ticket_type" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 94dd73d4-5eb1-4eab-a760-7b780709873c + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_ticket_type_request" + examples: + ticket_type_created: + summary: Ticket type created + value: + name: Customer Issue + description: Customer Report Template + icon: "\U0001F39F️" + category: Customer + "/ticket_types/{id}": + get: + summary: Retrieve a ticket type + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the ticket type which is given by Intercom. + schema: + type: string + tags: + - Ticket Types + operationId: getTicketType + description: You can fetch the details of a single ticket type. + responses: + '200': + description: Ticket type found + content: + application/json: + examples: + Ticket type found: + value: + type: ticket_type + id: '20' + name: Bug Report + description: Bug Report Template + icon: "\U0001F39F️" + workspace_id: this_is_an_id651_that_should_be_at_least_ + archived: false + created_at: 1736201900 + updated_at: 1736201900 + is_internal: false + ticket_type_attributes: + type: list + data: + - type: ticket_type_attribute + id: '46' + workspace_id: this_is_an_id651_that_should_be_at_least_ + name: _default_title_ + description: '' + data_type: string + input_options: + multiline: false + order: 0 + required_to_create: false + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: true + default: true + ticket_type_id: 20 + archived: false + created_at: 1736201900 + updated_at: 1736201900 + - type: ticket_type_attribute + id: '48' + workspace_id: this_is_an_id651_that_should_be_at_least_ + name: name + description: description + data_type: string + input_options: + order: 0 + required_to_create: false + required_to_create_for_contacts: false + visible_on_create: false + visible_to_contacts: false + default: false + ticket_type_id: 20 + archived: false + created_at: 1736201900 + updated_at: 1736201900 + - type: ticket_type_attribute + id: '47' + workspace_id: this_is_an_id651_that_should_be_at_least_ + name: _default_description_ + description: '' + data_type: string + input_options: + multiline: true + order: 1 + required_to_create: false + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: true + default: true + ticket_type_id: 20 + archived: false + created_at: 1736201900 + updated_at: 1736201900 + category: Customer + ticket_states: + type: list + data: + - type: ticket_state + id: '2605' + category: submitted + internal_label: Submitted + external_label: Submitted + - type: ticket_state + id: '2606' + category: in_progress + internal_label: In progress + external_label: In progress + - type: ticket_state + id: '2607' + category: waiting_on_customer + internal_label: Waiting on customer + external_label: Waiting on you + - type: ticket_state + id: '2608' + category: resolved + internal_label: Resolved + external_label: Resolved + schema: + "$ref": "#/components/schemas/ticket_type" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 07257a98-5e67-4d7d-ab65-aba6b143c626 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + put: + summary: Update a ticket type + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the ticket type which is given by Intercom. + schema: + type: string + tags: + - Ticket Types + operationId: updateTicketType + description: "\nYou can update a ticket type.\n\n> \U0001F4D8 Updating a ticket + type.\n>\n> For the `icon` propery, use an emoji from [Twemoji Cheatsheet](https://twemoji-cheatsheet.vercel.app/)\n" + responses: + '200': + description: Ticket type updated + content: + application/json: + examples: + Ticket type updated: + value: + type: ticket_type + id: '22' + name: Bug Report 2 + description: Bug Report Template + icon: "\U0001F39F️" + workspace_id: this_is_an_id655_that_should_be_at_least_ + archived: false + created_at: 1736201902 + updated_at: 1736201902 + is_internal: false + ticket_type_attributes: + type: list + data: + - type: ticket_type_attribute + id: '52' + workspace_id: this_is_an_id655_that_should_be_at_least_ + name: _default_title_ + description: '' + data_type: string + input_options: + multiline: false + order: 0 + required_to_create: false + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: true + default: true + ticket_type_id: 22 + archived: false + created_at: 1736201902 + updated_at: 1736201902 + - type: ticket_type_attribute + id: '54' + workspace_id: this_is_an_id655_that_should_be_at_least_ + name: name + description: description + data_type: string + input_options: + order: 0 + required_to_create: false + required_to_create_for_contacts: false + visible_on_create: false + visible_to_contacts: false + default: false + ticket_type_id: 22 + archived: false + created_at: 1736201902 + updated_at: 1736201902 + - type: ticket_type_attribute + id: '53' + workspace_id: this_is_an_id655_that_should_be_at_least_ + name: _default_description_ + description: '' + data_type: string + input_options: + multiline: true + order: 1 + required_to_create: false + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: true + default: true + ticket_type_id: 22 + archived: false + created_at: 1736201902 + updated_at: 1736201902 + category: Customer + ticket_states: + type: list + data: + - type: ticket_state + id: '2621' + category: submitted + internal_label: Submitted + external_label: Submitted + - type: ticket_state + id: '2622' + category: in_progress + internal_label: In progress + external_label: In progress + - type: ticket_state + id: '2623' + category: waiting_on_customer + internal_label: Waiting on customer + external_label: Waiting on you + - type: ticket_state + id: '2624' + category: resolved + internal_label: Resolved + external_label: Resolved + schema: + "$ref": "#/components/schemas/ticket_type" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 20727cfe-92eb-4d6e-b3d5-b6d2eff2f68e + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/update_ticket_type_request" + examples: + ticket_type_updated: + summary: Ticket type updated + value: + name: Bug Report 2 + "/tickets/{id}/reply": + post: + summary: Reply to a ticket + operationId: replyTicket + description: You can reply to a ticket with a message from an admin or on behalf + of a contact, or with a note for admins. + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + schema: + title: Ticket ID + type: string + description: The id of the ticket to target. + example: '123' + tags: + - Tickets + responses: + '400': + description: User reply + content: + application/json: + examples: + User reply: + value: + type: error.list + request_id: 9fbb1df1-ff74-4519-8091-ff7f794a58f1 + errors: + - code: parameter_mismatch + message: User replies are not allowed on Backoffice tickets + schema: + "$ref": "#/components/schemas/error" + '200': + description: Admin quick_reply reply + content: + application/json: + examples: + Admin note reply: + value: + type: ticket_part + id: '31' + part_type: note + body: |- +Okay!
" + created_at: + type: integer + format: date-time + description: The time the conversation part was created. + example: 1663597223 + updated_at: + type: integer + format: date-time + description: The last time the conversation part was updated. + example: 1663597260 + notified_at: + type: integer + format: date-time + description: The time the user was notified with the conversation part. + example: 1663597260 + assigned_to: + "$ref": "#/components/schemas/reference" + nullable: true + description: The id of the admin that was assigned the conversation by this + conversation_part (null if there has been no change in assignment.) + author: + "$ref": "#/components/schemas/conversation_part_author" + attachments: + title: Conversation part attachments + type: array + description: A list of attachments for the part. + items: + "$ref": "#/components/schemas/part_attachment" + external_id: + type: string + nullable: true + description: The external id of the conversation part + example: abcd1234 + redacted: + type: boolean + description: Whether or not the conversation part has been redacted. + example: false + conversation_part_author: + title: Conversation part author + type: object + description: 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. + For Twitter, this will be blank. + properties: + type: + type: string + description: The type of the author + example: admin + id: + type: string + description: The id of the author + example: '274' + name: + type: string + description: The name of the author + example: Operator + email: + type: string + format: email + description: The email of the author + example: operator+abcd1234@intercom.io + conversation_parts: + title: Conversation Parts + type: object + description: 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. + properties: + type: + type: string + description: '' + enum: + - conversation_part.list + example: conversation_part.list + conversation_parts: + title: Conversation Parts + type: array + description: 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. + items: + "$ref": "#/components/schemas/conversation_part" + total_count: + type: integer + description: '' + example: 2 + conversation_rating: + title: Conversation Rating + type: object + nullable: true + description: The Conversation Rating object which contains information on the + rating and/or remark added by a Contact and the Admin assigned to the conversation. + properties: + rating: + type: integer + description: The rating, between 1 and 5, for the conversation. + example: 5 + remark: + type: string + description: An optional field to add a remark to correspond to the number + rating + example: '' + created_at: + type: integer + format: date-time + description: The time the rating was requested in the conversation being + rated. + example: 1671028894 + contact: + "$ref": "#/components/schemas/contact_reference" + teammate: + "$ref": "#/components/schemas/reference" + conversation_response_time: + title: Conversation response time + type: object + description: Details of first response time of assigned team in seconds. + properties: + team_id: + type: integer + description: Id of the assigned team. + example: 100 + team_name: + type: string + description: Name of the assigned Team, null if team does not exist, Unassigned + if no team is assigned. + example: Team One + response_time: + type: integer + description: First response time of assigned team in seconds. + example: 2310 + conversation_source: + title: Conversation source + type: object + description: The type of the conversation part that started this conversation. Can be Contact, Admin, Campaign, Automated or Operator initiated. + properties: + type: + type: string + description: This includes conversation, email, facebook, instagram, phone_call, + phone_switch, push, sms, twitter and whatsapp. + example: conversation + enum: + - conversation + - email + - facebook + - instagram + - phone_call + - phone_switch + - push + - sms + - twitter + - whatsapp + id: + type: string + description: The id representing the message. + example: '3' + delivered_as: + type: string + description: 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). + example: operator_initiated + subject: + type: string + description: Optional. The message subject. For Twitter, this will show + a generic message regarding why the subject is obscured. + example: '' + body: + type: string + description: The message body, which may contain HTML. For Twitter, this + will show a generic message regarding why the body is obscured. + example: "Hey there!
" + author: + "$ref": "#/components/schemas/conversation_part_author" + attachments: + type: array + description: A list of attachments for the part. + items: + "$ref": "#/components/schemas/part_attachment" + url: + type: string + nullable: true + description: The URL where the conversation was started. For Twitter, Email, + and Bots, this will be blank. + example: + redacted: + type: boolean + description: Whether or not the source message has been redacted. Only applicable + for contact initiated messages. + example: false + conversation_statistics: + title: Conversation statistics + type: object + nullable: true + description: A Statistics object containing all information required for reporting, + with timestamps and calculated metrics. + properties: + type: + type: string + description: '' + example: conversation_statistics + time_to_assignment: + type: integer + description: Duration until last assignment before first admin reply. In + seconds. + example: 2310 + time_to_admin_reply: + type: integer + description: Duration until first admin reply. Subtracts out of business + hours. In seconds. + example: 2310 + time_to_first_close: + type: integer + description: Duration until conversation was closed first time. Subtracts + out of business hours. In seconds. + example: 2310 + time_to_last_close: + type: integer + description: Duration until conversation was closed last time. Subtracts + out of business hours. In seconds. + example: 2310 + median_time_to_reply: + type: integer + description: Median based on all admin replies after a contact reply. Subtracts + out of business hours. In seconds. + example: 2310 + first_contact_reply_at: + type: integer + format: date-time + description: Time of first text conversation part from a contact. + example: 1663597233 + first_assignment_at: + type: integer + format: date-time + description: Time of first assignment after first_contact_reply_at. + example: 1663597233 + first_admin_reply_at: + type: integer + format: date-time + description: Time of first admin reply after first_contact_reply_at. + example: 1663597233 + first_close_at: + type: integer + format: date-time + description: Time of first close after first_contact_reply_at. + example: 1663597233 + last_assignment_at: + type: integer + format: date-time + description: Time of last assignment after first_contact_reply_at. + example: 1663597233 + last_assignment_admin_reply_at: + type: integer + format: date-time + description: Time of first admin reply since most recent assignment. + example: 1663597233 + last_contact_reply_at: + type: integer + format: date-time + description: Time of the last conversation part from a contact. + example: 1663597233 + last_admin_reply_at: + type: integer + format: date-time + description: Time of the last conversation part from an admin. + example: 1663597233 + last_close_at: + type: integer + format: date-time + description: Time of the last conversation close. + example: 1663597233 + last_closed_by_id: + type: string + description: The last admin who closed the conversation. Returns a reference + to an Admin object. + example: c3po + count_reopens: + type: integer + description: Number of reopens after first_contact_reply_at. + example: 1 + count_assignments: + type: integer + description: Number of assignments after first_contact_reply_at. + example: 1 + count_conversation_parts: + type: integer + description: Total number of conversation parts. + example: 1 + assigned_team_first_response_time_by_team: + type: array + description: An array of conversation response time objects + items: + "$ref": "#/components/schemas/conversation_response_time" + conversation_teammates: + title: Conversation teammates + type: object + nullable: true + description: The list of teammates who participated in the conversation (wrote + at least one conversation part). + properties: + type: + type: string + description: The type of the object - `admin.list`. + example: admin.list + teammates: + type: array + description: The list of teammates who participated in the conversation + (wrote at least one conversation part). + items: + "$ref": "#/components/schemas/reference" + convert_conversation_to_ticket_request: + description: You can convert a Conversation to a Ticket + type: object + title: Convert Ticket Request Payload + properties: + ticket_type_id: + type: string + description: The ID of the type of ticket you want to convert the conversation + to + example: '1234' + attributes: + "$ref": "#/components/schemas/ticket_request_custom_attributes" + required: + - ticket_type_id + convert_visitor_request: + description: You can merge a Visitor to a Contact of role type lead or user. + type: object + title: Convert Visitor Request Payload + properties: + type: + type: string + description: Represents the role of the Contact model. Accepts `lead` or + `user`. + example: user + user: + type: object + description: The unique identifiers retained after converting or merging. + properties: + id: + type: string + description: The unique identifier for the contact which is given by + Intercom. + example: 8a88a590-e1c3-41e2-a502-e0649dbf721c + user_id: + type: string + description: A unique identifier for the contact which is given to Intercom, + which will be represented as external_id. + example: 8a88a590-e1c3-41e2-a502-e0649dbf721c + email: + type: string + description: The contact's email, retained by default if one is present. + example: winstonsmith@truth.org + anyOf: + - required: + - id + - required: + - user_id + visitor: + type: object + description: The unique identifiers to convert a single Visitor. + properties: + id: + type: string + description: The unique identifier for the contact which is given by + Intercom. + example: 8a88a590-e1c3-41e2-a502-e0649dbf721c + user_id: + type: string + description: A unique identifier for the contact which is given to Intercom. + example: 8a88a590-e1c3-41e2-a502-e0649dbf721c + email: + type: string + description: The visitor's email. + example: winstonsmith@truth.org + anyOf: + - required: + - id + - required: + - user_id + - required: + - email + required: + - type + - user + - visitor + create_article_request: + description: You can create an Article + type: object + title: Create Article Request Payload + nullable: true + properties: + title: + type: string + description: The title of the article.For multilingual articles, this will + be the title of the default language's content. + example: Thanks for everything + description: + type: string + description: The description of the article. For multilingual articles, + this will be the description of the default language's content. + example: Description of the Article + body: + type: string + description: The content of the article. For multilingual articles, this + will be the body of the default language's content. + example: "This is the body in html
" + author_id: + type: integer + description: The id of the author of the article. For multilingual articles, + this will be the id of the author of the default language's content. Must + be a teammate on the help center's workspace. + example: 1295 + state: + type: string + description: Whether the article will be `published` or will be a `draft`. + Defaults to draft. For multilingual articles, this will be the state of + the default language's content. + enum: + - published + - draft + example: draft + parent_id: + type: integer + description: The id of the article's parent collection or section. An article + without this field stands alone. + example: 18 + parent_type: + type: string + description: The type of parent, which can either be a `collection` or `section`. + example: collection + translated_content: + "$ref": "#/components/schemas/article_translated_content" + required: + - title + - author_id + create_collection_request: + description: You can create a collection + type: object + title: Create Collection Request Payload + properties: + name: + type: string + description: The name of the collection. For multilingual collections, this + will be the name of the default language's content. + example: collection 51 + description: + type: string + description: The description of the collection. For multilingual collections, + this will be the description of the default language's content. + example: English description + translated_content: + nullable: true + "$ref": "#/components/schemas/group_translated_content" + parent_id: + type: string + nullable: true + description: The id of the parent collection. If `null` then it will be + created as the first level collection. + example: '6871118' + help_center_id: + type: integer + nullable: true + description: The id of the help center where the collection will be created. + If `null` then it will be created in the default help center. + example: '123' + required: + - name + create_contact_request: + description: Payload to create a contact + type: object + title: Create Contact Request Payload + properties: + role: + type: string + description: The role of the contact. + external_id: + type: string + description: A unique identifier for the contact which is given to Intercom + email: + type: string + description: The contacts email + example: jdoe@example.com + phone: + type: string + nullable: true + description: The contacts phone + example: "+353871234567" + name: + type: string + nullable: true + description: The contacts name + example: John Doe + avatar: + type: string + nullable: true + description: An image URL containing the avatar of a contact + example: https://www.example.com/avatar_image.jpg + signed_up_at: + type: integer + format: date-time + nullable: true + description: The time specified for when a contact signed up + example: 1571672154 + last_seen_at: + type: integer + format: date-time + nullable: true + description: The time when the contact was last seen (either where the Intercom + Messenger was installed or when specified manually) + example: 1571672154 + owner_id: + type: integer + nullable: true + description: The id of an admin that has been assigned account ownership + of the contact + example: 123 + unsubscribed_from_emails: + type: boolean + nullable: true + description: Whether the contact is unsubscribed from emails + example: true + custom_attributes: + type: object + nullable: true + description: The custom attributes which are set for the contact + anyOf: + - required: + - email + title: Create contact with email + - required: + - external_id + title: Create contact with external_id + - required: + - role + title: Create contact with role + create_content_import_source_request: + title: Create Content Import Source Payload + type: object + description: You can add an Content Import Source to your Fin Content Library. + nullable: false + properties: + sync_behavior: + type: string + description: If you intend to create or update External Pages via the API, + this should be set to `api`. + enum: + - api + example: api + status: + type: string + description: The status of the content import source. + enum: + - active + - deactivated + default: active + example: active + url: + type: string + description: The URL of the content import source. + example: https://help.example.com + required: + - sync_behavior + - url + create_conversation_request: + description: Conversations are how you can communicate with users in Intercom. + They are created when a contact replies to an outbound message, or when one + admin directly sends a message to a single contact. + type: object + title: Create Conversation Request Payload + properties: + from: + type: object + properties: + type: + type: string + enum: + - lead + - user + - contact + description: The role associated to the contact - user or lead. + example: user + id: + type: string + description: The identifier for the contact which is given by Intercom. + format: uuid + minLength: 24 + maxLength: 24 + example: 536e564f316c83104c000020 + required: + - type + - id + body: + type: string + description: The content of the message. HTML is not supported. + example: Hello + required: + - from + - body + create_data_attribute_request: + description: '' + type: object + title: Create Data Attribute Request + properties: + name: + type: string + description: The name of the data attribute. + example: My Data Attribute + model: + type: string + description: The model that the data attribute belongs to. + enum: + - contact + - company + example: contact + data_type: + type: string + description: The type of data stored for this attribute. + enum: + - string + - integer + - float + - boolean + - datetime + - date + example: string + description: + type: string + description: The readable description you see in the UI for the attribute. + example: My Data Attribute Description + options: + type: array + description: To create list attributes. Provide a set of hashes with `value` + as the key of the options you want to make. `data_type` must be `string`. + items: + type: string + example: + - option1 + - option2 + messenger_writable: + type: boolean + description: Can this attribute be updated by the Messenger + example: false + required: + - name + - model + - data_type + create_data_event_request: + description: '' + type: object + title: Create Data Event Request + properties: + event_name: + type: string + description: The name of the event that occurred. This is presented to your + App's admins when filtering and creating segments - a good event name + is typically a past tense 'verb-noun' combination, to improve readability, + for example `updated-plan`. + example: invited-friend + created_at: + type: integer + format: date-time + description: The time the event occurred as a UTC Unix timestamp + example: 1671028894 + user_id: + type: string + description: Your identifier for the user. + example: '314159' + id: + type: string + description: The unique identifier for the contact (lead or user) which + is given by Intercom. + example: 8a88a590-e1c3-41e2-a502-e0649dbf721c + email: + type: string + description: An email address for your user. An email should only be used + where your application uses email to uniquely identify users. + example: frodo.baggins@example.com + metadata: + type: object + description: Optional metadata about the event. + additionalProperties: + type: string + example: + invite_code: ADDAFRIEND + anyOf: + - title: id required + required: + - event_name + - created_at + - id + - title: user_id required + required: + - event_name + - created_at + - user_id + - title: email required + required: + - event_name + - created_at + - email + create_data_event_summaries_request: + description: You can send a list of event summaries for a user. Each event summary + should contain the event name, the time the event occurred, and the number + of times the event occurred. The event name should be a past tense "verb-noun" + combination, to improve readability, for example `updated-plan`. + type: object + title: Create Data Event Summaries Request + properties: + user_id: + type: string + description: Your identifier for the user. + example: '314159' + event_summaries: + type: object + description: A list of event summaries for the user. Each event summary + should contain the event name, the time the event occurred, and the number + of times the event occurred. The event name should be a past tense 'verb-noun' + combination, to improve readability, for example `updated-plan`. + properties: + event_name: + type: string + description: The name of the event that occurred. A good event name + is typically a past tense 'verb-noun' combination, to improve readability, + for example `updated-plan`. + example: invited-friend + count: + type: integer + description: The number of times the event occurred. + example: 1 + first: + type: integer + format: date-time + description: The first time the event was sent + example: 1671028894 + last: + type: integer + format: date-time + description: The last time the event was sent + example: 1671028894 + create_data_exports_request: + description: Request for creating a data export + type: object + title: Create Data Export Request + properties: + created_at_after: + type: integer + description: The start date that you request data for. It must be formatted + as a unix timestamp. + example: 1527811200 + created_at_before: + type: integer + description: The end date that you request data for. It must be formatted + as a unix timestamp. + example: 1527811200 + required: + - created_at_after + - created_at_before + create_external_page_request: + title: Create External Page Payload + type: object + description: You can add an External Page to your Fin Content Library. + nullable: false + properties: + title: + type: string + description: The title of the external page. + example: Getting started with... + html: + type: string + description: The body of the external page in HTML. + example: "Hello world!
" + url: + type: string + description: The URL of the external page. This will be used by Fin to link + end users to the page it based its answer on. When a URL is not present, + Fin will not reference the source. + example: https://help.example.com/en/articles/1234-getting-started + ai_agent_availability: + type: boolean + description: Whether the external page should be used to answer questions + by AI Agent. Will not default when updating an existing external page. + default: false + example: true + ai_copilot_availability: + type: boolean + description: Whether the external page should be used to answer questions + by AI Copilot. Will not default when updating an existing external page. + default: false + example: true + locale: + type: string + description: Always en + enum: + - en + default: en + example: en + source_id: + type: integer + description: The unique identifier for the source of the external page which + was given by Intercom. Every external page must be associated with a Content + Import Source which represents the place it comes from and from which + it inherits a default audience (configured in the UI). For a new source, + make a POST request to the Content Import Source endpoint and an ID for + the source will be returned in the response. + example: 1234 + external_id: + type: string + description: The identifier for the external page which was given by the + source. Must be unique for the source. + example: '5678' + required: + - title + - html + - locale + - source_id + - external_id + create_message_request: + description: You can create a message + type: object + title: Create Message Request Payload + nullable: true + properties: + message_type: + type: string + description: 'The kind of message being created. Values: `in_app` or `email`.' + enum: + - in_app + - email + example: in_app + subject: + type: string + description: The title of the email. + example: Thanks for everything + body: + type: string + description: The content of the message. HTML and plaintext are supported. + example: Hello there + template: + type: string + description: The style of the outgoing message. Possible values `plain` + or `personal`. + example: plain + from: + type: object + description: The sender of the message. If not provided, the default sender + will be used. + properties: + type: + type: string + description: Always `admin`. + enum: + - admin + example: admin + id: + type: integer + description: The identifier for the admin which is given by Intercom. + example: 394051 + required: + - type + - id + to: + type: object + description: The sender of the message. If not provided, the default sender + will be used. + properties: + type: + type: string + description: The role associated to the contact - `user` or `lead`. + enum: + - user + - lead + example: user + id: + type: string + description: The identifier for the contact which is given by Intercom. + example: 536e564f316c83104c000020 + required: + - type + - id + created_at: + type: integer + description: The time the message was created. If not provided, the current + time will be used. + example: 1590000000 + create_conversation_without_contact_reply: + type: boolean + description: Whether a conversation should be opened in the inbox for the + message without the contact replying. Defaults to false if not provided. + default: false + example: true + anyOf: + - title: 'message_type: `email`.' + required: + - message_type + - subject + - body + - template + - from + - to + - title: 'message_type: `inapp`.' + required: + - message_type + - body + - from + - to + create_or_update_company_request: + type: object + title: Create Or Update Company Request Payload + description: You can create or update a Company + nullable: true + properties: + name: + type: string + description: The name of the Company + example: Intercom + company_id: + type: string + description: The company id you have defined for the company. Can't be updated + example: 625e90fc55ab113b6d92175f + plan: + type: string + description: The name of the plan you have associated with the company. + example: Enterprise + size: + type: integer + description: The number of employees in this company. + example: '100' + website: + type: string + description: The URL for this company's website. Please note that the value + specified here is not validated. Accepts any string. + example: https://www.example.com + industry: + type: string + description: The industry that this company operates in. + example: Manufacturing + custom_attributes: + type: object + description: A hash of key/value pairs containing any other data about the + company you want Intercom to store. + additionalProperties: + type: string + example: + paid_subscriber: true + monthly_spend: 155.5 + team_mates: 9 + remote_created_at: + type: integer + description: The time the company was created by you. + example: 1394531169 + monthly_spend: + type: integer + description: How much revenue the company generates for your business. Note + that this will truncate floats. i.e. it only allow for whole integers, + 155.98 will be truncated to 155. Note that this has an upper limit of + 2**31-1 or 2147483647.. + example: 1000 + create_or_update_tag_request: + description: You can create or update an existing tag. + type: object + title: Create or Update Tag Request Payload + properties: + name: + type: string + description: The name of the tag, which will be created if not found, or + the new name for the tag if this is an update request. Names are case + insensitive. + example: Independent + id: + type: string + description: The id of tag to updates. + example: '656452352' + required: + - name + create_phone_switch_request: + description: You can create an phone switch + type: object + title: Create Phone Switch Request Payload + nullable: true + properties: + phone: + type: string + description: Phone number in E.164 format, that will receive the SMS to + continue the conversation in the Messenger. + example: "+1 1234567890" + custom_attributes: + "$ref": "#/components/schemas/custom_attributes" + required: + - phone + create_ticket_reply_with_comment_request: + title: Create Ticket Reply Request Payload + oneOf: + - "$ref": "#/components/schemas/contact_reply_ticket_request" + - "$ref": "#/components/schemas/admin_reply_ticket_request" + create_ticket_request: + description: You can create a Ticket + type: object + title: Create Ticket Request Payload + properties: + ticket_type_id: + type: string + description: The ID of the type of ticket you want to create + example: '1234' + contacts: + type: array + description: The list of contacts (users or leads) affected by this ticket. + Currently only one is allowed + items: + type: object + oneOf: + - title: ID + properties: + id: + type: string + description: The identifier for the contact as given by Intercom. + required: + - id + - title: External ID + properties: + external_id: + type: string + description: The external_id you have defined for the contact who + is being added as a participant. + required: + - external_id + - title: Email + properties: + email: + type: string + description: 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. + required: + - email + example: + - id: '1234' + company_id: + type: string + description: The ID of the company that the ticket is associated with. The + unique identifier for the company which is given by Intercom + example: 5f4d3c1c-7b1b-4d7d-a97e-6095715c6632 + created_at: + type: integer + description: The time the ticket was created. If not provided, the current + time will be used. + example: 1590000000 + ticket_attributes: + "$ref": "#/components/schemas/ticket_request_custom_attributes" + required: + - ticket_type_id + - contacts + create_ticket_type_attribute_request: + description: You can create a Ticket Type Attribute + type: object + title: Create Ticket Type Attribute Request Payload + properties: + name: + type: string + description: The name of the ticket type attribute + example: Bug Priority + description: + type: string + description: The description of the attribute presented to the teammate + or contact + example: Priority level of the bug + data_type: + type: string + description: The data type of the attribute + enum: + - string + - list + - integer + - decimal + - boolean + - datetime + - files + example: string + required_to_create: + type: boolean + description: Whether the attribute is required to be filled in when teammates + are creating the ticket in Inbox. + default: false + example: false + required_to_create_for_contacts: + type: boolean + description: Whether the attribute is required to be filled in when contacts + are creating the ticket in Messenger. + default: false + example: false + visible_on_create: + type: boolean + description: Whether the attribute is visible to teammates when creating + a ticket in Inbox. + default: true + example: true + visible_to_contacts: + type: boolean + description: Whether the attribute is visible to contacts when creating + a ticket in Messenger. + default: true + example: true + multiline: + type: boolean + description: Whether the attribute allows multiple lines of text (only applicable + to string attributes) + example: false + list_items: + type: string + description: A comma delimited list of items for the attribute value (only + applicable to list attributes) + example: Low Priority,Medium Priority,High Priority + allow_multiple_values: + type: boolean + description: Whether the attribute allows multiple files to be attached + to it (only applicable to file attributes) + example: false + required: + - name + - description + - data_type + create_ticket_type_request: + description: | + The request payload for creating a ticket type. + You can copy the `icon` property for your ticket type from [Twemoji Cheatsheet](https://twemoji-cheatsheet.vercel.app/) + type: object + title: Create Ticket Type Request Payload + nullable: true + properties: + name: + type: string + description: The name of the ticket type. + example: Bug + description: + type: string + description: The description of the ticket type. + example: Used for tracking bugs + category: + type: string + description: Category of the Ticket Type. + enum: + - Customer + - Back-office + - Tracker + example: Customer + icon: + type: string + description: The icon of the ticket type. + example: "\U0001F41E" + default: "\U0001F39F️" + is_internal: + type: boolean + description: Whether the tickets associated with this ticket type are intended + for internal use only or will be shared with customers. This is currently + a limited attribute. + example: false + default: false + required: + - name + cursor_pages: + title: Cursor based pages + type: object + description: | + Cursor-based pagination is a technique used in the Intercom API to navigate through large amounts of data. + A "cursor" or pointer is used to keep track of the current position in the result set, allowing the API to return the data in small chunks or "pages" as needed. + nullable: true + properties: + type: + type: string + description: the type of object `pages`. + example: pages + enum: + - pages + page: + type: integer + description: The current page + example: 1 + next: + "$ref": "#/components/schemas/starting_after_paging" + per_page: + type: integer + description: Number of results per page + example: 2 + total_pages: + type: integer + description: Total number of pages + example: 13 + custom_attributes: + title: Custom Attributes + type: object + description: 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. + additionalProperties: + anyOf: + - type: string + - "$ref": "#/components/schemas/custom_object_instance_list" + custom_object_instance: + title: Custom Object Instance + type: object + x-tags: + - Custom Object Instances + nullable: true + description: A Custom Object Instance represents an instance of a custom object + type. This allows you to create and set custom attributes to store data about + your customers that is not already captured by Intercom. The parent object + includes recommended default attributes and you can add your own custom attributes. + properties: + id: + type: string + description: The Intercom defined id representing the custom object instance. + example: 5a7a19e9f59ae20001d1c1e6 + external_id: + type: string + description: The id you have defined for the custom object instance. + example: 0001d1c1e65a7a19e9f59ae2 + type: + type: string + description: The identifier of the custom object type that defines the structure + of the custom object instance. + example: Order + custom_attributes: + type: object + description: The custom attributes you have set on the custom object instance. + additionalProperties: + type: string + custom_object_instance_list: + title: Custom Object Instances + type: object + description: The list of associated custom object instances for a given reference + attribute on the parent object. + properties: + type: + type: string + example: order.list + instances: + type: array + description: The list of associated custom object instances for a given + reference attribute on the parent object. + items: + "$ref": "#/components/schemas/custom_object_instance" + customer_request: + type: object + nullable: true + oneOf: + - title: Intercom User ID + properties: + intercom_user_id: + type: string + description: The identifier for the contact as given by Intercom. + example: 6329bd9ffe4e2e91dac76188 + required: + - intercom_user_id + - title: User ID + properties: + user_id: + type: string + description: The external_id you have defined for the contact who is being + added as a participant. + example: 2e91dac761886329bd9ffe4e + required: + - user_id + - title: Email + properties: + email: + type: string + description: The email you have defined for the contact who is being added + as a participant. + example: sam.sung@example.com + required: + - email + data_attribute: + title: Data Attribute + type: object + x-tags: + - Data Attributes + description: Data Attributes are metadata used to describe your contact, company + and conversation models. These include standard and custom attributes. By + using the data attributes endpoint, you can get the global list of attributes + for your workspace, as well as create and archive custom attributes. + properties: + type: + type: string + description: Value is `data_attribute`. + enum: + - data_attribute + example: data_attribute + id: + type: integer + description: The unique identifier for the data attribute which is given + by Intercom. Only available for custom attributes. + example: 12878 + model: + type: string + description: Value is `contact` for user/lead attributes and `company` for + company attributes. + enum: + - contact + - company + example: contact + name: + type: string + description: Name of the attribute. + example: paid_subscriber + full_name: + type: string + description: Full name of the attribute. Should match the name unless it's + a nested attribute. We can split full_name on `.` to access nested user + object values. + example: custom_attributes.paid_subscriber + label: + type: string + description: Readable name of the attribute (i.e. name you see in the UI) + example: Paid Subscriber + description: + type: string + description: Readable description of the attribute. + example: Whether the user is a paid subscriber. + data_type: + type: string + description: The data type of the attribute. + enum: + - string + - integer + - float + - boolean + - date + example: boolean + options: + type: array + description: List of predefined options for attribute value. + items: + type: string + example: + - 'true' + - 'false' + api_writable: + type: boolean + description: Can this attribute be updated through API + example: true + messenger_writable: + type: boolean + description: Can this attribute be updated by the Messenger + example: false + ui_writable: + type: boolean + description: Can this attribute be updated in the UI + example: true + custom: + type: boolean + description: Set to true if this is a CDA + example: true + archived: + type: boolean + description: Is this attribute archived. (Only applicable to CDAs) + example: false + created_at: + type: integer + format: date-time + description: The time the attribute was created as a UTC Unix timestamp + example: 1671028894 + updated_at: + type: integer + format: date-time + description: The time the attribute was last updated as a UTC Unix timestamp + example: 1671028894 + admin_id: + type: string + description: Teammate who created the attribute. Only applicable to CDAs + example: '5712945' + data_attribute_list: + title: Data Attribute List + type: object + description: A list of all data attributes belonging to a workspace for contacts, + companies or conversations. + properties: + type: + type: string + description: The type of the object + enum: + - list + example: list + data: + type: array + description: A list of data attributes + items: + "$ref": "#/components/schemas/data_attribute" + data_event: + title: Data Event + type: object + x-tags: + - Data Events + description: Data events are used to notify Intercom of changes to your data. + properties: + type: + type: string + description: The type of the object + enum: + - event + example: event + event_name: + type: string + description: The name of the event that occurred. This is presented to your + App's admins when filtering and creating segments - a good event name + is typically a past tense 'verb-noun' combination, to improve readability, + for example `updated-plan`. + example: invited-friend + created_at: + type: integer + format: date-time + description: The time the event occurred as a UTC Unix timestamp + example: 1671028894 + user_id: + type: string + description: Your identifier for the user. + example: '314159' + id: + type: string + description: Your identifier for a lead or a user. + example: 8a88a590-e1c3-41e2-a502-e0649dbf721c + intercom_user_id: + type: string + description: The Intercom identifier for the user. + example: 63a0979a5eeebeaf28dd56ba + email: + type: string + description: An email address for your user. An email should only be used + where your application uses email to uniquely identify users. + example: frodo.baggins@example.com + metadata: + type: object + description: Optional metadata about the event. + additionalProperties: + type: string + example: + invite_code: ADDAFRIEND + required: + - event_name + - created_at + data_event_list: + title: Data Event List + type: object + description: This will return a list of data events for the App. + properties: + type: + type: string + description: The type of the object + enum: + - event.list + example: event.list + events: + type: array + description: A list of data events + items: + "$ref": "#/components/schemas/data_event" + pages: + type: object + description: Pagination + properties: + next: + type: string + example: https://api.intercom.io/events?per_page=2&before=1389913941064&intercom_user_id=63a0979a5eeebeaf28dd56ba&type=user" + since: + type: string + example: https://api.intercom.io/events?intercom_user_id=63a0979a5eeebeaf28dd56ba&type=user&since=1389913941065 + data_event_summary: + title: Data Event Summary + type: object + description: This will return a summary of data events for the App. + properties: + type: + type: string + description: The type of the object + enum: + - event.summary + example: event.summary + email: + type: string + description: The email address of the user + example: Sam.Sung@example.com + intercom_user_id: + type: string + description: The Intercom user ID of the user + example: 63a0979a5eeebeaf28dd56ba + user_id: + type: string + description: The user ID of the user + example: 62b997f288e14803c5006932 + events: + type: array + description: A summary of data events + items: + "$ref": "#/components/schemas/data_event_summary_item" + data_event_summary_item: + title: Data Event Summary Item + type: object + description: This will return a summary of a data event for the App. + nullable: true + properties: + name: + type: string + description: The name of the event + example: placed-order + first: + type: string + description: The first time the event was sent + example: '2014-01-16T23:12:21.000+00:00' + last: + type: string + description: The last time the event was sent + example: '2014-01-16T23:12:21.000+00:00 ' + count: + type: integer + description: The number of times the event was sent + example: 1 + description: + type: string + description: The description of the event + example: A user placed an order + data_export: + title: Data Export + type: object + x-tags: + - Data Export + description: The data export api is used to view all message sent & viewed in + a given timeframe. + properties: + job_identfier: + type: string + description: The identifier for your job. + example: orzzsbd7hk67xyu + status: + type: string + enum: + - pending + - in_progress + - failed + - completed + - no_data + - canceled + description: The current state of your job. + example: pending + download_expires_at: + type: string + description: The time after which you will not be able to access the data. + example: '1674917488' + download_url: + type: string + description: The location where you can download your data. + example: https://api.intercom.test/download/messages/data/example + data_export_csv: + title: Data Export CSV + type: object + description: A CSV output file + properties: + user_id: + type: string + description: The user_id of the user who was sent the message. + user_external_id: + type: string + description: The external_user_id of the user who was sent the message + company_id: + type: string + description: The company ID of the user in relation to the message that + was sent. Will return -1 if no company is present. + email: + type: string + description: The users email who was sent the message. + name: + type: string + description: The full name of the user receiving the message + ruleset_id: + type: string + description: The id of the message. + content_id: + type: string + description: The specific content that was received. In an A/B test each + version has its own Content ID. + content_type: + type: string + description: Email, Chat, Post etc. + content_title: + type: string + description: The title of the content you see in your Intercom workspace. + ruleset_version_id: + type: string + description: As you edit content we record new versions. This ID can help + you determine which version of a piece of content that was received. + receipt_id: + type: string + description: ID for this receipt. Will be included with any related stats + in other files to identify this specific delivery of a message. + received_at: + type: integer + description: Timestamp for when the receipt was recorded. + series_id: + type: string + description: The id of the series that this content is part of. Will return + -1 if not part of a series. + series_title: + type: string + description: The title of the series that this content is part of. + node_id: + type: string + description: The id of the series node that this ruleset is associated with. + Each block in a series has a corresponding node_id. + first_reply: + type: integer + description: The first time a user replied to this message if the content + was able to receive replies. + first_completion: + type: integer + description: The first time a user completed this message if the content + was able to be completed e.g. Tours, Surveys. + first_series_completion: + type: integer + description: The first time the series this message was a part of was completed + by the user. + first_series_disengagement: + type: integer + description: The first time the series this message was a part of was disengaged + by the user. + first_series_exit: + type: integer + description: The first time the series this message was a part of was exited + by the user. + first_goal_success: + type: integer + description: The first time the user met this messages associated goal if + one exists. + first_open: + type: integer + description: The first time the user opened this message. + first_click: + type: integer + description: The first time the series the user clicked on a link within + this message. + first_dismisall: + type: integer + description: The first time the series the user dismissed this message. + first_unsubscribe: + type: integer + description: The first time the user unsubscribed from this message. + first_hard_bounce: + type: integer + description: The first time this message hard bounced for this user + deleted_article_object: + title: Deleted Article Object + type: object + description: Response returned when an object is deleted + properties: + id: + type: string + description: The unique identifier for the article which you provided in + the URL. + example: '6890762' + object: + type: string + description: The type of object which was deleted. - article + enum: + - article + example: article + deleted: + type: boolean + description: Whether the article was deleted successfully or not. + example: true + deleted_collection_object: + title: Deleted Collection Object + type: object + description: Response returned when an object is deleted + properties: + id: + type: string + description: The unique identifier for the collection which you provided + in the URL. + example: '6890762' + object: + type: string + description: The type of object which was deleted. - `collection` + enum: + - collection + example: collection + deleted: + type: boolean + description: Whether the collection was deleted successfully or not. + example: true + deleted_company_object: + title: Deleted Company Object + type: object + description: Response returned when an object is deleted + properties: + id: + type: string + description: The unique identifier for the company which is given by Intercom. + example: 5b7e8b2f-7a1a-4e6c-8e1b-4f9d4f4c4d4f + object: + type: string + description: The type of object which was deleted. - `company` + enum: + - company + example: company + deleted: + type: boolean + description: Whether the company was deleted successfully or not. + example: true + deleted_object: + title: Deleted Object + type: object + description: Response returned when an object is deleted + properties: + id: + type: string + description: The unique identifier for the news item which you provided + in the URL. + example: '6890762' + object: + type: string + description: The type of object which was deleted - news-item. + enum: + - news-item + example: news-item + deleted: + type: boolean + description: Whether the news item was deleted successfully or not. + example: true + detach_contact_from_conversation_request: + properties: + admin_id: + type: string + description: The `id` of the admin who is performing the action. + example: '5017690' + required: + - admin_id + error: + type: object + title: Error + description: The API will return an Error List for a failed request, which will + contain one or more Error objects. + properties: + type: + type: string + description: The type is error.list + example: error.list + request_id: + type: string + nullable: true + format: uuid + description: '' + example: f93ecfa8-d08a-4325-8694-89aeb89c8f85 + errors: + type: array + description: An array of one or more error objects + items: + properties: + code: + type: string + description: A string indicating the kind of error, used to further + qualify the HTTP response code + example: unauthorized + message: + type: string + nullable: true + description: Optional. Human readable description of the error. + example: Access Token Invalid + field: + type: string + nullable: true + description: Optional. Used to identify a particular field or query + parameter that was in error. + example: email + required: + - code + required: + - type + - errors + external_page: + title: External Page + type: object + x-tags: + - AI Content + description: External pages that you have added to your Fin Content Library. + nullable: false + properties: + type: + type: string + description: Always external_page + enum: + - external_page + default: external_page + example: external_page + id: + type: string + description: The unique identifier for the external page which is given + by Intercom. + example: '1234' + title: + type: string + description: The title of the external page. + example: Getting started with... + html: + type: string + description: The body of the external page in HTML. + example: "Hello world!
" + url: + type: string + description: The URL of the external page. This will be used by Fin to link + end users to the page it based its answer on. + example: https://help.example.com/en/articles/1234-getting-started + ai_agent_availability: + type: boolean + description: Whether the external page should be used to answer questions + by AI Agent. + example: true + ai_copilot_availability: + type: boolean + description: Whether the external page should be used to answer questions + by AI Copilot. + example: true + fin_availability: + type: boolean + description: Deprecated. Use ai_agent_availability and ai_copilot_availability + instead. + example: true + locale: + type: string + description: Always en + enum: + - en + default: en + example: en + source_id: + type: integer + description: The unique identifier for the source of the external page which + was given by Intercom. Every external page must be associated with a Content + Import Source which represents the place it comes from and from which + it inherits a default audience (configured in the UI). For a new source, + make a POST request to the Content Import Source endpoint and an ID for + the source will be returned in the response. + example: 1234 + external_id: + type: string + description: The identifier for the external page which was given by the + source. Must be unique for the source. + example: '5678' + created_at: + type: integer + format: date-time + description: The time when the external page was created. + example: 1672928359 + updated_at: + type: integer + format: date-time + description: The time when the external page was last updated. + example: 1672928610 + last_ingested_at: + type: integer + format: date-time + description: The time when the external page was last ingested. + example: 1672928610 + required: + - id + - type + - title + - html + - ai_agent_availability + - ai_copilot_availability + - locale + - source_id + - created_at + - updated_at + - last_ingested_at + - external_id + external_pages_list: + title: External Pages + type: object + x-tags: + - AI Content + description: This will return a list of external pages for the App. + nullable: false + properties: + type: + type: string + description: The type of the object - `list`. + enum: + - list + example: list + pages: + "$ref": "#/components/schemas/pages_link" + total_count: + type: integer + description: A count of the total number of external pages. + example: 1 + data: + type: array + description: An array of External Page objects + items: + "$ref": "#/components/schemas/external_page" + file_attribute: + title: File + type: object + description: The value describing a file upload set for a custom attribute + properties: + type: + type: string + example: upload + name: + type: string + description: The name of the file + example: Screenshot.png + url: + type: string + description: The url of the file. This is a temporary URL and will expire + after 30 minutes. + example: https://intercom-attachments-1.com/.../Screenshot.png + content_type: + type: string + description: The type of file + example: image/png + filesize: + type: integer + description: The size of the file in bytes + example: 11308309 + width: + type: integer + description: The width of the file in pixels, if applicable + example: 3024 + height: + type: integer + description: The height of the file in pixels, if applicable + example: 1964 + group_content: + title: Group Content + type: object + description: The Content of a Group. + nullable: true + properties: + type: + type: string + description: The type of object - `group_content` . + enum: + - + - group_content + example: group_content + nullable: true + name: + type: string + description: The name of the collection or section. + example: Collection name + description: + type: string + description: The description of the collection. Only available for collections. + example: " Collection description" + group_translated_content: + title: Group Translated Content + type: object + description: The Translated Content of an Group. The keys are the locale codes + and the values are the translated content of the Group. + nullable: true + properties: + type: + type: string + description: The type of object - group_translated_content. + nullable: true + enum: + - + - group_translated_content + example: group_translated_content + ar: + description: The content of the group in Arabic + "$ref": "#/components/schemas/group_content" + bg: + description: The content of the group in Bulgarian + "$ref": "#/components/schemas/group_content" + bs: + description: The content of the group in Bosnian + "$ref": "#/components/schemas/group_content" + ca: + description: The content of the group in Catalan + "$ref": "#/components/schemas/group_content" + cs: + description: The content of the group in Czech + "$ref": "#/components/schemas/group_content" + da: + description: The content of the group in Danish + "$ref": "#/components/schemas/group_content" + de: + description: The content of the group in German + "$ref": "#/components/schemas/group_content" + el: + description: The content of the group in Greek + "$ref": "#/components/schemas/group_content" + en: + description: The content of the group in English + "$ref": "#/components/schemas/group_content" + es: + description: The content of the group in Spanish + "$ref": "#/components/schemas/group_content" + et: + description: The content of the group in Estonian + "$ref": "#/components/schemas/group_content" + fi: + description: The content of the group in Finnish + "$ref": "#/components/schemas/group_content" + fr: + description: The content of the group in French + "$ref": "#/components/schemas/group_content" + he: + description: The content of the group in Hebrew + "$ref": "#/components/schemas/group_content" + hr: + description: The content of the group in Croatian + "$ref": "#/components/schemas/group_content" + hu: + description: The content of the group in Hungarian + "$ref": "#/components/schemas/group_content" + id: + description: The content of the group in Indonesian + "$ref": "#/components/schemas/group_content" + it: + description: The content of the group in Italian + "$ref": "#/components/schemas/group_content" + ja: + description: The content of the group in Japanese + "$ref": "#/components/schemas/group_content" + ko: + description: The content of the group in Korean + "$ref": "#/components/schemas/group_content" + lt: + description: The content of the group in Lithuanian + "$ref": "#/components/schemas/group_content" + lv: + description: The content of the group in Latvian + "$ref": "#/components/schemas/group_content" + mn: + description: The content of the group in Mongolian + "$ref": "#/components/schemas/group_content" + nb: + description: The content of the group in Norwegian + "$ref": "#/components/schemas/group_content" + nl: + description: The content of the group in Dutch + "$ref": "#/components/schemas/group_content" + pl: + description: The content of the group in Polish + "$ref": "#/components/schemas/group_content" + pt: + description: The content of the group in Portuguese (Portugal) + "$ref": "#/components/schemas/group_content" + ro: + description: The content of the group in Romanian + "$ref": "#/components/schemas/group_content" + ru: + description: The content of the group in Russian + "$ref": "#/components/schemas/group_content" + sl: + description: The content of the group in Slovenian + "$ref": "#/components/schemas/group_content" + sr: + description: The content of the group in Serbian + "$ref": "#/components/schemas/group_content" + sv: + description: The content of the group in Swedish + "$ref": "#/components/schemas/group_content" + tr: + description: The content of the group in Turkish + "$ref": "#/components/schemas/group_content" + vi: + description: The content of the group in Vietnamese + "$ref": "#/components/schemas/group_content" + pt-BR: + description: The content of the group in Portuguese (Brazil) + "$ref": "#/components/schemas/group_content" + zh-CN: + description: The content of the group in Chinese (China) + "$ref": "#/components/schemas/group_content" + zh-TW: + description: The content of the group in Chinese (Taiwan) + "$ref": "#/components/schemas/group_content" + help_center: + title: Help Center + type: object + x-tags: + - Help Center + description: Help Centers contain collections + properties: + id: + type: string + description: The unique identifier for the Help Center which is given by + Intercom. + example: '123' + workspace_id: + type: string + description: The id of the workspace which the Help Center belongs to. + example: hfi1bx4l + created_at: + type: integer + format: date-time + description: The time when the Help Center was created. + example: 1672928359 + updated_at: + type: integer + format: date-time + description: The time when the Help Center was last updated. + example: 1672928610 + identifier: + type: string + description: The identifier of the Help Center. This is used in the URL + of the Help Center. + example: intercom + website_turned_on: + type: boolean + description: Whether the Help Center is turned on or not. This is controlled + in your Help Center settings. + example: true + display_name: + type: string + description: The display name of the Help Center only seen by teammates. + example: Intercom Help Center + help_center_list: + title: Help Centers + type: object + x-tags: + - Help Center + description: A list of Help Centers belonging to the App + properties: + type: + type: string + description: The type of the object - `list`. + enum: + - list + example: list + data: + type: array + description: An array of Help Center objects + items: + "$ref": "#/components/schemas/help_center" + intercom_version: + description: Intercom API version.By default, it's equal to the version + set in the app package. + type: string + example: '2.12' + default: '2.12' + enum: + - '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' + - Unstable + linked_object: + title: Linked Object + type: object + description: A linked conversation or ticket. + properties: + type: + type: string + description: ticket or conversation + enum: + - ticket + - conversation + example: ticket + id: + type: string + description: The ID of the linked object + example: '7583' + category: + type: string + description: Category of the Linked Ticket Object. + enum: + - Customer + - Back-office + - Tracker + - + example: Customer + nullable: true + linked_object_list: + title: Linked Objects + type: object + description: An object containing metadata about linked conversations and linked + tickets. Up to 1000 can be returned. + properties: + type: + type: string + description: Always list. + enum: + - list + example: list + total_count: + type: integer + description: The total number of linked objects. + example: 100 + has_more: + type: boolean + description: Whether or not there are more linked objects than returned. + example: false + data: + type: array + description: An array containing the linked conversations and linked tickets. + items: + "$ref": "#/components/schemas/linked_object" + merge_contacts_request: + description: Merge contact data. + type: object + title: Merge contact data + properties: + from: + type: string + description: The unique identifier for the contact to merge away from. Must + be a lead. + example: 5d70dd30de4efd54f42fd526 + into: + type: string + description: The unique identifier for the contact to merge into. Must be + a user. + example: 5ba682d23d7cf92bef87bfd4 + message: + type: object + title: Message + x-tags: + - Messages + description: Message are how you reach out to contacts in Intercom. They are + created when an admin sends an outbound message to a contact. + properties: + type: + type: string + description: The type of the message + example: user_message + id: + type: string + description: The id representing the message. + example: '1488971108' + created_at: + type: integer + format: date-time + description: The time the conversation was created. + example: 1667560812 + subject: + type: string + description: 'The subject of the message. Only present if message_type: + email.' + example: Greetings + body: + type: string + description: The message body, which may contain HTML. + example: Hello + message_type: + type: string + enum: + - email + - inapp + - facebook + - twitter + description: The type of message that was sent. Can be email, inapp, facebook + or twitter. + example: inapp + conversation_id: + type: string + description: The associated conversation_id + example: '64619700005570' + required: + - type + - id + - created_at + - body + - message_type + multiple_filter_search_request: + title: Multiple Filter Search Request + description: Search using Intercoms Search APIs with more than one filter. + type: object + properties: + operator: + type: string + enum: + - AND + - OR + description: An operator to allow boolean inspection between multiple fields. + example: AND + value: + oneOf: + - type: array + description: Add mutiple filters. + title: multiple filter search request + items: + "$ref": "#/components/schemas/multiple_filter_search_request" + - type: array + description: Add a single filter field. + title: single filter search request + items: + "$ref": "#/components/schemas/single_filter_search_request" + news_item: + title: News Item + type: object + x-tags: + - News + description: A News Item is a content type in Intercom enabling you to announce + product updates, company news, promotions, events and more with your customers. + properties: + type: + type: string + description: The type of object. + enum: + - news-item + example: news-item + id: + type: string + description: The unique identifier for the news item which is given by Intercom. + example: '141' + workspace_id: + type: string + description: The id of the workspace which the news item belongs to. + example: t74hdn32 + title: + type: string + description: The title of the news item. + example: 'New feature: News Items' + body: + type: string + description: The news item body, which may contain HTML. + example: We are excited to announce the launch of News Items, a new content + type in Intercom enabling you to announce product updates, company news, + promotions, events and more with your customers. + sender_id: + type: integer + description: The id of the sender of the news item. Must be a teammate on + the workspace. + example: 123 + state: + type: string + description: News items will not be visible to your users in the assigned + newsfeeds until they are set live. + enum: + - draft + - live + example: live + newsfeed_assignments: + type: array + description: A list of newsfeed_assignments to assign to the specified newsfeed. + items: + "$ref": "#/components/schemas/newsfeed_assignment" + labels: + type: array + description: Label names displayed to users to categorize the news item. + items: + type: string + nullable: true + description: The label name. + example: Product Update + cover_image_url: + type: string + format: uri + nullable: true + description: URL of the image used as cover. Must have .jpg or .png extension. + example: https://example.com/cover.jpg + reactions: + type: array + description: Ordered list of emoji reactions to the news item. When empty, + reactions are disabled. + items: + type: string + nullable: true + description: The emoji reaction to the news item. + example: "\U0001F44D" + deliver_silently: + type: boolean + description: When set to true, the news item will appear in the messenger + newsfeed without showing a notification badge. + example: true + created_at: + type: integer + format: timestamp + description: Timestamp for when the news item was created. + example: 1610589632 + updated_at: + type: integer + format: timestamp + description: Timestamp for when the news item was last updated. + example: 1610589632 + news_item_request: + description: A News Item is a content type in Intercom enabling you to announce + product updates, company news, promotions, events and more with your customers. + type: object + title: Create News Item Request + properties: + title: + type: string + description: The title of the news item. + example: Halloween is here! + body: + type: string + description: The news item body, which may contain HTML. + example: "New costumes in store for this spooky season
" + sender_id: + type: integer + description: The id of the sender of the news item. Must be a teammate on + the workspace. + example: 123 + state: + type: string + description: News items will not be visible to your users in the assigned + newsfeeds until they are set live. + enum: + - draft + - live + example: live + deliver_silently: + type: boolean + description: When set to `true`, the news item will appear in the messenger + newsfeed without showing a notification badge. + example: true + labels: + type: array + description: Label names displayed to users to categorize the news item. + items: + type: string + example: + - Product + - Update + - New + reactions: + type: array + description: Ordered list of emoji reactions to the news item. When empty, + reactions are disabled. + items: + type: string + nullable: true + example: + - "\U0001F606" + - "\U0001F605" + newsfeed_assignments: + type: array + description: A list of newsfeed_assignments to assign to the specified newsfeed. + items: + "$ref": "#/components/schemas/newsfeed_assignment" + required: + - title + - sender_id + newsfeed: + title: Newsfeed + type: object + x-tags: + - News + description: | + A newsfeed is a collection of news items, targeted to a specific audience. + + Newsfeeds currently cannot be edited through the API, please refer to [this article](https://www.intercom.com/help/en/articles/6362267-getting-started-with-news) to set up your newsfeeds in Intercom. + properties: + id: + type: string + description: The unique identifier for the newsfeed which is given by Intercom. + example: '12312' + type: + type: string + description: The type of object. + enum: + - newsfeed + example: newsfeed + name: + type: string + description: The name of the newsfeed. This name will never be visible to + your users. + example: My Newsfeed + created_at: + type: integer + format: timestamp + description: Timestamp for when the newsfeed was created. + example: 1674917488 + updated_at: + type: integer + format: timestamp + description: Timestamp for when the newsfeed was last updated. + example: 1674917488 + newsfeed_assignment: + title: Newsfeed Assignment + type: object + x-tags: + - News + description: Assigns a news item to a newsfeed. + properties: + newsfeed_id: + type: integer + description: The unique identifier for the newsfeed which is given by Intercom. + Publish dates cannot be in the future, to schedule news items use the + dedicated feature in app (see this article). + example: 198313 + published_at: + type: integer + format: timestamp + description: Publish date of the news item on the newsfeed, use this field + if you want to set a publish date in the past (e.g. when importing existing + news items). On write, this field will be ignored if the news item state + is "draft". + example: 1674917488 + note: + title: Note + type: object + x-tags: + - Notes + description: Notes allow you to annotate and comment on your contacts. + properties: + type: + type: string + description: String representing the object's type. Always has the value + `note`. + example: note + id: + type: string + description: The id of the note. + example: '17495962' + created_at: + type: integer + format: timestamp + description: The time the note was created. + example: 1674589321 + contact: + type: object + description: Represents the contact that the note was created about. + nullable: true + properties: + type: + type: string + description: String representing the object's type. Always has the value + `contact`. + id: + type: string + description: The id of the contact. + example: 214656d0c743eafcfde7f248 + author: + "$ref": "#/components/schemas/admin" + description: Optional. Represents the Admin that created the note. + body: + type: string + description: The body text of the note. + example: "Text for the note.
" + note_list: + title: Paginated Response + type: object + description: A paginated list of notes associated with a contact. + properties: + type: + type: string + description: String representing the object's type. Always has the value + `list`. + example: list + data: + type: array + description: An array of notes. + items: + "$ref": "#/components/schemas/note" + total_count: + type: integer + description: A count of the total number of notes. + example: 1 + pages: + "$ref": "#/components/schemas/cursor_pages" + open_conversation_request: + title: Open Conversation Request + type: object + description: Payload of the request to open a conversation + properties: + message_type: + type: string + enum: + - open + example: open + admin_id: + type: string + description: The id of the admin who is performing the action. + example: '5017690' + required: + - message_type + - admin_id + pages_link: + title: Pagination Object + type: object + description: | + The majority of list resources in the API are paginated to allow clients to traverse data over multiple requests. + + Their responses are likely to contain a pages object that hosts pagination links which a client can use to paginate through the data without having to construct a query. The link relations for the pages field are as follows. + properties: + type: + type: string + example: pages + enum: + - pages + page: + type: integer + example: 1 + next: + type: string + format: uri + description: A link to the next page of results. A response that does not + contain a next link does not have further data to fetch. + nullable: true + per_page: + type: integer + example: 50 + total_pages: + type: integer + example: 1 + paginated_response: + title: Paginated Response + type: object + description: Paginated Response + properties: + type: + type: string + description: The type of object + enum: + - list + - conversation.list + example: list + pages: + "$ref": "#/components/schemas/cursor_pages" + total_count: + type: integer + description: A count of the total number of objects. + example: 1 + data: + type: array + description: An array of Objects + items: + anyOf: + - "$ref": "#/components/schemas/news_item" + - "$ref": "#/components/schemas/newsfeed" + part_attachment: + title: Part attachment + type: object + description: The file attached to a part + properties: + type: + type: string + description: The type of attachment + example: upload + name: + type: string + description: The name of the attachment + example: example.png + url: + type: string + description: The URL of the attachment + example: https://picsum.photos/200/300 + content_type: + type: string + description: The content type of the attachment + example: image/png + filesize: + type: integer + description: The size of the attachment + example: 100 + width: + type: integer + description: The width of the attachment + example: 100 + height: + type: integer + description: The height of the attachment + example: 100 + phone_switch: + title: Phone Switch + type: object + description: Phone Switch Response + nullable: true + properties: + type: + type: string + description: '' + enum: + - phone_call_redirect + default: phone_call_redirect + example: phone_call_redirect + phone: + type: string + description: Phone number in E.164 format, that has received the SMS to + continue the conversation in the Messenger. + example: "+1 1234567890" + redact_conversation_request: + oneOf: + - title: Redact Conversation Part Request + type: object + description: Payload of the request to redact a conversation part + properties: + type: + type: string + enum: + - conversation_part + description: The type of resource being redacted. + example: conversation_part + conversation_id: + type: string + description: The id of the conversation. + example: '19894788788' + conversation_part_id: + type: string + description: The id of the conversation_part. + example: '19381789428' + required: + - type + - conversation_id + - conversation_part_id + - title: Redact Conversation Source Request + type: object + description: Payload of the request to redact a conversation source + properties: + type: + type: string + enum: + - source + description: The type of resource being redacted. + example: source + conversation_id: + type: string + description: The id of the conversation. + example: '19894788788' + source_id: + type: string + description: The id of the source. + example: '19894781231' + required: + - type + - conversation_id + - source_id + reference: + title: Reference + type: object + description: reference to another object + properties: + type: + type: string + description: '' + example: contact + id: + type: string + nullable: true + description: '' + example: 1a2b3c + reply_conversation_request: + oneOf: + - "$ref": "#/components/schemas/contact_reply_conversation_request" + - "$ref": "#/components/schemas/admin_reply_conversation_request" + search_request: + description: Search using Intercoms Search APIs. + type: object + title: Search data + properties: + query: + oneOf: + - "$ref": "#/components/schemas/single_filter_search_request" + title: Single filter search request + - "$ref": "#/components/schemas/multiple_filter_search_request" + title: multiple filter search request + pagination: + "$ref": "#/components/schemas/starting_after_paging" + required: + - query + segment: + title: Segment + type: object + x-tags: + - Segments + description: A segment is a group of your contacts defined by the rules that + you set. + properties: + type: + type: string + description: The type of object. + enum: + - segment + example: segment + id: + type: string + description: The unique identifier representing the segment. + example: 56203d253cba154d39010062 + name: + type: string + description: The name of the segment. + example: Active + created_at: + type: integer + description: The time the segment was created. + example: 1394621988 + updated_at: + type: integer + description: The time the segment was updated. + example: 1394622004 + person_type: + type: string + description: 'Type of the contact: contact (lead) or user.' + enum: + - contact + - user + example: contact + count: + type: integer + description: The number of items in the user segment. It's returned when + `include_count=true` is included in the request. + example: 3 + nullable: true + segment_list: + title: Segment List + type: object + description: This will return a list of Segment Objects. The result may also + have a pages object if the response is paginated. + properties: + type: + type: string + description: The type of the object + enum: + - segment.list + example: segment.list + segments: + type: array + description: A list of Segment objects + items: + "$ref": "#/components/schemas/segment" + pages: + type: object + description: A pagination object, which may be empty, indicating no further + pages to fetch. + single_filter_search_request: + title: Single Filter Search Request + description: Search using Intercoms Search APIs with a single filter. + type: object + properties: + field: + type: string + description: The accepted field that you want to search on. + example: created_at + operator: + type: string + enum: + - "=" + - "!=" + - IN + - NIN + - "<" + - ">" + - "~" + - "!~" + - "^" + - "$" + description: The accepted operators you can use to define how you want to + search for the value. + example: ">" + value: + oneOf: + - type: string + - type: integer + - type: array + items: + oneOf: + - type: string + - type: integer + description: The value that you want to search on. + example: '73732934' + nullable: true + sla_applied: + title: Applied SLA + type: object + nullable: true + description: | + 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. + properties: + type: + type: string + description: object type + example: conversation_sla_summary + sla_name: + type: string + description: The name of the SLA as given by the teammate when it was created. + example: '' + sla_status: + type: string + enum: + - hit + - missed + - cancelled + - active + description: |- + SLA statuses: + - `hit`: If there’s at least one hit event in the underlying sla_events table, and no “missed” or “canceled” events for the conversation. + - `missed`: If there are any missed sla_events for the conversation and no canceled events. If there’s even a single missed sla event, the status will always be missed. A missed status is not applied when the SLA expires, only the next time a teammate replies. + - `active`: An SLA has been applied to a conversation, but has not yet been fulfilled. SLA status is active only if there are no “hit, “missed”, or “canceled” events. + example: hit + snooze_conversation_request: + title: Snooze Conversation Request + type: object + description: Payload of the request to snooze a conversation + properties: + message_type: + type: string + enum: + - snoozed + example: snoozed + admin_id: + type: string + description: The id of the admin who is performing the action. + example: '5017691' + snoozed_until: + type: integer + format: timestamp + description: The time you want the conversation to reopen. + example: 1673609604 + required: + - message_type + - admin_id + - snoozed_until + social_profile: + title: Social Profile + type: object + description: A Social Profile allows you to label your contacts, companies, + and conversations and list them using that Social Profile. + properties: + type: + type: string + description: value is "social_profile" + example: social_profile + name: + type: string + description: The name of the Social media profile + example: Facebook + url: + type: string + format: uri + description: The name of the Social media profile + example: http://twitter.com/th1sland + starting_after_paging: + title: 'Pagination: Starting After' + type: object + nullable: true + properties: + per_page: + type: integer + description: The number of results to fetch per page. + example: 2 + starting_after: + type: string + description: The cursor to use in the next request to get the next page + of results. + nullable: true + example: your-cursor-from-response + subscription_type: + title: Subscription Types + type: object + x-tags: + - Subscription Types + description: A subscription type lets customers easily opt out of non-essential + communications without missing what's important to them. + properties: + type: + type: string + description: The type of the object - subscription + example: subscription + id: + type: string + description: The unique identifier representing the subscription type. + example: '123456' + state: + type: string + description: The state of the subscription type. + enum: + - live + - draft + - archived + example: live + default_translation: + "$ref": "#/components/schemas/translation" + translations: + type: array + description: An array of translations objects with the localised version + of the subscription type in each available locale within your translation + settings. + items: + "$ref": "#/components/schemas/translation" + consent_type: + type: string + description: Describes the type of consent. + enum: + - opt_out + - opt_in + example: opt_in + content_types: + type: array + description: The message types that this subscription supports - can contain + `email` or `sms_message`. + items: + type: string + enum: + - email + - sms_message + example: email + subscription_type_list: + title: Subscription Types + type: object + description: A list of subscription type objects. + properties: + type: + type: string + description: The type of the object + enum: + - list + example: list + data: + type: array + description: A list of subscription type objects associated with the workspace + . + items: + "$ref": "#/components/schemas/subscription_type" + tag: + title: Tag + type: object + x-tags: + - Tags + description: A tag allows you to label your contacts, companies, and conversations + and list them using that tag. + properties: + type: + type: string + description: value is "tag" + example: tag + id: + type: string + description: The id of the tag + example: '123456' + name: + type: string + description: The name of the tag + example: Test tag + applied_at: + type: integer + format: date-time + description: The time when the tag was applied to the object + example: 1663597223 + applied_by: + "$ref": "#/components/schemas/reference" + tag_company_request: + description: You can tag a single company or a list of companies. + type: object + title: Tag Company Request Payload + properties: + name: + type: string + description: The name of the tag, which will be created if not found. + example: Independent + companies: + type: array + items: + properties: + id: + type: string + description: The Intercom defined id representing the company. + example: 531ee472cce572a6ec000006 + company_id: + type: string + description: The company id you have defined for the company. + example: '6' + description: The id or company_id of the company can be passed as input + parameters. + required: + - name + - companies + tag_list: + title: Tags + type: object + description: A list of tags objects in the workspace. + properties: + type: + type: string + description: The type of the object + enum: + - list + example: list + data: + type: array + description: A list of tags objects associated with the workspace . + items: + "$ref": "#/components/schemas/tag" + tag_multiple_users_request: + description: You can tag a list of users. + type: object + title: Tag Users Request Payload + properties: + name: + type: string + description: The name of the tag, which will be created if not found. + example: Independent + users: + type: array + items: + properties: + id: + type: string + description: The Intercom defined id representing the user. + example: 5f7f0d217289f8d2f4262080 + required: + - name + - users + tags: + title: Tags + type: object + description: A list of tags objects associated with a conversation + properties: + type: + type: string + description: The type of the object + enum: + - tag.list + example: tag.list + tags: + type: array + description: A list of tags objects associated with the conversation. + items: + "$ref": "#/components/schemas/tag" + team: + title: Team + type: object + x-tags: + - Teams + description: Teams are groups of admins in Intercom. + properties: + type: + type: string + description: Value is always "team" + example: team + id: + type: string + description: The id of the team + example: '814865' + name: + type: string + description: The name of the team + example: Example Team + admin_ids: + type: array + description: The list of admin IDs that are a part of the team. + example: + - 493881 + items: + type: integer + admin_priority_level: + "$ref": "#/components/schemas/admin_priority_level" + team_list: + title: Team List + type: object + description: This will return a list of team objects for the App. + properties: + type: + type: string + description: The type of the object + enum: + - team.list + example: team.list + teams: + type: array + description: A list of team objects + items: + "$ref": "#/components/schemas/team" + team_priority_level: + title: Team Priority Level + type: object + nullable: true + description: Admin priority levels for teams + properties: + primary_team_ids: + type: array + description: The primary team ids for the team + nullable: true + example: + - 814865 + items: + type: integer + secondary_team_ids: + type: array + description: The secondary team ids for the team + nullable: true + example: + - 493881 + items: + type: integer + ticket: + title: Ticket + type: object + x-tags: + - Tickets + description: Tickets are how you track requests from your users. + nullable: true + properties: + type: + type: string + description: Always ticket + enum: + - ticket + default: ticket + example: ticket + id: + type: string + description: The unique identifier for the ticket which is given by Intercom. + example: '1295' + ticket_id: + type: string + description: The ID of the Ticket used in the Intercom Inbox and Messenger. + Do not use ticket_id for API queries. + example: '1390' + category: + type: string + description: Category of the Ticket. + enum: + - Customer + - Back-office + - Tracker + example: Customer + ticket_attributes: + "$ref": "#/components/schemas/ticket_custom_attributes" + ticket_state: + "$ref": "#/components/schemas/ticket_state" + ticket_type: + "$ref": "#/components/schemas/ticket_type" + contacts: + "$ref": "#/components/schemas/ticket_contacts" + admin_assignee_id: + type: string + description: The id representing the admin assigned to the ticket. + example: '1295' + team_assignee_id: + type: string + description: The id representing the team assigned to the ticket. + example: '1295' + created_at: + type: integer + format: date-time + description: The time the ticket was created as a UTC Unix timestamp. + example: 1663597223 + updated_at: + type: integer + format: date-time + description: The last time the ticket was updated as a UTC Unix timestamp. + example: 1663597260 + open: + type: boolean + description: Whether or not the ticket is open. If false, the ticket is + closed. + example: true + snoozed_until: + type: integer + format: date-time + description: The time the ticket will be snoozed until as a UTC Unix timestamp. + If null, the ticket is not currently snoozed. + example: 1663597260 + linked_objects: + "$ref": "#/components/schemas/linked_object_list" + ticket_parts: + "$ref": "#/components/schemas/ticket_parts" + is_shared: + type: boolean + description: Whether or not the ticket is shared with the customer. + example: true + ticket_contacts: + title: Contacts + type: object + x-tags: + - Tickets + description: The list of contacts affected by a ticket. + properties: + type: + type: string + description: always contact.list + enum: + - contact.list + example: contact.list + contacts: + type: array + description: The list of contacts affected by this ticket. + items: + "$ref": "#/components/schemas/contact_reference" + ticket_custom_attributes: + title: Ticket Attributes + type: object + description: 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_`. + additionalProperties: + anyOf: + - type: string + nullable: true + - type: number + - type: boolean + - type: array + - "$ref": "#/components/schemas/file_attribute" + example: + _default_title_: Found a bug + _default_description_: The button's not working + ticket_list: + title: Ticket List + type: object + description: Tickets are how you track requests from your users. + properties: + type: + type: string + description: Always ticket.list + enum: + - ticket.list + example: ticket.list + tickets: + type: array + description: The list of ticket objects + items: + "$ref": "#/components/schemas/ticket" + total_count: + type: integer + description: A count of the total number of objects. + example: 12345 + pages: + "$ref": "#/components/schemas/cursor_pages" + ticket_part: + title: Ticket Part + type: object + x-tags: + - Tickets + description: A Ticket Part represents a message in the ticket. + properties: + type: + type: string + description: Always ticket_part + example: ticket_part + id: + type: string + description: The id representing the ticket part. + example: '3' + part_type: + type: string + description: The type of ticket part. + example: comment + body: + type: string + nullable: true + description: The message body, which may contain HTML. + example: "Okay!
" + previous_ticket_state: + type: string + enum: + - submitted + - in_progress + - waiting_on_customer + - resolved + description: The previous state of the ticket. + example: submitted + ticket_state: + type: string + enum: + - submitted + - in_progress + - waiting_on_customer + - resolved + description: The state of the ticket. + example: submitted + created_at: + type: integer + format: date-time + description: The time the ticket part was created. + example: 1663597223 + updated_at: + type: integer + format: date-time + description: The last time the ticket part was updated. + example: 1663597260 + assigned_to: + "$ref": "#/components/schemas/reference" + nullable: true + description: The id of the admin that was assigned the ticket by this ticket_part + (null if there has been no change in assignment.) + author: + "$ref": "#/components/schemas/ticket_part_author" + attachments: + title: Ticket part attachments + type: array + description: A list of attachments for the part. + items: + "$ref": "#/components/schemas/part_attachment" + external_id: + type: string + nullable: true + description: The external id of the ticket part + example: abcd1234 + redacted: + type: boolean + description: Whether or not the ticket part has been redacted. + example: false + ticket_part_author: + title: Ticket part author + type: object + description: The author that wrote or triggered the part. Can be a bot, admin, + team or user. + properties: + type: + type: string + description: The type of the author + example: admin + enum: + - admin + - bot + - team + - user + id: + type: string + description: The id of the author + example: '274' + name: + type: string + nullable: true + description: The name of the author + example: Operator + email: + type: string + format: email + description: The email of the author + example: operator+abcd1234@intercom.io + ticket_parts: + title: Ticket Parts + type: object + description: A list of Ticket Part objects for each note and event in the ticket. + There is a limit of 500 parts. + properties: + type: + type: string + description: '' + enum: + - ticket_part.list + example: ticket_part.list + ticket_parts: + title: Tickt Parts + type: array + description: A list of Ticket Part objects for each ticket. There is a limit + of 500 parts. + items: + "$ref": "#/components/schemas/ticket_part" + total_count: + type: integer + description: '' + example: 2 + ticket_reply: + title: A Ticket Part representing a note, comment, or quick_reply on a ticket + type: object + description: A Ticket Part representing a note, comment, or quick_reply on a + ticket + properties: + type: + type: string + description: Always ticket_part + example: ticket_part + enum: + - ticket_part + id: + type: string + description: The id representing the part. + example: '3' + part_type: + type: string + description: Type of the part + example: note + enum: + - note + - comment + - quick_reply + body: + type: string + nullable: true + description: The message body, which may contain HTML. + example: "Okay!
" + created_at: + type: integer + format: date-time + description: The time the note was created. + example: 1663597223 + updated_at: + type: integer + format: date-time + description: The last time the note was updated. + example: 1663597260 + author: + "$ref": "#/components/schemas/ticket_part_author" + attachments: + title: Ticket part attachments + type: array + description: A list of attachments for the part. + items: + "$ref": "#/components/schemas/part_attachment" + redacted: + type: boolean + description: Whether or not the ticket part has been redacted. + example: false + ticket_request_custom_attributes: + title: Ticket Attributes + type: object + description: 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`). + additionalProperties: + anyOf: + - type: string + nullable: true + - type: number + - type: boolean + - type: array + example: + _default_title_: Found a bug + _default_description_: The button is not working + ticket_state: + title: Ticket State + type: object + x-tags: + - Tickets + description: A ticket state, used to define the state of a ticket. + nullable: true + properties: + type: + type: string + description: String representing the object's type. Always has the value + `ticket_state`. + example: ticket_state + id: + type: string + description: The id of the ticket state + example: '12' + category: + type: string + description: The category of the ticket state + example: in_progress + enum: + - submitted + - in_progress + - waiting_on_customer + - resolved + internal_label: + type: string + description: The state the ticket is currently in, in a human readable form + - visible in Intercom + example: With Dev Team + external_label: + type: string + description: The state the ticket is currently in, in a human readable form + - visible to customers, in the messenger, email and tickets portal. + example: In Progress + ticket_state_detailed: + title: Ticket State + type: object + x-tags: + - Tickets + description: A ticket state, used to define the state of a ticket. + nullable: true + properties: + type: + type: string + description: String representing the object's type. Always has the value + `ticket_state`. + example: ticket_state + id: + type: string + description: The id of the ticket state + example: '12' + category: + type: string + description: The category of the ticket state + example: in_progress + enum: + - submitted + - in_progress + - waiting_on_customer + - resolved + internal_label: + type: string + description: The state the ticket is currently in, in a human readable form + - visible in Intercom + example: With Dev Team + external_label: + type: string + description: The state the ticket is currently in, in a human readable form + - visible to customers, in the messenger, email and tickets portal. + example: In Progress + archived: + type: boolean + description: Whether the ticket state is archived + example: false + ticket_types: + type: object + description: A list of ticket types associated with a given ticket state. + properties: + type: + type: string + description: String representing the object's type. Always has the value + `list`. + example: list + data: + type: array + description: A list of ticket type attributes associated with a given + ticket type. + items: + "$ref": "#/components/schemas/ticket_type" + ticket_state_list: + title: Ticket States + type: object + description: A list of ticket states associated with a given ticket type. + properties: + type: + type: string + description: String representing the object's type. Always has the value + `list`. + example: list + data: + type: array + description: A list of ticket states associated with a given ticket type. + items: + "$ref": "#/components/schemas/ticket_state_detailed" + ticket_type: + title: Ticket Type + type: object + x-tags: + - Tickets + description: A ticket type, used to define the data fields to be captured in + a ticket. + nullable: true + properties: + type: + type: string + description: String representing the object's type. Always has the value + `ticket_type`. + example: ticket_type + id: + type: string + description: The id representing the ticket type. + example: '1295' + category: + type: string + description: Category of the Ticket Type. + enum: + - Customer + - Back-office + - Tracker + example: Customer + name: + type: string + description: The name of the ticket type + example: Bug + description: + type: string + description: The description of the ticket type + example: A bug that has been reported. + icon: + type: string + description: The icon of the ticket type + example: "\U0001F41E" + workspace_id: + type: string + description: The id of the workspace that the ticket type belongs to. + example: ecahpwf5 + ticket_type_attributes: + "$ref": "#/components/schemas/ticket_type_attribute_list" + ticket_states: + title: Ticket States + type: object + description: A list of ticket states associated with a given ticket type. + properties: + type: + type: string + description: String representing the object's type. Always has the value + `list`. + example: list + data: + type: array + description: A list of ticket states associated with a given ticket + type. + items: + "$ref": "#/components/schemas/ticket_state" + archived: + type: boolean + description: Whether the ticket type is archived or not. + example: false + created_at: + type: integer + format: timestamp + description: The date and time the ticket type was created. + updated_at: + type: integer + format: timestamp + description: The date and time the ticket type was last updated. + ticket_type_attribute: + title: Ticket Type Attribute + type: object + description: Ticket type attribute, used to define each data field to be captured + in a ticket. + nullable: true + properties: + type: + type: string + description: String representing the object's type. Always has the value + `ticket_type_attribute`. + example: ticket_type_attribute + id: + type: string + description: The id representing the ticket type attribute. + example: '1' + workspace_id: + type: string + description: The id of the workspace that the ticket type attribute belongs + to. + example: ecahpwf5 + name: + type: string + description: The name of the ticket type attribute + example: Title + description: + type: string + description: The description of the ticket type attribute + example: Bug title. + data_type: + type: string + description: 'The type of the data attribute (allowed values: "string list + integer decimal boolean datetime files")' + example: string + input_options: + type: object + description: Input options for the attribute + example: 'multiline: true' + order: + type: integer + description: The order of the attribute against other attributes + example: 1 + required_to_create: + type: boolean + description: Whether the attribute is required or not for teammates. + default: false + example: false + required_to_create_for_contacts: + type: boolean + description: Whether the attribute is required or not for contacts. + default: false + example: false + visible_on_create: + type: boolean + description: Whether the attribute is visible or not to teammates. + default: true + example: false + visible_to_contacts: + type: boolean + description: Whether the attribute is visible or not to contacts. + default: true + example: false + default: + type: boolean + description: Whether the attribute is built in or not. + example: true + ticket_type_id: + type: integer + description: The id of the ticket type that the attribute belongs to. + example: 42 + archived: + type: boolean + description: Whether the ticket type attribute is archived or not. + example: false + created_at: + type: integer + format: timestamp + description: The date and time the ticket type attribute was created. + updated_at: + type: integer + format: timestamp + description: The date and time the ticket type attribute was last updated. + ticket_type_attribute_list: + title: Ticket Type Attributes + type: object + description: A list of attributes associated with a given ticket type. + properties: + type: + type: string + description: String representing the object's type. Always has the value + `ticket_type_attributes.list`. + ticket_type_attributes: + type: array + description: A list of ticket type attributes associated with a given ticket + type. + items: + "$ref": "#/components/schemas/ticket_type_attribute" + ticket_type_list: + title: Ticket Types + type: object + description: A list of ticket types associated with a given workspace. + properties: + type: + type: string + description: String representing the object's type. Always has the value + `list`. + example: list + data: + type: array + description: A list of ticket_types associated with a given workspace. + items: + "$ref": "#/components/schemas/ticket_type" + translation: + title: Translation + type: object + description: A translation object contains the localised details of a subscription + type. + properties: + name: + type: string + description: The localised name of the subscription type. + example: Announcements + description: + type: string + description: The localised description of the subscription type. + example: Offers, product and feature announcements + locale: + type: string + description: The two character identifier for the language of the translation + object. + example: en + untag_company_request: + description: You can tag a single company or a list of companies. + type: object + title: Untag Company Request Payload + properties: + name: + type: string + description: The name of the tag which will be untagged from the company + example: Independent + companies: + type: array + items: + properties: + id: + type: string + description: The Intercom defined id representing the company. + example: 531ee472cce572a6ec000006 + company_id: + type: string + description: The company id you have defined for the company. + example: '6' + untag: + type: boolean + description: Always set to true + example: 'true' + description: The id or company_id of the company can be passed as input + parameters. + required: + - name + - companies + update_article_request: + description: You can Update an Article + type: object + title: Update Article Request Payload + nullable: true + properties: + title: + type: string + description: The title of the article.For multilingual articles, this will + be the title of the default language's content. + example: Thanks for everything + description: + type: string + description: The description of the article. For multilingual articles, + this will be the description of the default language's content. + example: Description of the Article + body: + type: string + description: The content of the article. For multilingual articles, this + will be the body of the default language's content. + example: "This is the body in html
" + author_id: + type: integer + description: The id of the author of the article. For multilingual articles, + this will be the id of the author of the default language's content. Must + be a teammate on the help center's workspace. + example: 1295 + state: + type: string + description: Whether the article will be `published` or will be a `draft`. + Defaults to draft. For multilingual articles, this will be the state of + the default language's content. + enum: + - published + - draft + example: draft + parent_id: + type: string + description: The id of the article's parent collection or section. An article + without this field stands alone. + example: '18' + parent_type: + type: string + description: The type of parent, which can either be a `collection` or `section`. + example: collection + translated_content: + "$ref": "#/components/schemas/article_translated_content" + update_collection_request: + description: You can update a collection + type: object + title: Update Collection Request Payload + properties: + name: + type: string + description: The name of the collection. For multilingual collections, this + will be the name of the default language's content. + example: collection 51 + description: + type: string + description: The description of the collection. For multilingual collections, + this will be the description of the default language's content. + example: English description + translated_content: + nullable: true + "$ref": "#/components/schemas/group_translated_content" + parent_id: + type: string + nullable: true + description: The id of the parent collection. If `null` then it will be + updated as the first level collection. + example: '6871118' + update_contact_request: + description: You can update a contact + type: object + title: Update Contact Request Payload + properties: + role: + type: string + description: The role of the contact. + external_id: + type: string + description: A unique identifier for the contact which is given to Intercom + email: + type: string + description: The contacts email + example: jdoe@example.com + phone: + type: string + nullable: true + description: The contacts phone + example: "+353871234567" + name: + type: string + nullable: true + description: The contacts name + example: John Doe + avatar: + type: string + nullable: true + description: An image URL containing the avatar of a contact + example: https://www.example.com/avatar_image.jpg + signed_up_at: + type: integer + format: date-time + nullable: true + description: The time specified for when a contact signed up + example: 1571672154 + last_seen_at: + type: integer + format: date-time + nullable: true + description: The time when the contact was last seen (either where the Intercom + Messenger was installed or when specified manually) + example: 1571672154 + owner_id: + type: integer + nullable: true + description: The id of an admin that has been assigned account ownership + of the contact + example: 123 + unsubscribed_from_emails: + type: boolean + nullable: true + description: Whether the contact is unsubscribed from emails + example: true + custom_attributes: + type: object + nullable: true + description: The custom attributes which are set for the contact + update_content_import_source_request: + title: Create Content Import Source Payload + type: object + description: You can modify a Content Import Source of your Fin Content Library. + nullable: false + properties: + sync_behavior: + type: string + description: If you intend to create or update External Pages via the API, + this should be set to `api`. You can not change the value to or from api. + enum: + - api + - automated + - manual + example: api + status: + type: string + description: The status of the content import source. + enum: + - active + - deactivated + default: active + example: active + url: + type: string + description: The URL of the content import source. This may only be different + from the existing value if the sync behavior is API. + example: https://help.example.com + required: + - sync_behavior + - url + update_conversation_request: + title: Update Conversation Request + type: object + description: Payload of the request to update a conversation + properties: + read: + type: boolean + description: Mark a conversation as read within Intercom. + example: true + custom_attributes: + "$ref": "#/components/schemas/custom_attributes" + update_data_attribute_request: + description: '' + type: object + title: Update Data Attribute Request + properties: + archived: + type: boolean + description: Whether the attribute is to be archived or not. + example: false + description: + type: string + description: The readable description you see in the UI for the attribute. + example: My Data Attribute Description + options: + type: array + description: To create list attributes. Provide a set of hashes with `value` + as the key of the options you want to make. `data_type` must be `string`. + items: + type: string + example: + - option1 + - option2 + messenger_writable: + type: boolean + description: Can this attribute be updated by the Messenger + example: false + update_external_page_request: + title: Update External Page Payload + type: object + description: You can update an External Page in your Fin Content Library. + nullable: false + properties: + title: + type: string + description: The title of the external page. + example: Getting started with... + html: + type: string + description: The body of the external page in HTML. + example: "Hello world!
" + url: + type: string + description: The URL of the external page. This will be used by Fin to link + end users to the page it based its answer on. + example: https://help.example.com/en/articles/1234-getting-started + fin_availability: + type: boolean + description: Whether the external page should be used to answer questions + by Fin. + default: true + example: true + locale: + type: string + description: Always en + enum: + - en + default: en + example: en + source_id: + type: integer + description: The unique identifier for the source of the external page which + was given by Intercom. Every external page must be associated with a Content + Import Source which represents the place it comes from and from which + it inherits a default audience (configured in the UI). For a new source, + make a POST request to the Content Import Source endpoint and an ID for + the source will be returned in the response. + example: 1234 + external_id: + type: string + description: The identifier for the external page which was given by the + source. Must be unique for the source. + example: '5678' + required: + - title + - html + - url + - locale + - source_id + update_ticket_request: + description: You can update a Ticket + type: object + title: Update Ticket Request Payload + properties: + ticket_attributes: + type: object + description: The attributes set on the ticket. + example: + _default_title_: example + _default_description_: having a problem + ticket_state_id: + type: string + description: The ID of the ticket state associated with the ticket type. + example: '123' + open: + type: boolean + description: Specify if a ticket is open. Set to false to close a ticket. + Closing a ticket will also unsnooze it. + example: true + is_shared: + type: boolean + description: Specify whether the ticket is visible to users. + example: true + snoozed_until: + type: integer + format: timestamp + description: The time you want the ticket to reopen. + example: 1673609604 + assignment: + type: object + properties: + admin_id: + type: string + description: The ID of the admin performing the action. + example: '123' + assignee_id: + type: string + description: The ID of the admin or team to which the ticket is assigned. + Set this 0 to unassign it. + example: '123' + update_ticket_type_attribute_request: + description: You can update a Ticket Type Attribute + type: object + title: Update Ticket Type Attribute Request Payload + properties: + name: + type: string + description: The name of the ticket type attribute + example: Bug Priority + description: + type: string + description: The description of the attribute presented to the teammate + or contact + example: Priority level of the bug + required_to_create: + type: boolean + description: Whether the attribute is required to be filled in when teammates + are creating the ticket in Inbox. + default: false + example: false + required_to_create_for_contacts: + type: boolean + description: Whether the attribute is required to be filled in when contacts + are creating the ticket in Messenger. + default: false + example: false + visible_on_create: + type: boolean + description: Whether the attribute is visible to teammates when creating + a ticket in Inbox. + default: true + example: true + visible_to_contacts: + type: boolean + description: Whether the attribute is visible to contacts when creating + a ticket in Messenger. + default: true + example: true + multiline: + type: boolean + description: Whether the attribute allows multiple lines of text (only applicable + to string attributes) + example: false + list_items: + type: string + description: A comma delimited list of items for the attribute value (only + applicable to list attributes) + example: Low Priority,Medium Priority,High Priority + allow_multiple_values: + type: boolean + description: Whether the attribute allows multiple files to be attached + to it (only applicable to file attributes) + example: false + archived: + type: boolean + description: Whether the attribute should be archived and not shown during + creation of the ticket (it will still be present on previously created + tickets) + example: false + update_ticket_type_request: + description: | + The request payload for updating a ticket type. + You can copy the `icon` property for your ticket type from [Twemoji Cheatsheet](https://twemoji-cheatsheet.vercel.app/) + type: object + title: Update Ticket Type Request Payload + nullable: true + properties: + name: + type: string + description: The name of the ticket type. + example: Bug + description: + type: string + description: The description of the ticket type. + example: A bug has been occured + category: + type: string + description: Category of the Ticket Type. + enum: + - Customer + - Back-office + - Tracker + example: Customer + icon: + type: string + description: The icon of the ticket type. + example: "\U0001F41E" + default: "\U0001F39F️" + archived: + type: boolean + description: The archived status of the ticket type. + example: false + is_internal: + type: boolean + description: Whether the tickets associated with this ticket type are intended + for internal use only or will be shared with customers. This is currently + a limited attribute. + example: false + default: false + update_visitor_request: + description: Update an existing visitor. + type: object + title: Update Visitor Request Payload + properties: + id: + type: string + description: A unique identified for the visitor which is given by Intercom. + example: 8a88a590-e + user_id: + type: string + description: A unique identified for the visitor which is given by you. + example: '123' + name: + type: string + description: The visitor's name. + example: Christian Bale + custom_attributes: + type: object + description: The custom attributes which are set for the visitor. + additionalProperties: + type: string + example: + paid_subscriber: true + monthly_spend: 155.5 + team_mates: 9 + anyOf: + - required: + - id + - required: + - user_id + visitor: + title: Visitor + type: object + description: Visitors are useful for representing anonymous people that have + not yet been identified. They usually represent website visitors. Visitors + are not visible in Intercom platform. The Visitors resource provides methods + to fetch, update, convert and delete. + nullable: true + properties: + type: + type: string + description: Value is 'visitor' + default: visitor + example: visitor + id: + type: string + description: The Intercom defined id representing the Visitor. + example: 530370b477ad7120001d + user_id: + type: string + description: Automatically generated identifier for the Visitor. + example: 8a88a590-e1c3-41e2-a502-e0649dbf721c + anonymous: + type: boolean + description: Identifies if this visitor is anonymous. + example: false + email: + type: string + format: email + description: The email of the visitor. + example: jane.doe@example.com + phone: + type: string + nullable: true + description: The phone number of the visitor. + example: 555-555-5555 + name: + type: string + nullable: true + description: The name of the visitor. + example: Jane Doe + pseudonym: + type: string + nullable: true + description: The pseudonym of the visitor. + example: Red Duck from Dublin + avatar: + type: object + properties: + type: + type: string + description: '' + default: avatar + example: avatar + image_url: + type: string + format: uri + nullable: true + description: This object represents the avatar associated with the visitor. + example: https://example.com/avatar.png + app_id: + type: string + description: The id of the app the visitor is associated with. + example: hfi1bx4l + companies: + type: object + properties: + type: + type: string + description: The type of the object + enum: + - company.list + example: company.list + companies: + type: array + items: + "$ref": "#/components/schemas/company" + location_data: + type: object + properties: + type: + type: string + description: '' + default: location_data + example: location_data + city_name: + type: string + description: The city name of the visitor. + example: Dublin + continent_code: + type: string + description: The continent code of the visitor. + example: EU + country_code: + type: string + description: The country code of the visitor. + example: IRL + country_name: + type: string + description: The country name of the visitor. + example: Ireland + postal_code: + type: string + description: The postal code of the visitor. + example: D02 N960 + region_name: + type: string + description: The region name of the visitor. + example: Leinster + timezone: + type: string + description: The timezone of the visitor. + example: Europe/Dublin + las_request_at: + type: integer + description: The time the Lead last recorded making a request. + example: 1663597260 + created_at: + type: integer + description: The time the Visitor was added to Intercom. + example: 1663597223 + remote_created_at: + type: integer + description: The time the Visitor was added to Intercom. + example: 1663597223 + signed_up_at: + type: integer + description: The time the Visitor signed up for your product. + example: 1663597223 + updated_at: + type: integer + description: The last time the Visitor was updated. + example: 1663597260 + session_count: + type: integer + description: The number of sessions the Visitor has had. + example: 1 + social_profiles: + type: object + properties: + type: + type: string + description: The type of the object + enum: + - social_profile.list + example: social_profile.list + social_profiles: + type: array + items: + type: string + owner_id: + type: string + nullable: true + description: The id of the admin that owns the Visitor. + example: '5169261' + unsubscribed_from_emails: + type: boolean + description: Whether the Visitor is unsubscribed from emails. + example: false + marked_email_as_spam: + type: boolean + description: Identifies if this visitor has marked an email as spam. + example: false + has_hard_bounced: + type: boolean + description: Identifies if this visitor has had a hard bounce. + example: false + tags: + type: object + properties: + type: + type: string + description: The type of the object + enum: + - tag.list + example: tag.list + tags: + type: array + items: + properties: + type: + type: string + description: The type of the object + enum: + - tag + example: tag + id: + type: string + description: The id of the tag. + example: '8482' + name: + type: string + description: The name of the tag. + example: tag_name + segments: + type: object + properties: + type: + type: string + description: The type of the object + enum: + - segment.list + example: segment.list + segments: + type: array + items: + type: string + custom_attributes: + type: object + description: The custom attributes you have set on the Visitor. + additionalProperties: + type: string + referrer: + type: string + nullable: true + description: The referer of the visitor. + example: https://www.google.com/ + utm_campaign: + type: string + nullable: true + description: The utm_campaign of the visitor. + example: intercom-link + utm_content: + type: string + nullable: true + description: The utm_content of the visitor. + example: banner + utm_medium: + type: string + nullable: true + description: The utm_medium of the visitor. + example: email + utm_source: + type: string + nullable: true + description: The utm_source of the visitor. + example: Intercom + utm_term: + type: string + nullable: true + description: The utm_term of the visitor. + example: messenger + do_not_track: + type: boolean + nullable: true + description: Identifies if this visitor has do not track enabled. + example: false + visitor_deleted_object: + title: Visitor Deleted Object + type: object + description: Response returned when an object is deleted + properties: + id: + type: string + description: The unique identifier for the visitor which is given by Intercom. + example: 530370b477ad7120001d + type: + type: string + description: The type of object which was deleted + enum: + - visitor + example: visitor + user_id: + type: string + description: Automatically generated identifier for the Visitor. + example: 8a88a590-e1c3-41e2-a502-e0649dbf721c + securitySchemes: + bearerAuth: + type: http + scheme: bearer +servers: +- url: https://api.intercom.io + description: The production API server +- url: https://api.eu.intercom.io + description: The european API server +- url: https://api.au.intercom.io + description: The australian API server +security: +- bearerAuth: [] +tags: +- name: Admins + description: Everything about your Admins +- name: AI Content + description: | + With the AI Content APIs, you can create and manage External Pages and Content Import Sources for your Fin Content Library. + + + + *External Pages* are pages that you want Fin to be able to answer questions about. The API for External Pages is a great way to ingest into your Fin Content Library pages that are not publicly accessible and hence can't be crawled by Intercom. + + + + *Content Import Sources* are the sources of those pages, and they are used to determine the default audience for the pages (configured via the UI). You should create a Content Import Source for each source of External Pages that you want to ingest into your Fin Content Library. + + + + You can then iterate through the content from that source via its API and POST it to the External Pages endpoint. That endpoint has an *external_id* parameter which allows you to specify the identifier from the source. The endpoint will then either create a new External Page or update an existing one as appropriate.", +- name: Articles + description: Everything about your Articles +- name: Companies + description: Everything about your Companies +- name: Contacts + description: Everything about your contacts +- name: Conversations + description: Everything about your Conversations + externalDocs: + description: What is a conversation? + url: https://www.intercom.com/help/en/articles/4323904-what-is-a-conversation +- name: Data Attributes + description: Everything about your Data Attributes +- name: Data Events + description: Everything about your Data Events +- name: Data Export + description: Everything about your Data Exports +- name: Help Center + description: Everything about your Help Center +- name: Messages + description: Everything about your messages +- name: News + description: Everything about your News + externalDocs: + description: News explained + url: https://www.intercom.com/help/en/articles/6362251-news-explained +- name: Notes + description: Everything about your Notes +- name: Segments + description: Everything about your Segments +- name: Subscription Types + description: Everything about subscription types +- name: Switch + description: Everything about Switch + externalDocs: + description: 'Meet Switch: from on hold to messaging in just a few taps' + url: https://www.intercom.com/switch +- name: Tags + description: Everything about tags +- name: Teams + description: Everything about your Teams +- name: Ticket States + description: Everything about your ticket states +- name: Ticket Type Attributes + description: Everything about your ticket type attributes +- name: Ticket Types + description: Everything about your ticket types +- name: Tickets + description: Everything about your tickets +- name: Visitors + description: Everything about your Visitors diff --git a/descriptions/2.7/api.intercom.io.yaml b/descriptions/2.7/api.intercom.io.yaml index 4a94908..3702c7a 100644 --- a/descriptions/2.7/api.intercom.io.yaml +++ b/descriptions/2.7/api.intercom.io.yaml @@ -1540,7 +1540,7 @@ paths: Companies are looked up via `company_id` in a `POST` request, if not found via `company_id`, the new company will be created, if found, that company will be updated. - {% admonition type="attention" name="Using `company_id`" %} + {% admonition type="warning" name="Using `company_id`" %} You can set a unique `company_id` value when creating a company. However, it is not possible to update `company_id`. Be sure to set a unique value once upon creation of the company. {% /admonition %} responses: @@ -1843,7 +1843,7 @@ paths: description: | You can update a single company using the Intercom provisioned `id`. - {% admonition type="attention" name="Using `company_id`" %} + {% admonition type="warning" name="Using `company_id`" %} When updating a company it is not possible to update `company_id`. This can only be set once upon creation of the company. {% /admonition %} responses: @@ -3855,7 +3855,6 @@ paths: | email | String | | email_domain | String | | phone | String | - | formatted_phone | String | | external_id | String | | created_at | Date (UNIX Timestamp) | | signed_up_at | Date (UNIX Timestamp) | @@ -3893,7 +3892,7 @@ paths: ### Accepted Operators - {% admonition type="attention" name="Searching based on `created_at`" %} + {% admonition type="warning" name="Searching based on `created_at`" %} You cannot use the `<=` or `>=` operators to search by `created_at`. {% /admonition %} @@ -4487,7 +4486,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} schema: "$ref": "#/components/schemas/paginated_response" @@ -4702,7 +4700,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -4832,9 +4829,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: - issue_type: Billing - priority: High topics: {} conversation_parts: type: conversation_part.list @@ -4926,16 +4920,10 @@ paths: summary: conversation found value: read: true - custom_attributes: - issue_type: Billing - priority: High not_found: summary: Not found value: read: true - custom_attributes: - issue_type: Billing - priority: High "/conversations/search": post: summary: Search conversations @@ -4969,7 +4957,7 @@ paths: ### Accepted Fields - Most keys listed as part of the The conversation model is searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foorbar"`). + Most keys listed in the conversation model are searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foorbar"`). The `source.body` field is unique as the search will not be performed against the entire value, but instead against every element of the value separately. For example, when searching for a conversation with a `"I need support"` body - the query should contain a `=` operator with the value `"support"` for such conversation to be returned. A query with a `=` operator and a `"need support"` value will not yield a result. | Field | Type | @@ -5103,7 +5091,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} schema: "$ref": "#/components/schemas/conversation_list" @@ -5196,7 +5183,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5276,7 +5262,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5355,7 +5340,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5546,7 +5530,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5610,7 +5593,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5674,7 +5656,6 @@ paths: conversation_rating: teammates: title: '' - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5738,7 +5719,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5867,8 +5847,11 @@ paths: - Conversations operationId: autoAssignConversation description: | + {% admonition type="danger" name="Deprecation of Run Assignment Rules" %} + Run assignment rules is now deprecated in version 2.12 and future versions and will be permanently removed on December 31, 2026. After this date, any requests made to this endpoint will fail. + {% /admonition %} You can let a conversation be automatically assigned following assignment rules. - {% admonition type="attention" name="When using workflows" %} + {% admonition type="warning" name="When using workflows" %} It is not possible to use this endpoint with Workflows. {% /admonition %} responses: @@ -5919,7 +5902,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -6008,7 +5990,7 @@ paths: description: |+ You can add participants who are contacts to a conversation, on behalf of either another contact or an admin. - {% admonition type="attention" name="Contacts without an email" %} + {% admonition type="warning" name="Contacts without an email" %} If you add a contact via the email parameter and there is no user/lead found on that workspace with he given email, then we will create a new contact with `role` set to `lead`. {% /admonition %} @@ -6113,7 +6095,7 @@ paths: description: |+ You can add participants who are contacts to a conversation, on behalf of either another contact or an admin. - {% admonition type="attention" name="Contacts without an email" %} + {% admonition type="warning" name="Contacts without an email" %} If you add a contact via the email parameter and there is no user/lead found on that workspace with he given email, then we will create a new contact with `role` set to `lead`. {% /admonition %} @@ -6292,7 +6274,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -9324,11 +9305,11 @@ components: name: type: string description: The name of the admin. - example: Hoban Washburne + example: Joe Examplee email: type: string description: The email of the admin. - example: wash@serenity.io + example: wash@example.com job_title: type: string description: The job title of the admin. @@ -9441,11 +9422,11 @@ components: name: type: string description: The name of the admin. - example: Hoban Washburne + example: Joe Examplee email: type: string description: The email of the admin. - example: wash@serenity.io + example: wash@example.com job_title: type: string description: The job title of the admin. @@ -9965,7 +9946,7 @@ components: type: string description: The email you have defined for the contact who is being added as a participant. - example: winstonsmith@truth.org + example: joe@example.com customer: "$ref": "#/components/schemas/customer_request" required: @@ -10121,7 +10102,7 @@ components: name: type: string description: The name of the company. - example: Blue Sun + example: Example Company Inc. app_id: type: string description: The Intercom defined code of the workspace the company is associated @@ -10355,11 +10336,6 @@ components: nullable: true description: The contacts phone. example: "+1123456789" - formatted_phone: - type: string - nullable: true - description: The contacts phone number normalized to the E164 format - example: "+1123456789" name: type: string nullable: true @@ -10603,6 +10579,11 @@ components: description: An object containing companies meta data about the companies that a contact has. Up to 10 will be displayed here. Use the url to get more. properties: + data: + type: array + description: An array of company data objects attached to the contact. + items: + "$ref": "#/components/schemas/company_data" url: type: string format: uri @@ -10618,6 +10599,26 @@ components: description: Whether there's more Addressable Objects to be viewed. If true, use the url to view all example: true + company_data: + title: Company Data + type: object + description: An object containing data about the companies that a contact is associated with. + properties: + id: + type: string + description: The unique identifier for the company which is given by Intercom. + example: 5ba682d23d7cf92bef87bfd4 + type: + type: string + description: The type of the object + enum: + - company + example: company + url: + type: string + format: uri + description: The relative URL of the company. + example: "/companies/5ba682d23d7cf92bef87bfd4" contact_deleted: title: Contact Deleted type: object @@ -11067,8 +11068,6 @@ components: "$ref": "#/components/schemas/conversation_contacts" teammates: "$ref": "#/components/schemas/conversation_teammates" - custom_attributes: - "$ref": "#/components/schemas/custom_attributes" first_contact_reply: "$ref": "#/components/schemas/conversation_first_contact_reply" sla_applied: @@ -11297,14 +11296,24 @@ components: conversation_source: title: Conversation source type: object - description: The Conversation Part that originated this conversation, which - can be Contact, Admin, Campaign, Automated or Operator initiated. + description: The type of the conversation part that started this conversation. Can be Contact, Admin, Campaign, Automated or Operator initiated. properties: type: type: string description: This includes conversation, email, facebook, instagram, phone_call, phone_switch, push, sms, twitter and whatsapp. example: conversation + enum: + - conversation + - email + - facebook + - instagram + - phone_call + - phone_switch + - push + - sms + - twitter + - whatsapp id: type: string description: The id representing the message. @@ -11487,7 +11496,7 @@ components: email: type: string description: The contact's email, retained by default if one is present. - example: winstonsmith@truth.org + example: joe@example.com anyOf: - required: - id @@ -11509,7 +11518,7 @@ components: email: type: string description: The visitor's email. - example: winstonsmith@truth.org + example: joe@example.com anyOf: - required: - id @@ -11973,7 +11982,7 @@ components: industry: type: string description: The industry that this company operates in. - example: Manufacturing + example: Technology custom_attributes: type: object description: A hash of key/value pairs containing any other data about the diff --git a/descriptions/2.8/api.intercom.io.yaml b/descriptions/2.8/api.intercom.io.yaml index f9ce93a..04aabe6 100644 --- a/descriptions/2.8/api.intercom.io.yaml +++ b/descriptions/2.8/api.intercom.io.yaml @@ -1540,7 +1540,7 @@ paths: Companies are looked up via `company_id` in a `POST` request, if not found via `company_id`, the new company will be created, if found, that company will be updated. - {% admonition type="attention" name="Using `company_id`" %} + {% admonition type="warning" name="Using `company_id`" %} You can set a unique `company_id` value when creating a company. However, it is not possible to update `company_id`. Be sure to set a unique value once upon creation of the company. {% /admonition %} responses: @@ -1843,7 +1843,7 @@ paths: description: | You can update a single company using the Intercom provisioned `id`. - {% admonition type="attention" name="Using `company_id`" %} + {% admonition type="warning" name="Using `company_id`" %} When updating a company it is not possible to update `company_id`. This can only be set once upon creation of the company. {% /admonition %} responses: @@ -3855,7 +3855,6 @@ paths: | email | String | | email_domain | String | | phone | String | - | formatted_phone | String | | external_id | String | | created_at | Date (UNIX Timestamp) | | signed_up_at | Date (UNIX Timestamp) | @@ -3893,7 +3892,7 @@ paths: ### Accepted Operators - {% admonition type="attention" name="Searching based on `created_at`" %} + {% admonition type="warning" name="Searching based on `created_at`" %} You cannot use the `<=` or `>=` operators to search by `created_at`. {% /admonition %} @@ -4487,7 +4486,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} schema: "$ref": "#/components/schemas/paginated_response" @@ -4702,7 +4700,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -4832,9 +4829,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: - issue_type: Billing - priority: High topics: {} conversation_parts: type: conversation_part.list @@ -4926,16 +4920,10 @@ paths: summary: conversation found value: read: true - custom_attributes: - issue_type: Billing - priority: High not_found: summary: Not found value: read: true - custom_attributes: - issue_type: Billing - priority: High "/conversations/search": post: summary: Search conversations @@ -4969,7 +4957,7 @@ paths: ### Accepted Fields - Most keys listed as part of the The conversation model is searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foorbar"`). + Most keys listed as part of the conversation model are searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foorbar"`). The `source.body` field is unique as the search will not be performed against the entire value, but instead against every element of the value separately. For example, when searching for a conversation with a `"I need support"` body - the query should contain a `=` operator with the value `"support"` for such conversation to be returned. A query with a `=` operator and a `"need support"` value will not yield a result. | Field | Type | @@ -5103,7 +5091,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} schema: "$ref": "#/components/schemas/conversation_list" @@ -5196,7 +5183,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5276,7 +5262,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5355,7 +5340,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5546,7 +5530,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5610,7 +5593,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5674,7 +5656,6 @@ paths: conversation_rating: teammates: title: '' - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5738,7 +5719,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -5867,8 +5847,11 @@ paths: - Conversations operationId: autoAssignConversation description: | + {% admonition type="danger" name="Deprecation of Run Assignment Rules" %} + Run assignment rules is now deprecated in version 2.12 and future versions and will be permanently removed on December 31, 2026. After this date, any requests made to this endpoint will fail. + {% /admonition %} You can let a conversation be automatically assigned following assignment rules. - {% admonition type="attention" name="When using workflows" %} + {% admonition type="warning" name="When using workflows" %} It is not possible to use this endpoint with Workflows. {% /admonition %} responses: @@ -5919,7 +5902,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -6008,7 +5990,7 @@ paths: description: |+ You can add participants who are contacts to a conversation, on behalf of either another contact or an admin. - {% admonition type="attention" name="Contacts without an email" %} + {% admonition type="warning" name="Contacts without an email" %} If you add a contact via the email parameter and there is no user/lead found on that workspace with he given email, then we will create a new contact with `role` set to `lead`. {% /admonition %} @@ -6113,7 +6095,7 @@ paths: description: |+ You can add participants who are contacts to a conversation, on behalf of either another contact or an admin. - {% admonition type="attention" name="Contacts without an email" %} + {% admonition type="warning" name="Contacts without an email" %} If you add a contact via the email parameter and there is no user/lead found on that workspace with he given email, then we will create a new contact with `role` set to `lead`. {% /admonition %} @@ -6292,7 +6274,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} conversation_parts: type: conversation_part.list @@ -9324,11 +9305,11 @@ components: name: type: string description: The name of the admin. - example: Hoban Washburne + example: Joe Examplee email: type: string description: The email of the admin. - example: wash@serenity.io + example: wash@example.com job_title: type: string description: The job title of the admin. @@ -9465,11 +9446,11 @@ components: name: type: string description: The name of the admin. - example: Hoban Washburne + example: Joe Examplee email: type: string description: The email of the admin. - example: wash@serenity.io + example: wash@example.com job_title: type: string description: The job title of the admin. @@ -9989,7 +9970,7 @@ components: type: string description: The email you have defined for the contact who is being added as a participant. - example: winstonsmith@truth.org + example: joe@example.com customer: "$ref": "#/components/schemas/customer_request" required: @@ -10145,7 +10126,7 @@ components: name: type: string description: The name of the company. - example: Blue Sun + example: Example Company Inc. app_id: type: string description: The Intercom defined code of the workspace the company is associated @@ -10379,11 +10360,6 @@ components: nullable: true description: The contacts phone. example: "+1123456789" - formatted_phone: - type: string - nullable: true - description: The contacts phone number normalized to the E164 format - example: "+1123456789" name: type: string nullable: true @@ -10627,6 +10603,11 @@ components: description: An object containing companies meta data about the companies that a contact has. Up to 10 will be displayed here. Use the url to get more. properties: + data: + type: array + description: An array of company data objects attached to the contact. + items: + "$ref": "#/components/schemas/company_data" url: type: string format: uri @@ -10642,6 +10623,26 @@ components: description: Whether there's more Addressable Objects to be viewed. If true, use the url to view all example: true + company_data: + title: Company Data + type: object + description: An object containing data about the companies that a contact is associated with. + properties: + id: + type: string + description: The unique identifier for the company which is given by Intercom. + example: 5ba682d23d7cf92bef87bfd4 + type: + type: string + description: The type of the object. Always company. + enum: + - company + example: company + url: + type: string + format: uri + description: The relative URL of the company. + example: "/companies/5ba682d23d7cf92bef87bfd4" contact_deleted: title: Contact Deleted type: object @@ -11091,8 +11092,6 @@ components: "$ref": "#/components/schemas/conversation_contacts" teammates: "$ref": "#/components/schemas/conversation_teammates" - custom_attributes: - "$ref": "#/components/schemas/custom_attributes" first_contact_reply: "$ref": "#/components/schemas/conversation_first_contact_reply" sla_applied: @@ -11321,14 +11320,24 @@ components: conversation_source: title: Conversation source type: object - description: The Conversation Part that originated this conversation, which - can be Contact, Admin, Campaign, Automated or Operator initiated. + description: The type of the conversation part that started this conversation. Can be Contact, Admin, Campaign, Automated or Operator initiated. properties: type: type: string description: This includes conversation, email, facebook, instagram, phone_call, phone_switch, push, sms, twitter and whatsapp. example: conversation + enum: + - conversation + - email + - facebook + - instagram + - phone_call + - phone_switch + - push + - sms + - twitter + - whatsapp id: type: string description: The id representing the message. @@ -11511,7 +11520,7 @@ components: email: type: string description: The contact's email, retained by default if one is present. - example: winstonsmith@truth.org + example: joe@example.com anyOf: - required: - id @@ -11533,7 +11542,7 @@ components: email: type: string description: The visitor's email. - example: winstonsmith@truth.org + example: joe@example.com anyOf: - required: - id @@ -11997,7 +12006,7 @@ components: industry: type: string description: The industry that this company operates in. - example: Manufacturing + example: Technology custom_attributes: type: object description: A hash of key/value pairs containing any other data about the @@ -13696,9 +13705,17 @@ components: search for the value. example: ">" value: - type: string + oneOf: + - type: string + - type: integer + - type: array + items: + oneOf: + - type: string + - type: integer description: The value that you want to search on. example: '73732934' + nullable: true sla_applied: title: Applied SLA type: object diff --git a/descriptions/2.9/api.intercom.io.yaml b/descriptions/2.9/api.intercom.io.yaml index 0c113a9..ffa3c58 100644 --- a/descriptions/2.9/api.intercom.io.yaml +++ b/descriptions/2.9/api.intercom.io.yaml @@ -1540,7 +1540,7 @@ paths: Companies are looked up via `company_id` in a `POST` request, if not found via `company_id`, the new company will be created, if found, that company will be updated. - {% admonition type="attention" name="Using `company_id`" %} + {% admonition type="warning" name="Using `company_id`" %} You can set a unique `company_id` value when creating a company. However, it is not possible to update `company_id`. Be sure to set a unique value once upon creation of the company. {% /admonition %} responses: @@ -1843,7 +1843,7 @@ paths: description: | You can update a single company using the Intercom provisioned `id`. - {% admonition type="attention" name="Using `company_id`" %} + {% admonition type="warning" name="Using `company_id`" %} When updating a company it is not possible to update `company_id`. This can only be set once upon creation of the company. {% /admonition %} responses: @@ -3855,7 +3855,6 @@ paths: | email | String | | email_domain | String | | phone | String | - | formatted_phone | String | | external_id | String | | created_at | Date (UNIX Timestamp) | | signed_up_at | Date (UNIX Timestamp) | @@ -3893,7 +3892,7 @@ paths: ### Accepted Operators - {% admonition type="attention" name="Searching based on `created_at`" %} + {% admonition type="warning" name="Searching based on `created_at`" %} You cannot use the `<=` or `>=` operators to search by `created_at`. {% /admonition %} @@ -4487,7 +4486,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: schema: @@ -4703,7 +4701,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: conversation_parts: @@ -4834,9 +4831,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: - issue_type: Billing - priority: High topics: {} ticket: conversation_parts: @@ -4929,16 +4923,10 @@ paths: summary: conversation found value: read: true - custom_attributes: - issue_type: Billing - priority: High not_found: summary: Not found value: read: true - custom_attributes: - issue_type: Billing - priority: High "/conversations/search": post: summary: Search conversations @@ -4972,7 +4960,7 @@ paths: ### Accepted Fields - Most keys listed as part of the The conversation model is searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foorbar"`). + Most keys listed in the conversation model is searchable, whether writeable or not. The value you search for has to match the accepted type, otherwise the query will fail (ie. as `created_at` accepts a date, the `value` cannot be a string such as `"foorbar"`). The `source.body` field is unique as the search will not be performed against the entire value, but instead against every element of the value separately. For example, when searching for a conversation with a `"I need support"` body - the query should contain a `=` operator with the value `"support"` for such conversation to be returned. A query with a `=` operator and a `"need support"` value will not yield a result. | Field | Type | @@ -5106,7 +5094,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: schema: @@ -5200,7 +5187,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: conversation_parts: @@ -5281,7 +5267,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: conversation_parts: @@ -5361,7 +5346,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: conversation_parts: @@ -5553,7 +5537,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: conversation_parts: @@ -5618,7 +5601,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: conversation_parts: @@ -5683,7 +5665,6 @@ paths: conversation_rating: teammates: title: '' - custom_attributes: {} topics: {} ticket: conversation_parts: @@ -5748,7 +5729,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: conversation_parts: @@ -5878,8 +5858,11 @@ paths: - Conversations operationId: autoAssignConversation description: | + {% admonition type="danger" name="Deprecation of Run Assignment Rules" %} + Run assignment rules is now deprecated in version 2.12 and future versions and will be permanently removed on December 31, 2026. After this date, any requests made to this endpoint will fail. + {% /admonition %} You can let a conversation be automatically assigned following assignment rules. - {% admonition type="attention" name="When using workflows" %} + {% admonition type="warning" name="When using workflows" %} It is not possible to use this endpoint with Workflows. {% /admonition %} responses: @@ -5930,7 +5913,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: conversation_parts: @@ -6020,7 +6002,7 @@ paths: description: |+ You can add participants who are contacts to a conversation, on behalf of either another contact or an admin. - {% admonition type="attention" name="Contacts without an email" %} + {% admonition type="warning" name="Contacts without an email" %} If you add a contact via the email parameter and there is no user/lead found on that workspace with he given email, then we will create a new contact with `role` set to `lead`. {% /admonition %} @@ -6125,7 +6107,7 @@ paths: description: |+ You can add participants who are contacts to a conversation, on behalf of either another contact or an admin. - {% admonition type="attention" name="Contacts without an email" %} + {% admonition type="warning" name="Contacts without an email" %} If you add a contact via the email parameter and there is no user/lead found on that workspace with he given email, then we will create a new contact with `role` set to `lead`. {% /admonition %} @@ -6304,7 +6286,6 @@ paths: conversation_rating: teammates: title: - custom_attributes: {} topics: {} ticket: conversation_parts: @@ -10492,11 +10473,11 @@ components: name: type: string description: The name of the admin. - example: Hoban Washburne + example: Joe Examplee email: type: string description: The email of the admin. - example: wash@serenity.io + example: wash@example.com job_title: type: string description: The job title of the admin. @@ -10633,11 +10614,11 @@ components: name: type: string description: The name of the admin. - example: Hoban Washburne + example: Joe Examplee email: type: string description: The email of the admin. - example: wash@serenity.io + example: wash@example.com job_title: type: string description: The job title of the admin. @@ -11157,7 +11138,7 @@ components: type: string description: The email you have defined for the contact who is being added as a participant. - example: winstonsmith@truth.org + example: joe@example.com customer: "$ref": "#/components/schemas/customer_request" required: @@ -11313,7 +11294,7 @@ components: name: type: string description: The name of the company. - example: Blue Sun + example: Example Company Inc. app_id: type: string description: The Intercom defined code of the workspace the company is associated @@ -11547,11 +11528,6 @@ components: nullable: true description: The contacts phone. example: "+1123456789" - formatted_phone: - type: string - nullable: true - description: The contacts phone number normalized to the E164 format - example: "+1123456789" name: type: string nullable: true @@ -11795,6 +11771,11 @@ components: description: An object containing companies meta data about the companies that a contact has. Up to 10 will be displayed here. Use the url to get more. properties: + data: + type: array + description: An array of company data objects attached to the contact. + items: + "$ref": "#/components/schemas/company_data" url: type: string format: uri @@ -11810,6 +11791,26 @@ components: description: Whether there's more Addressable Objects to be viewed. If true, use the url to view all example: true + company_data: + title: Company Data + type: object + description: An object containing data about the companies that a contact is associated with. + properties: + id: + type: string + description: The unique identifier for the company which is given by Intercom. + example: 5ba682d23d7cf92bef87bfd4 + type: + type: string + description: The type of the object. Always company. + enum: + - company + example: company + url: + type: string + format: uri + description: The relative URL of the company. + example: "/companies/5ba682d23d7cf92bef87bfd4" contact_deleted: title: Contact Deleted type: object @@ -12259,8 +12260,6 @@ components: "$ref": "#/components/schemas/conversation_contacts" teammates: "$ref": "#/components/schemas/conversation_teammates" - custom_attributes: - "$ref": "#/components/schemas/custom_attributes" first_contact_reply: "$ref": "#/components/schemas/conversation_first_contact_reply" sla_applied: @@ -12489,14 +12488,24 @@ components: conversation_source: title: Conversation source type: object - description: The Conversation Part that originated this conversation, which - can be Contact, Admin, Campaign, Automated or Operator initiated. + description: The type of the conversation part that started this conversation. Can be Contact, Admin, Campaign, Automated or Operator initiated. properties: type: type: string description: This includes conversation, email, facebook, instagram, phone_call, phone_switch, push, sms, twitter and whatsapp. example: conversation + enum: + - conversation + - email + - facebook + - instagram + - phone_call + - phone_switch + - push + - sms + - twitter + - whatsapp id: type: string description: The id representing the message. @@ -12679,7 +12688,7 @@ components: email: type: string description: The contact's email, retained by default if one is present. - example: winstonsmith@truth.org + example: joe@example.com anyOf: - required: - id @@ -12701,7 +12710,7 @@ components: email: type: string description: The visitor's email. - example: winstonsmith@truth.org + example: joe@example.com anyOf: - required: - id @@ -13165,7 +13174,7 @@ components: industry: type: string description: The industry that this company operates in. - example: Manufacturing + example: Technology custom_attributes: type: object description: A hash of key/value pairs containing any other data about the