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: literal - required: - - id - - company_id - - untag + example: 'true' description: The id or company_id of the company can be passed as input parameters. required: - name - companies - update_article_request_body: + update_article_request: description: You can Update an Article type: object title: Update Article Request Payload + nullable: true properties: title: type: string @@ -17462,12 +16844,7 @@ components: 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: object - required: - - value - properties: - value: - type: string + type: string example: - option1 - option2 @@ -17579,12 +16956,13 @@ components: creation of the ticket (it will still be present on previously created tickets) example: false - update_ticket_type_request_body: + 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 @@ -17656,6 +17034,7 @@ components: 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 @@ -17895,17 +17274,6 @@ components: nullable: true description: Identifies if this visitor has do not track enabled. example: false - required: - - type - - id - - user_id - - anonymous - - email - - phone - - name - - app_id - - created_at - - signed_up_at visitor_deleted_object: title: Visitor Deleted Object type: object @@ -17925,10 +17293,6 @@ components: type: string description: Automatically generated identifier for the Visitor. example: 8a88a590-e1c3-41e2-a502-e0649dbf721c - required: - - type - - id - - user_id securitySchemes: bearerAuth: type: http diff --git a/descriptions/2.12/api.intercom.io.yaml b/descriptions/2.12/api.intercom.io.yaml new file mode 100644 index 0000000..9f68e29 --- /dev/null +++ b/descriptions/2.12/api.intercom.io.yaml @@ -0,0 +1,18718 @@ +--- +openapi: 3.0.1 +info: + title: Intercom API + version: '2.12' + description: The Intercom API reference. + contact: + name: Intercom Developer Hub + url: https://developers.intercom.com + license: + name: MIT + url: https://spdx.org/licenses/MIT +paths: + "/me": + get: + summary: Identify an admin + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Admins + operationId: identifyAdmin + description: "\nYou can view the currently authorised admin along with the embedded + app object (a \"workspace\" in legacy terminology).\n\n> \U0001F6A7 Single + Sign On\n>\n> If you are building a custom \"Log in with Intercom\" flow for + your site, and you call the `/me` endpoint to identify the logged-in user, + you should not accept any sign-ins from users with unverified email addresses + as it poses a potential impersonation security risk.\n" + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful response: + value: + type: admin + id: '991266214' + email: admin1@email.com + name: Ciaran1 Lee + email_verified: true + app: + type: app + id_code: this_is_an_id1_that_should_be_at_least_40 + name: MyApp 1 + created_at: 1736201375 + secure: false + identity_verification: false + timezone: America/Los_Angeles + region: US + avatar: + type: avatar + image_url: https://static.intercomassets.com/assets/default-avatars/admins/128.png + has_inbox_seat: true + schema: + "$ref": "#/components/schemas/admin_with_app" + "/admins/{id}/away": + put: + summary: Set an admin to away + 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 admin + schema: + type: integer + tags: + - Admins + operationId: setAwayAdmin + description: You can set an Admin as away for the Inbox. + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful response: + value: + type: admin + id: '991266215' + name: Ciaran2 Lee + email: admin2@email.com + away_mode_enabled: true + away_mode_reassign: true + has_inbox_seat: true + team_ids: [] + schema: + "$ref": "#/components/schemas/admin" + '404': + description: Admin not found + content: + application/json: + examples: + Admin not found: + value: + type: error.list + request_id: d19e6a82-3d28-4133-aba2-820cd1445d15 + errors: + - code: admin_not_found + message: Admin for admin_id not found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: b53fb661-ea37-4e7b-8ec4-5c771b858beb + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + type: object + required: + - away_mode_enabled + - away_mode_reassign + properties: + away_mode_enabled: + type: boolean + description: Set to "true" to change the status of the admin to + away. + example: true + default: true + away_mode_reassign: + type: boolean + description: Set to "true" to assign any new conversation replies + to your default inbox. + example: false + default: false + examples: + successful_response: + summary: Successful response + value: + away_mode_enabled: true + away_mode_reassign: true + admin_not_found: + summary: Admin not found + value: + away_mode_enabled: true + away_mode_reassign: true + unauthorized: + summary: Unauthorized + value: + away_mode_enabled: true + away_mode_reassign: true + "/admins/activity_logs": + get: + summary: List all activity logs + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: created_at_after + in: query + required: true + description: The start date that you request data for. It must be formatted + as a UNIX timestamp. + example: '1677253093' + schema: + type: string + - name: created_at_before + in: query + required: false + description: The end date that you request data for. It must be formatted + as a UNIX timestamp. + example: '1677861493' + schema: + type: string + tags: + - Admins + operationId: listActivityLogs + description: You can get a log of activities by all admins in an app. + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful response: + value: + type: activity_log.list + pages: + type: pages + next: + page: 1 + per_page: 20 + total_pages: 1 + activity_logs: + - id: ba618825-7a3f-4f6f-a4ab-1f3be68f91f8 + performed_by: + type: admin + id: '991266219' + email: admin5@email.com + ip: 127.0.0.1 + metadata: + before: before + after: after + created_at: 1736201398 + activity_type: app_name_change + activity_description: Ciaran5 Lee changed your app name from + before to after. + - id: 8cdef465-fe01-4f96-9b0a-a976c32c2cde + performed_by: + type: admin + id: '991266219' + email: admin5@email.com + ip: 127.0.0.1 + metadata: + message: + id: 123 + title: Initial message title + before: Initial message title + after: Eventual message title + created_at: 1736201398 + activity_type: message_state_change + activity_description: Ciaran5 Lee changed your Initial message + title message from Initial message title to Eventual message + title. + schema: + "$ref": "#/components/schemas/activity_log_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 9d33fdde-fba0-4d88-8211-9f7c751dd528 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/admins": + get: + summary: List all admins + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Admins + operationId: listAdmins + description: You can fetch a list of admins for a given workspace. + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful response: + value: + type: admin.list + admins: + - type: admin + email: admin7@email.com + id: '991266221' + name: Ciaran7 Lee + away_mode_enabled: false + away_mode_reassign: false + has_inbox_seat: true + team_ids: [] + schema: + "$ref": "#/components/schemas/admin_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 55ba6ac8-7bb2-4656-8bb7-19374548d69e + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/admins/{id}": + get: + summary: Retrieve an admin + 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 admin + example: 123 + schema: + type: integer + tags: + - Admins + operationId: retrieveAdmin + description: You can retrieve the details of a single admin. + responses: + '200': + description: Admin found + content: + application/json: + examples: + Admin found: + value: + type: admin + id: '991266223' + name: Ciaran9 Lee + email: admin9@email.com + away_mode_enabled: false + away_mode_reassign: false + has_inbox_seat: true + team_ids: [] + schema: + "$ref": "#/components/schemas/admin" + '404': + description: Admin not found + content: + application/json: + examples: + Admin not found: + value: + type: error.list + request_id: 362ef576-50e8-4dec-a22e-f5790a010c7f + errors: + - code: admin_not_found + message: Admin not found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 014b3470-aa91-4ea5-953c-4621808db938 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/ai/content_import_sources": + get: + summary: List content import sources + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - AI Content + operationId: listContentImportSources + description: You can retrieve a list of all content import sources for a workspace. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + data: + - id: 1 + type: content_import_source + last_synced_at: 1736201403 + status: active + url: https://support.example.com/us/1 + sync_behavior: automatic + created_at: 1736201403 + updated_at: 1736201403 + - id: 2 + type: content_import_source + last_synced_at: 1736201403 + status: active + url: https://support.example.com/us/2 + sync_behavior: automatic + created_at: 1736201403 + updated_at: 1736201403 + - id: 3 + type: content_import_source + last_synced_at: 1736201403 + status: active + url: https://support.example.com/us/3 + sync_behavior: automatic + created_at: 1736201403 + updated_at: 1736201403 + pages: + type: pages + page: 1 + per_page: 50 + total_pages: 1 + total_count: 3 + type: list + schema: + "$ref": "#/components/schemas/content_import_sources_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 994d0146-1399-41c0-b8e6-7bc3a0214ebe + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + post: + summary: Create a content import source + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - AI Content + operationId: createContentImportSource + description: You can create a new content import source by sending a POST request + to this endpoint. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: 4 + type: content_import_source + last_synced_at: 1736201405 + status: active + url: https://www.example.com + sync_behavior: api + created_at: 1736201405 + updated_at: 1736201405 + schema: + "$ref": "#/components/schemas/content_import_source" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: bdbe37e8-6405-44b3-bc98-412a22c9d51a + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_content_import_source_request" + examples: + successful: + summary: successful + value: + sync_behavior: api + url: https://www.example.com + "/ai/content_import_sources/{id}": + parameters: + - name: id + in: path + description: The unique identifier for the content import source which is given + by Intercom. + required: true + schema: + type: string + delete: + summary: Delete a content import source + operationId: deleteContentImportSource + description: You can delete a content import source by making a DELETE request + this endpoint. This will also delete all external pages that were imported + from this source. + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - AI Content + responses: + '204': + description: successful + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 5464b4e0-49f7-47fa-aabc-0aaf38fb6872 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + get: + summary: Retrieve a content import source + operationId: getContentImportSource + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - AI Content + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: 6 + type: content_import_source + last_synced_at: 1736201408 + status: active + url: https://support.example.com/us/5 + sync_behavior: api + created_at: 1736201408 + updated_at: 1736201408 + schema: + "$ref": "#/components/schemas/content_import_source" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 3a1cffa0-f35a-40c3-afd1-ed9ab61c9ba1 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + put: + summary: Update a content import source + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - AI Content + operationId: updateContentImportSource + description: You can update an existing content import source. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: 7 + type: content_import_source + last_synced_at: 1736201409 + status: active + url: https://www.example.com + sync_behavior: api + created_at: 1736201409 + updated_at: 1736201410 + schema: + "$ref": "#/components/schemas/content_import_source" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 5d32d0c2-8d8f-4e53-9dbb-9b5126fd256d + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/update_content_import_source_request" + examples: + successful: + summary: successful + value: + sync_behavior: api + url: https://www.example.com + "/ai/external_pages": + get: + summary: List external pages + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - AI Content + operationId: listExternalPages + description: You can retrieve a list of all external pages for a workspace. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + data: + - id: '3' + type: external_page + title: My External Content + html: "

Hello world

This 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: "

Hello world

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: "

Hello world

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: "

Test

" + url: https://www.example.com + ai_agent_availability: true + ai_copilot_availability: true + fin_availability: true + locale: en + source_id: 12 + external_id: abc1234 + created_at: 1736201414 + updated_at: 1736201414 + last_ingested_at: 1736201414 + schema: + "$ref": "#/components/schemas/external_page" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 3a379a5d-771f-4e0f-b8e4-74a5f20e2f2b + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_external_page_request" + examples: + successful: + summary: successful + value: + external_id: abc1234 + html: "

Test

" + locale: en + source_id: 12 + title: Test + url: https://www.example.com + "/ai/external_pages/{id}": + parameters: + - name: id + in: path + description: The unique identifier for the external page which is given by Intercom. + required: true + schema: + type: string + delete: + summary: Delete an external page + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - AI Content + operationId: deleteExternalPage + description: Sending a DELETE request for an external page will remove it from + the content library UI and from being used for AI answers. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: '6' + type: external_page + title: My External Content + html: '' + url: https://support.example.com/us/5 + ai_agent_availability: true + ai_copilot_availability: true + fin_availability: true + locale: en + source_id: 13 + external_id: '4' + created_at: 1736201416 + updated_at: 1736201416 + last_ingested_at: 1736201416 + schema: + "$ref": "#/components/schemas/external_page" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 9b1b73d0-f32c-4b25-95d8-a20458fb5d5c + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + get: + summary: Retrieve an external page + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - AI Content + operationId: getExternalPage + description: You can retrieve an external page. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: '7' + type: external_page + title: My External Content + html: "

Hello world

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: "

Test

" + url: https://www.example.com + ai_agent_availability: true + ai_copilot_availability: true + fin_availability: true + locale: en + source_id: 15 + external_id: '5678' + created_at: 1736201419 + updated_at: 1736201420 + last_ingested_at: 1736201420 + schema: + "$ref": "#/components/schemas/external_page" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 80470258-7ebe-49bb-a834-b473204ea577 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/update_external_page_request" + examples: + successful: + summary: successful + value: + external_id: '5678' + html: "

Test

" + locale: en + source_id: 15 + title: Test + url: https://www.example.com + "/articles": + get: + summary: List all articles + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Articles + operationId: listArticles + description: "You can fetch a list of all articles by making a GET request to + `https://api.intercom.io/articles`.\n\n> \U0001F4D8 How are the articles sorted + and ordered?\n>\n> Articles will be returned in descending order on the `updated_at` + attribute. This means if you need to iterate through results then we'll show + the most recently updated articles first.\n" + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: list + pages: + type: pages + page: 1 + per_page: 25 + total_pages: 1 + total_count: 1 + data: + - id: '1' + type: article + workspace_id: this_is_an_id64_that_should_be_at_least_4 + parent_id: 1 + parent_type: collection + parent_ids: [] + title: This is the article title + description: '' + body: '' + author_id: 991266247 + state: published + created_at: 1736201421 + updated_at: 1736201421 + url: http://help-center.test/myapp-64/en/articles/1-this-is-the-article-title + schema: + "$ref": "#/components/schemas/article_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 4a8ac80b-733a-42b9-bb20-b092e7050c24 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + post: + summary: Create an article + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Articles + operationId: createArticle + description: You can create a new article by making a POST request to `https://api.intercom.io/articles`. + responses: + '200': + description: article created + content: + application/json: + examples: + article created: + value: + id: '4' + type: article + workspace_id: this_is_an_id68_that_should_be_at_least_4 + parent_id: 3 + parent_type: collection + parent_ids: [] + statistics: + type: article_statistics + views: 0 + conversations: 0 + reactions: 0 + happy_reaction_percentage: 0 + neutral_reaction_percentage: 0 + sad_reaction_percentage: 0 + title: Thanks for everything + description: Description of the Article + body:

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/`. + responses: + '200': + description: Article found + content: + application/json: + examples: + Article found: + value: + id: '7' + type: article + workspace_id: this_is_an_id74_that_should_be_at_least_4 + parent_id: 6 + parent_type: collection + parent_ids: [] + statistics: + type: article_statistics + views: 0 + conversations: 0 + reactions: 0 + happy_reaction_percentage: 0 + neutral_reaction_percentage: 0 + sad_reaction_percentage: 0 + title: This is the article title + description: '' + body: '' + author_id: 991266257 + state: published + created_at: 1736201428 + updated_at: 1736201428 + url: http://help-center.test/myapp-74/en/articles/7-this-is-the-article-title + schema: + "$ref": "#/components/schemas/article" + '404': + description: Article not found + content: + application/json: + examples: + Article not found: + value: + type: error.list + request_id: f2d8307a-8b52-4a7b-8935-5faaea67ac75 + 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: 3089fabf-45f3-4162-bf99-0f7aa252883b + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + put: + summary: Update 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: updateArticle + description: You can update the details of a single article by making a PUT + request to `https://api.intercom.io/articles/`. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: '10' + type: article + workspace_id: this_is_an_id80_that_should_be_at_least_4 + parent_id: 9 + parent_type: collection + parent_ids: [] + statistics: + type: article_statistics + views: 0 + conversations: 0 + reactions: 0 + happy_reaction_percentage: 0 + neutral_reaction_percentage: 0 + sad_reaction_percentage: 0 + title: Christmas is here! + description: '' + body:

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/`. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: '13' + object: article + deleted: true + schema: + "$ref": "#/components/schemas/deleted_article_object" + '404': + description: Article Not Found + content: + application/json: + examples: + Article Not Found: + value: + type: error.list + request_id: 4ed2a00f-0891-4f6f-b9cd-29d24ae371f8 + 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: 1b72aa87-cc60-4bb0-b1b7-784e770446af + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/articles/search": + get: + summary: Search for articles + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: phrase + in: query + required: false + description: The phrase within your articles to search for. + example: Getting started + schema: + type: string + - name: state + in: query + required: false + description: The state of the Articles returned. One of `published`, `draft` + or `all`. + example: published + schema: + type: string + - name: help_center_id + in: query + required: false + description: The ID of the Help Center to search in. + example: 123 + schema: + type: integer + - name: highlight + in: query + required: false + description: Return a highlighted version of the matching content within your + articles. Refer to the response schema for more details. + example: false + schema: + type: boolean + tags: + - Articles + operationId: searchArticles + description: You can search for articles by making a GET request to `https://api.intercom.io/articles/search`. + responses: + '200': + description: Search successful + content: + application/json: + examples: + Search successful: + value: + type: list + total_count: 1 + data: + articles: + - id: '17' + type: article + workspace_id: this_is_an_id92_that_should_be_at_least_4 + parent_id: + parent_type: + parent_ids: [] + title: Title 1 + description: '' + body: '' + author_id: 991266276 + state: draft + created_at: 1736201440 + updated_at: 1736201440 + url: + highlights: [] + pages: + type: pages + page: 1 + total_pages: 1 + per_page: 10 + schema: + "$ref": "#/components/schemas/article_search_response" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 6bd4b156-c8b4-4c78-a9ee-0985e4d47299 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/help_center/collections": + get: + summary: List all collections + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Help Center + operationId: listAllCollections + description: | + You can fetch a list of all collections by making a GET request to `https://api.intercom.io/help_center/collections`. + + Collections will be returned in descending order on the `updated_at` attribute. This means if you need to iterate through results then we'll show the most recently updated collections first. + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: list + data: + - id: '17' + workspace_id: this_is_an_id96_that_should_be_at_least_4 + name: English collection title + url: http://help-center.test/myapp-96/collection-17 + order: 17 + created_at: 1736201443 + updated_at: 1736201443 + description: english collection description + icon: bookmark + parent_id: + help_center_id: 17 + - id: '18' + workspace_id: this_is_an_id96_that_should_be_at_least_4 + name: English section title + url: http://help-center.test/myapp-96/section-1 + order: 1 + created_at: 1736201443 + updated_at: 1736201443 + description: + icon: bookmark + parent_id: '17' + help_center_id: + total_count: 2 + pages: + type: pages + page: 1 + per_page: 20 + total_pages: 1 + schema: + "$ref": "#/components/schemas/collection_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 8b262d51-99e7-48b1-a6a7-cacd5936ebf6 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + post: + summary: Create a collection + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Help Center + operationId: createCollection + description: You can create a new collection by making a POST request to `https://api.intercom.io/help_center/collections.` + responses: + '200': + description: collection created + content: + application/json: + examples: + collection created: + value: + id: '23' + workspace_id: this_is_an_id100_that_should_be_at_least_ + name: Thanks for everything + url: http://help-center.test/myapp-100/ + order: 1 + created_at: 1736201445 + updated_at: 1736201445 + description: '' + icon: book-bookmark + parent_id: + help_center_id: 19 + schema: + "$ref": "#/components/schemas/collection" + '400': + description: Bad Request + content: + application/json: + examples: + Bad Request: + value: + type: error.list + request_id: 9f400e24-aafe-428e-b225-84a97078a55f + errors: + - code: parameter_not_found + message: Name is a required parameter. + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: b3fcbda1-cd48-4f85-a18c-13126a8d2b2e + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_collection_request" + examples: + collection_created: + summary: collection created + value: + name: Thanks for everything + bad_request: + summary: Bad Request + value: + description: Missing required parameter + "/help_center/collections/{id}": + get: + summary: Retrieve a collection + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the collection which is given by Intercom. + example: 123 + schema: + type: integer + tags: + - Help Center + operationId: retrieveCollection + description: You can fetch the details of a single collection by making a GET + request to `https://api.intercom.io/help_center/collections/`. + responses: + '200': + description: Collection found + content: + application/json: + examples: + Collection found: + value: + id: '28' + workspace_id: this_is_an_id106_that_should_be_at_least_ + name: English collection title + url: http://help-center.test/myapp-106/collection-22 + order: 22 + created_at: 1736201447 + updated_at: 1736201447 + description: english collection description + icon: bookmark + parent_id: + help_center_id: 22 + schema: + "$ref": "#/components/schemas/collection" + '404': + description: Collection not found + content: + application/json: + examples: + Collection not found: + value: + type: error.list + request_id: 203da988-523d-4dd3-8cd0-44b4b4e38c0c + 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: d0dc1af2-7af6-4269-bb0e-d221109a759a + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + put: + summary: Update a collection + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the collection which is given by Intercom. + example: 123 + schema: + type: integer + tags: + - Help Center + operationId: updateCollection + description: You can update the details of a single collection by making a PUT + request to `https://api.intercom.io/collections/`. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: '34' + workspace_id: this_is_an_id112_that_should_be_at_least_ + name: Update collection name + url: http://help-center.test/myapp-112/collection-25 + order: 25 + created_at: 1736201450 + updated_at: 1736201450 + description: english collection description + icon: folder + parent_id: + help_center_id: 25 + schema: + "$ref": "#/components/schemas/collection" + '404': + description: Collection Not Found + content: + application/json: + examples: + Collection Not Found: + value: + type: error.list + request_id: 6a6ec0e9-2f4b-4f64-aca2-6a75231d82fd + 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: f4609d95-2230-4bd1-8bcd-e31b16e7fdfe + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/update_collection_request" + examples: + successful: + summary: successful + value: + name: Update collection name + collection_not_found: + summary: Collection Not Found + value: + name: Update collection name + delete: + summary: Delete a collection + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the collection which is given by Intercom. + example: 123 + schema: + type: integer + tags: + - Help Center + operationId: deleteCollection + description: You can delete a single collection by making a DELETE request to + `https://api.intercom.io/collections/`. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: '40' + object: collection + deleted: true + schema: + "$ref": "#/components/schemas/deleted_collection_object" + '404': + description: collection Not Found + content: + application/json: + examples: + collection Not Found: + value: + type: error.list + request_id: d0d5150b-003e-4f8c-bfde-778d13492d70 + 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: ad53ea97-087f-42e7-a8c9-aa3ab8042d30 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/help_center/help_centers/{id}": + get: + summary: Retrieve a Help Center + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the collection which is given by Intercom. + example: 123 + schema: + type: integer + tags: + - Help Center + operationId: retrieveHelpCenter + description: You can fetch the details of a single Help Center by making a GET + request to `https://api.intercom.io/help_center/help_center/`. + responses: + '200': + description: Collection found + content: + application/json: + examples: + Collection found: + value: + id: '31' + workspace_id: this_is_an_id124_that_should_be_at_least_ + created_at: 1736201455 + updated_at: 1736201455 + identifier: help-center-1 + website_turned_on: false + display_name: Intercom Help Center + schema: + "$ref": "#/components/schemas/help_center" + '404': + description: Collection not found + content: + application/json: + examples: + Collection not found: + value: + type: error.list + request_id: 7ff2dbc1-5f02-4e9b-85b3-def6646ef38d + 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: b9e0567c-eb78-4865-b209-1e1117bd765c + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/help_center/help_centers": + get: + summary: List all Help Centers + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Help Center + operationId: listHelpCenters + description: You can list all Help Centers by making a GET request to `https://api.intercom.io/help_center/help_centers`. + responses: + '200': + description: Help Centers found + content: + application/json: + examples: + Help Centers found: + value: + type: list + data: [] + schema: + "$ref": "#/components/schemas/help_center_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: f1212be9-8ecc-40e4-bb97-6e538b507f15 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/companies": + post: + summary: Create or Update a company + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Companies + operationId: createOrUpdateCompany + description: | + You can create or update a company. + + Companies will be only visible in Intercom when there is at least one associated user. + + 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="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: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: company + company_id: company_remote_id + id: 677c54f86abd011ad17ff451 + app_id: this_is_an_id147_that_should_be_at_least_ + name: my company + remote_created_at: 1374138000 + created_at: 1736201464 + updated_at: 1736201464 + monthly_spend: 0 + session_count: 0 + user_count: 0 + tags: + type: tag.list + tags: [] + segments: + type: segment.list + segments: [] + plan: {} + custom_attributes: + creation_source: api + schema: + "$ref": "#/components/schemas/company" + '400': + description: Bad Request + content: + application/json: + examples: + Bad Request: + value: + type: error.list + request_id: + errors: + - code: bad_request + message: bad 'test' parameter + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: c8865762-5cbf-4abb-a683-0e1284c6a651 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_or_update_company_request" + examples: + successful: + summary: Successful + value: + company_id: company_remote_id + name: my company + remote_created_at: 1374138000 + bad_request: + summary: Bad Request + value: + test: invalid + get: + summary: Retrieve companies + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: name + in: query + required: false + description: The `name` of the company to filter by. + example: my company + schema: + type: string + - name: company_id + in: query + required: false + description: The `company_id` of the company to filter by. + example: '12345' + schema: + type: string + - name: tag_id + in: query + required: false + description: The `tag_id` of the company to filter by. + example: '678910' + schema: + type: string + - name: segment_id + in: query + required: false + description: The `segment_id` of the company to filter by. + example: '98765' + 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 display per page. Defaults to 15 + example: 15 + schema: + type: integer + tags: + - Companies + operationId: retrieveCompany + description: | + You can fetch a single company by passing in `company_id` or `name`. + + `https://api.intercom.io/companies?name={name}` + + `https://api.intercom.io/companies?company_id={company_id}` + + You can fetch all companies and filter by `segment_id` or `tag_id` as a query parameter. + + `https://api.intercom.io/companies?tag_id={tag_id}` + + `https://api.intercom.io/companies?segment_id={segment_id}` + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: list + data: + - type: company + company_id: remote_companies_scroll_2 + id: 677c54fb6abd011ad17ff459 + app_id: this_is_an_id153_that_should_be_at_least_ + name: IntercomQATest1 + remote_created_at: 1736201467 + created_at: 1736201467 + updated_at: 1736201467 + monthly_spend: 0 + session_count: 0 + user_count: 4 + tags: + type: tag.list + tags: [] + segments: + type: segment.list + segments: [] + plan: {} + custom_attributes: {} + pages: + type: pages + next: + page: 1 + per_page: 15 + total_pages: 1 + total_count: 1 + schema: + "$ref": "#/components/schemas/company_list" + '404': + description: Company Not Found + content: + application/json: + examples: + Company Not Found: + value: + type: error.list + request_id: cf19fa17-67f4-4b57-9570-2bb17a1f01bf + errors: + - code: company_not_found + message: Company Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 547a27a3-c2a1-47e5-aa1a-9d9908cca89d + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/companies/{id}": + get: + summary: Retrieve a company by ID + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - 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 + tags: + - Companies + operationId: RetrieveACompanyById + description: You can fetch a single company. + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: company + company_id: '1' + id: 677c54ff6abd011ad17ff464 + app_id: this_is_an_id159_that_should_be_at_least_ + name: company1 + remote_created_at: 1736201471 + created_at: 1736201471 + updated_at: 1736201471 + monthly_spend: 0 + session_count: 0 + user_count: 1 + tags: + type: tag.list + tags: [] + segments: + type: segment.list + segments: [] + plan: {} + custom_attributes: {} + schema: + "$ref": "#/components/schemas/company" + '404': + description: Company Not Found + content: + application/json: + examples: + Company Not Found: + value: + type: error.list + request_id: 24e05b5f-2268-4356-afa7-2dc2762c49a6 + errors: + - code: company_not_found + message: Company Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: d0351310-fbe9-4f50-ba8b-76b940c686ca + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + put: + summary: Update a company + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - 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 + tags: + - Companies + operationId: UpdateCompany + description: | + You can update a single company using the Intercom provisioned `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: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: company + company_id: '1' + id: 677c55036abd011ad17ff46e + app_id: this_is_an_id165_that_should_be_at_least_ + name: company2 + remote_created_at: 1736201475 + created_at: 1736201475 + updated_at: 1736201475 + monthly_spend: 0 + session_count: 0 + user_count: 1 + tags: + type: tag.list + tags: [] + segments: + type: segment.list + segments: [] + plan: {} + custom_attributes: {} + schema: + "$ref": "#/components/schemas/company" + '404': + description: Company Not Found + content: + application/json: + examples: + Company Not Found: + value: + type: error.list + request_id: 3f0c9792-e053-40d0-8ce9-56576f0278e2 + errors: + - code: company_not_found + message: Company Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 2aedb110-28ab-4441-93c9-e980bca8eaba + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + delete: + summary: Delete a company + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - 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 + tags: + - Companies + operationId: deleteCompany + description: You can delete a single company. + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + id: 677c55076abd011ad17ff478 + object: company + deleted: true + schema: + "$ref": "#/components/schemas/deleted_company_object" + '404': + description: Company Not Found + content: + application/json: + examples: + Company Not Found: + value: + type: error.list + request_id: 71f3299e-08b6-41b2-aaa6-c2c97007d803 + errors: + - code: company_not_found + message: Company Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: e20545e0-4c39-48d2-b0df-24b33d4dead8 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/companies/{id}/contacts": + get: + summary: List attached contacts + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - 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 + tags: + - Companies + - Contacts + operationId: ListAttachedContacts + description: You can fetch a list of all contacts that belong to a company. + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: list + data: [] + total_count: 0 + pages: + type: pages + page: 1 + per_page: 50 + total_pages: 0 + schema: + "$ref": "#/components/schemas/company_attached_contacts" + '404': + description: Company Not Found + content: + application/json: + examples: + Company Not Found: + value: + type: error.list + request_id: 4b7eb536-2ff1-453e-919b-3f0c49b4e61a + errors: + - code: company_not_found + message: Company Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: f48ba0a0-1efe-42ee-ab4f-e130c3e35236 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/companies/{id}/segments": + get: + summary: List attached segments for companies + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - 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 + tags: + - Companies + operationId: ListAttachedSegmentsForCompanies + description: You can fetch a list of all segments that belong to a company. + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: list + data: [] + schema: + "$ref": "#/components/schemas/company_attached_segments" + '404': + description: Company Not Found + content: + application/json: + examples: + Company Not Found: + value: + type: error.list + request_id: 90ad68e2-cc5f-4bc0-96c2-7ba92bee5a19 + errors: + - code: company_not_found + message: Company Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 2095e269-d75e-4dc1-9350-f9e440ca4f7a + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/companies/list": + post: + summary: List all companies + parameters: + - 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 return per page. Defaults to 15 + example: 15 + schema: + type: integer + - name: order + in: query + required: false + description: "`asc` or `desc`. Return the companies in ascending or descending + order. Defaults to desc" + example: desc + schema: + type: string + tags: + - Companies + operationId: listAllCompanies + description: | + You can list companies. The company list is sorted by the `last_request_at` field and by default is ordered descending, most recently requested first. + + Note that the API does not include companies who have no associated users in list responses. + + When using the Companies endpoint and the pages object to iterate through the returned companies, there is a limit of 10,000 Companies that can be returned. If you need to list or iterate on more than 10,000 Companies, please use the [Scroll API](https://developers.intercom.com/reference#iterating-over-all-companies). + {% admonition type="warning" name="Pagination" %} + You can use pagination to limit the number of results returned. The default is `20` results per page. + See the [pagination section](https://developers.intercom.com/docs/build-an-integration/learn-more/rest-apis/pagination/#pagination-for-list-apis) for more details on how to use the `starting_after` param. + {% /admonition %} + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: list + data: + - type: company + company_id: remote_companies_scroll_2 + id: 677c55126abd011ad17ff494 + app_id: this_is_an_id189_that_should_be_at_least_ + name: IntercomQATest1 + remote_created_at: 1736201490 + created_at: 1736201490 + updated_at: 1736201490 + monthly_spend: 0 + session_count: 0 + user_count: 4 + tags: + type: tag.list + tags: [] + segments: + type: segment.list + segments: [] + plan: {} + custom_attributes: {} + pages: + type: pages + next: + page: 1 + per_page: 15 + total_pages: 1 + total_count: 1 + schema: + "$ref": "#/components/schemas/company_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 914b5f24-dc24-47b9-805b-25b6049b7b87 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/companies/scroll": + get: + summary: Scroll over all companies + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: scroll_param + in: query + required: false + description: '' + schema: + type: string + tags: + - Companies + operationId: scrollOverAllCompanies + description: |2 + The `list all companies` functionality does not work well for huge datasets, and can result in errors and performance problems when paging deeply. The Scroll API provides an efficient mechanism for iterating over all companies in a dataset. + + - Each app can only have 1 scroll open at a time. You'll get an error message if you try to have more than one open per app. + - If the scroll isn't used for 1 minute, it expires and calls with that scroll param will fail + - If the end of the scroll is reached, "companies" will be empty and the scroll parameter will expire + + {% admonition type="info" name="Scroll Parameter" %} + You can get the first page of companies by simply sending a GET request to the scroll endpoint. + For subsequent requests you will need to use the scroll parameter from the response. + {% /admonition %} + {% admonition type="danger" name="Scroll network timeouts" %} + Since scroll is often used on large datasets network errors such as timeouts can be encountered. When this occurs you will see a HTTP 500 error with the following message: + "Request failed due to an internal network error. Please restart the scroll operation." + If this happens, you will need to restart your scroll query: It is not possible to continue from a specific point when using scroll. + {% /admonition %} + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: list + data: + - type: company + company_id: remote_companies_scroll_2 + id: 677c55146abd011ad17ff49a + app_id: this_is_an_id193_that_should_be_at_least_ + name: IntercomQATest1 + remote_created_at: 1736201492 + created_at: 1736201492 + updated_at: 1736201492 + monthly_spend: 0 + session_count: 0 + user_count: 4 + tags: + type: tag.list + tags: [] + segments: + type: segment.list + segments: [] + plan: {} + custom_attributes: {} + pages: + total_count: + scroll_param: 40309d82-25c6-4ea6-aba2-5a3b2b1ce31c + schema: + "$ref": "#/components/schemas/company_scroll" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: adeed8a3-43d3-41fa-9862-0efb8d89aa1d + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/contacts/{id}/companies": + post: + summary: Attach a Contact to a Company + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: id + in: path + required: true + description: The unique identifier for the contact which is given by Intercom + schema: + type: string + tags: + - Companies + - Contacts + operationId: attachContactToACompany + description: You can attach a company to a single contact. + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: company + company_id: '1' + id: 677c55186abd011ad17ff4a3 + app_id: this_is_an_id197_that_should_be_at_least_ + name: company6 + remote_created_at: 1736201496 + created_at: 1736201496 + updated_at: 1736201496 + monthly_spend: 0 + session_count: 0 + user_count: 1 + tags: + type: tag.list + tags: [] + segments: + type: segment.list + segments: [] + plan: {} + custom_attributes: {} + schema: + "$ref": "#/components/schemas/company" + '400': + description: Bad Request + content: + application/json: + examples: + Bad Request: + value: + type: error.list + request_id: f80bd7e0-9b4b-45b4-8cd0-d635493e00c5 + errors: + - code: parameter_not_found + message: company not specified + schema: + "$ref": "#/components/schemas/error" + '404': + description: Company Not Found + content: + application/json: + examples: + Company Not Found: + value: + type: error.list + request_id: bc39fd1a-d5cd-47aa-9ce6-4af76103a4ea + errors: + - code: company_not_found + message: Company Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: f486d079-19ca-492d-b847-e07baaef2a37 + 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 company which is given + by Intercom + example: 58a430d35458202d41b1e65b + examples: + successful: + summary: Successful + value: + id: 677c55186abd011ad17ff4a3 + bad_request: + summary: Bad Request + value: + company_not_found: + summary: Company Not Found + value: + id: '123' + get: + summary: List attached companies for contact + parameters: + - name: 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 + - Companies + operationId: listCompaniesForAContact + description: You can fetch a list of companies that are associated to a contact. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: list + data: + - type: company + company_id: '1' + id: 677c55246abd011ad17ff4c4 + app_id: this_is_an_id213_that_should_be_at_least_ + name: company12 + remote_created_at: 1736201508 + created_at: 1736201508 + updated_at: 1736201508 + last_request_at: 1736028708 + monthly_spend: 0 + session_count: 0 + user_count: 1 + tags: + type: tag.list + tags: [] + segments: + type: segment.list + segments: [] + plan: {} + custom_attributes: {} + pages: + type: pages + next: + page: 1 + per_page: 50 + total_pages: 1 + total_count: 1 + schema: + "$ref": "#/components/schemas/contact_attached_companies" + '404': + description: Contact not found + content: + application/json: + examples: + Contact not found: + value: + type: error.list + request_id: fb349b74-acf6-4858-b13c-2bb5b29a6484 + 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: dc76f9d0-2450-4131-b176-0eb95c6c6188 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/contacts/{contact_id}/companies/{id}": + delete: + summary: Detach a contact from a company + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: contact_id + in: path + required: true + description: The unique identifier for the contact which is given by Intercom + example: 58a430d35458202d41b1e65b + schema: + type: string + - name: id + in: path + required: true + description: The unique identifier for the company which is given by Intercom + example: 58a430d35458202d41b1e65b + schema: + type: string + tags: + - Companies + - Contacts + operationId: detachContactFromACompany + description: You can detach a company from a single contact. + responses: + '200': + description: Successful + content: + application/json: + examples: + Successful: + value: + type: company + company_id: '1' + id: 677c551e6abd011ad17ff4b3 + app_id: this_is_an_id205_that_should_be_at_least_ + name: company8 + remote_created_at: 1736201502 + created_at: 1736201502 + updated_at: 1736201502 + monthly_spend: 0 + session_count: 0 + user_count: 0 + tags: + type: tag.list + tags: [] + segments: + type: segment.list + segments: [] + plan: {} + custom_attributes: {} + schema: + "$ref": "#/components/schemas/company" + '404': + description: Contact Not Found + content: + application/json: + examples: + Company Not Found: + value: + type: error.list + request_id: 425308fc-1a92-4b5d-9154-0fd145e9938a + errors: + - code: company_not_found + message: Company Not Found + Contact Not Found: + value: + type: error.list + request_id: 41bb20e2-a0ef-4b7f-81c4-fd46d49637d6 + 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: dba5ba2e-c87e-4379-88d5-d3db175201f5 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/contacts/{id}/notes": + get: + summary: List all notes + parameters: + - name: id + in: path + required: true + description: The unique identifier of a contact. + schema: + type: integer + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Notes + - Contacts + operationId: listNotes + description: You can fetch a list of notes that are associated to a contact. + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful response: + value: + type: list + data: + - type: note + id: '3' + created_at: 1735596713 + 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: '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 | String
Accepts user or lead | + | name | String | + | avatar | String | + | owner_id | Integer | + | email | String | + | email_domain | String | + | phone | String | + | external_id | String | + | created_at | Date (UNIX Timestamp) | + | signed_up_at | Date (UNIX Timestamp) | + | updated_at | Date (UNIX Timestamp) | + | last_seen_at | Date (UNIX Timestamp) | + | last_contacted_at | Date (UNIX Timestamp) | + | last_replied_at | Date (UNIX Timestamp) | + | last_email_opened_at | Date (UNIX Timestamp) | + | last_email_clicked_at | Date (UNIX Timestamp) | + | language_override | String | + | browser | String | + | browser_language | String | + | os | String | + | location.country | String | + | location.region | String | + | location.city | String | + | unsubscribed_from_emails | Boolean | + | marked_email_as_spam | Boolean | + | has_hard_bounced | Boolean | + | ios_last_seen_at | Date (UNIX Timestamp) | + | ios_app_version | String | + | ios_device | String | + | ios_app_device | String | + | ios_os_version | String | + | ios_app_name | String | + | ios_sdk_version | String | + | android_last_seen_at | Date (UNIX Timestamp) | + | android_app_version | String | + | android_device | String | + | android_app_name | String | + | andoid_sdk_version | String | + | segment_id | String | + | tag_id | String | + | custom_attributes.{attribute_name} | String | + + ### Accepted Operators + + {% admonition type="warning" name="Searching based on `created_at`" %} + You cannot use the `<=` or `>=` operators to search by `created_at`. + {% /admonition %} + + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + + | Operator | Valid Types | Description | + | :------- | :------------------------------- | :--------------------------------------------------------------- | + | = | All | Equals | + | != | All | Doesn't Equal | + | IN | All | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Date (UNIX Timestamp) | Greater than | + | < | Integer
Date (UNIX Timestamp) | Lower than | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: list + data: [] + total_count: 0 + pages: + type: pages + page: 1 + per_page: 5 + total_pages: 0 + schema: + "$ref": "#/components/schemas/contact_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 48002408-749d-46b2-8781-749f08e4ecc5 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + 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 + "/contacts": + get: + summary: List all contacts + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Contacts + operationId: ListContacts + description: | + You can fetch a list of all contacts (ie. users or leads) in your workspace. + {% admonition type="warning" name="Pagination" %} + You can use 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/#pagination-for-list-apis) for more details on how to use the `starting_after` param. + {% /admonition %} + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: list + data: [] + total_count: 0 + pages: + type: pages + page: 1 + per_page: 10 + total_pages: 0 + schema: + "$ref": "#/components/schemas/contact_list" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 4ca707c8-76e6-4fbf-88e5-bd68ca9454a8 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + post: + summary: Create contact + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Contacts + operationId: CreateContact + description: You can create a new contact (ie. user or lead). + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: contact + id: 677c55566abd011ad17ff4f2 + workspace_id: this_is_an_id303_that_should_be_at_least_ + external_id: + role: user + email: joebloggs@intercom.io + phone: + name: + avatar: + owner_id: + social_profiles: + type: list + data: [] + has_hard_bounced: false + marked_email_as_spam: false + unsubscribed_from_emails: false + created_at: 1736201558 + updated_at: 1736201558 + 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: + 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/677c55566abd011ad17ff4f2/tags" + total_count: 0 + has_more: false + notes: + type: list + data: [] + url: "/contacts/677c55566abd011ad17ff4f2/notes" + total_count: 0 + has_more: false + companies: + type: list + data: [] + url: "/contacts/677c55566abd011ad17ff4f2/companies" + total_count: 0 + has_more: false + opted_out_subscription_types: + type: list + data: [] + url: "/contacts/677c55566abd011ad17ff4f2/subscriptions" + total_count: 0 + has_more: false + opted_in_subscription_types: + type: list + data: [] + url: "/contacts/677c55566abd011ad17ff4f2/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: 612a4bf9-525d-4986-b5e6-1288dcadd16b + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + oneOf: + - "$ref": "#/components/schemas/create_contact_request" + examples: + successful: + summary: successful + value: + email: joebloggs@intercom.io + "/contacts/{id}/archive": + post: + summary: Archive 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: ArchiveContact + description: You can archive a single contact. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: 677c55596abd011ad17ff4f3 + external_id: '70' + type: contact + archived: true + schema: + "$ref": "#/components/schemas/contact_archived" + "/contacts/{id}/unarchive": + post: + summary: Unarchive 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: UnarchiveContact + description: You can unarchive a single contact. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + id: 677c555a6abd011ad17ff4f4 + external_id: '70' + type: contact + archived: false + schema: + "$ref": "#/components/schemas/contact_unarchived" + "/conversations/{conversation_id}/tags": + post: + summary: Add tag to a conversation + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: conversation_id + in: path + description: conversation_id + example: '64619700005694' + required: true + schema: + type: string + tags: + - Tags + - Conversations + operationId: attachTagToConversation + description: You can tag a specific conversation. This will return a tag object + for the tag that was added to the conversation. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: tag + id: '7' + name: Manual tag + schema: + "$ref": "#/components/schemas/tag" + '404': + description: Conversation not found + content: + application/json: + examples: + Conversation not found: + value: + type: error.list + request_id: b87c6da6-44ed-4ff3-ac9a-cbc3a1a8f299 + errors: + - code: not_found + message: Conversation not found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 24238268-c06a-4502-8a6a-c08c80908951 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + type: object + required: + - id + - admin_id + properties: + id: + type: string + description: The unique identifier for the tag which is given by + Intercom + example: '7522907' + admin_id: + type: string + description: The unique identifier for the admin which is given + by Intercom. + example: '780' + examples: + successful: + summary: successful + value: + id: 7 + admin_id: 991266371 + conversation_not_found: + summary: Conversation not found + value: + id: 8 + admin_id: 991266373 + "/conversations/{conversation_id}/tags/{id}": + delete: + summary: Remove tag from a conversation + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: conversation_id + in: path + description: conversation_id + example: '64619700005694' + required: true + schema: + type: string + - name: id + in: path + description: id + example: '7522907' + required: true + schema: + type: string + tags: + - Tags + - Conversations + operationId: detachTagFromConversation + description: You can remove tag from a specific conversation. This will return + a tag object for the tag that was removed from the conversation. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: tag + id: '10' + name: Manual tag + schema: + "$ref": "#/components/schemas/tag" + '404': + description: Tag not found + content: + application/json: + examples: + Conversation not found: + value: + type: error.list + request_id: e8b089d1-cdc1-4538-8bbf-578aafb248ae + errors: + - code: not_found + message: Conversation not found + Tag not found: + value: + type: error.list + request_id: 74b82c49-a185-41ff-908b-36fccb7eff56 + errors: + - code: tag_not_found + message: Tag not found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 860f335b-69aa-4d17-af97-2f29fc85ef03 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + type: object + required: + - admin_id + properties: + admin_id: + type: string + description: The unique identifier for the admin which is given + by Intercom. + example: '123' + examples: + successful: + summary: successful + value: + admin_id: 991266375 + conversation_not_found: + summary: Conversation not found + value: + admin_id: 991266377 + tag_not_found: + summary: Tag not found + value: + admin_id: 991266378 + "/conversations": + get: + summary: List all conversations + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: per_page + in: query + schema: + type: integer + default: 20 + maximum: 150 + required: false + description: How many results per page + - name: starting_after + in: query + required: false + description: String used to get the next page of conversations. + schema: + type: string + tags: + - Conversations + operationId: listConversations + description: | + You can fetch a list of all conversations. + + You can optionally request the result page size and the cursor to start after to fetch the result. + {% admonition type="warning" name="Pagination" %} + You can use pagination to limit the number of results returned. The default is `20` results per page. + See the [pagination section](https://developers.intercom.com/docs/build-an-integration/learn-more/rest-apis/pagination/#pagination-for-list-apis) for more details on how to use the `starting_after` param. + {% /admonition %} + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: conversation.list + pages: + type: pages + page: 1 + per_page: 20 + total_pages: 1 + total_count: 1 + conversations: + - type: conversation + id: '5' + created_at: 1736201576 + updated_at: 1736201576 + waiting_since: + snoozed_until: + source: + type: conversation + id: '403918065' + delivered_as: admin_initiated + subject: '' + body: "

this 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 | String
Accepted fields are `conversation`, `email`, `facebook`, `instagram`, `phone_call`, `phone_switch`, `push`, `sms`, `twitter` and `whatsapp`. | + | source.id | String | + | source.delivered_as | String | + | source.subject | String | + | source.body | String | + | source.author.id | String | + | source.author.type | String | + | source.author.name | String | + | source.author.email | String | + | source.url | String | + | contact_ids | String | + | teammate_ids | String | + | admin_assignee_id | String | + | team_assignee_id | String | + | channel_initiated | String | + | open | Boolean | + | read | Boolean | + | state | String | + | waiting_since | Date (UNIX timestamp) | + | snoozed_until | Date (UNIX timestamp) | + | tag_ids | String | + | priority | String | + | statistics.time_to_assignment | Integer | + | statistics.time_to_admin_reply | Integer | + | statistics.time_to_first_close | Integer | + | statistics.time_to_last_close | Integer | + | statistics.median_time_to_reply | Integer | + | statistics.first_contact_reply_at | Date (UNIX timestamp) | + | statistics.first_assignment_at | Date (UNIX timestamp) | + | statistics.first_admin_reply_at | Date (UNIX timestamp) | + | statistics.first_close_at | Date (UNIX timestamp) | + | statistics.last_assignment_at | Date (UNIX timestamp) | + | statistics.last_assignment_admin_reply_at | Date (UNIX timestamp) | + | statistics.last_contact_reply_at | Date (UNIX timestamp) | + | statistics.last_admin_reply_at | Date (UNIX timestamp) | + | statistics.last_close_at | Date (UNIX timestamp) | + | statistics.last_closed_by_id | String | + | statistics.count_reopens | Integer | + | statistics.count_assignments | Integer | + | statistics.count_conversation_parts | Integer | + | conversation_rating.requested_at | Date (UNIX timestamp) | + | conversation_rating.replied_at | Date (UNIX timestamp) | + | conversation_rating.score | Integer | + | conversation_rating.remark | String | + | conversation_rating.contact_id | String | + | conversation_rating.admin_d | String | + | ai_agent_participated | Boolean | + | ai_agent.resolution_state | String | + | ai_agent.last_answer_type | String | + | ai_agent.rating | Integer | + | ai_agent.rating_remark | String | + | ai_agent.source_type | String | + | ai_agent.source_title | String | + + ### Accepted Operators + + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + + | Operator | Valid Types | Description | + | :------- | :----------------------------- | :----------------------------------------------------------- | + | = | 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 | + | > | Integer Date (UNIX Timestamp) | Greater (or equal) than | + | < | Integer Date (UNIX Timestamp) | Lower (or equal) than | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: conversation.list + pages: + type: pages + page: 1 + per_page: 5 + total_pages: 1 + total_count: 1 + conversations: + - type: conversation + id: '49' + created_at: 1736201646 + updated_at: 1736201647 + waiting_since: + snoozed_until: + source: + type: conversation + id: '403918091' + delivered_as: admin_initiated + subject: '' + body: "

this 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: |- +

An Unordered HTML List

+
    +
  • Coffee
  • +
  • Tea
  • +
  • Milk
  • +
+

An Ordered HTML List

+
    +
  1. Coffee
  2. +
  3. Tea
  4. +
  5. Milk
  6. +
+ created_at: 1736201662 + updated_at: 1736201662 + notified_at: 1736201662 + assigned_to: + author: + id: '991266449' + type: admin + name: Ciaran211 Lee + email: admin211@email.com + attachments: [] + external_id: + redacted: false + total_count: 1 + User last conversation reply: + value: + type: conversation + id: '61' + created_at: 1736201666 + updated_at: 1736201667 + waiting_since: 1736201667 + snoozed_until: + source: + type: conversation + id: '403918097' + delivered_as: admin_initiated + subject: '' + 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: "

An Unordered HTML List

  • Coffee
  • + \
  • Tea
  • Milk

An Ordered HTML List

+ \
  1. Coffee
  2. Tea
  3. Milk
+ \ " + user_last_conversation_reply: + summary: User last conversation reply + value: + message_type: comment + type: user + intercom_user_id: 677c55c16abd011ad17ff52b + body: Thanks again :) + not_found: + summary: Not found + value: + message_type: comment + type: user + intercom_user_id: 677c55c56abd011ad17ff52c + body: Thanks again :) + "/conversations/{id}/parts": + post: + summary: Manage 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: manageConversation + description: | + For managing conversations you can: + - Close a conversation + - Snooze a conversation to reopen on a future date + - Open a conversation which is `snoozed` or `closed` + - Assign a conversation to an admin and/or team. + responses: + '200': + description: Assign a conversation + content: + application/json: + examples: + Close a conversation: + value: + type: conversation + id: '65' + created_at: 1736201676 + updated_at: 1736201677 + waiting_since: + snoozed_until: + source: + type: conversation + id: '403918101' + delivered_as: admin_initiated + subject: '' + 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: |- +

An Unordered HTML List

+
    +
  • Coffee
  • +
  • Tea
  • +
  • Milk
  • +
+

An Ordered HTML List

+
    +
  1. Coffee
  2. +
  3. Tea
  4. +
  5. Milk
  6. +
+ created_at: 1736201911 + updated_at: 1736201911 + author: + id: '991266696' + type: admin + name: Ciaran417 Lee + email: admin417@email.com + attachments: [] + redacted: false + Admin quick_reply reply: + value: + type: ticket_part + id: '33' + part_type: quick_reply + created_at: 1736201915 + updated_at: 1736201915 + author: + id: '991266701' + type: admin + name: Ciaran421 Lee + email: admin421@email.com + attachments: [] + redacted: false + schema: + "$ref": "#/components/schemas/ticket_reply" + '404': + description: Not found + content: + application/json: + examples: + Not found: + value: + type: error.list + request_id: 32005c52-543d-409e-88df-cdc2ef696b8c + 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: 2e147097-ebc0-48e4-b756-eb765362cb96 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + oneOf: + - "$ref": "#/components/schemas/contact_reply_ticket_request" + - "$ref": "#/components/schemas/admin_reply_ticket_request" + examples: + user_reply: + summary: User reply + value: + message_type: comment + type: user + intercom_user_id: 677c56b36abd011ad17ff5b6 + body: Thanks again :) + admin_note_reply: + summary: Admin note reply + value: + message_type: note + type: admin + admin_id: 991266696 + body: "

An Unordered HTML List

  • Coffee
  • + \
  • Tea
  • Milk

An Ordered HTML List

+ \
  1. Coffee
  2. Tea
  3. Milk
+ \ " + admin_quick_reply_reply: + summary: Admin quick_reply reply + value: + message_type: quick_reply + type: admin + admin_id: 991266701 + reply_options: + - text: 'Yes' + uuid: 884f7963-b954-4476-8082-10ecca2e2dac + - text: 'No' + uuid: e569aabd-8a51-43f3-a553-fa08256ebd8d + not_found: + summary: Not found + value: + message_type: comment + type: user + intercom_user_id: 677c56bd6abd011ad17ff5b9 + body: Thanks again :) + "/tickets/{ticket_id}/tags": + post: + summary: Add tag to a ticket + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: ticket_id + in: path + description: ticket_id + example: '64619700005694' + required: true + schema: + type: string + tags: + - Tags + - Tickets + operationId: attachTagToTicket + description: You can tag a specific ticket. This will return a tag object for + the tag that was added to the ticket. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: tag + id: '42' + name: Manual tag + schema: + "$ref": "#/components/schemas/tag" + '404': + description: Ticket not found + content: + application/json: + examples: + Ticket not found: + value: + type: error.list + request_id: b3198b79-ebf7-4416-8552-55b2c77709a0 + errors: + - code: ticket_not_found + message: Ticket not found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 4beb5d30-29a6-446e-80bd-741bde4ed64f + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + type: object + required: + - id + - admin_id + properties: + id: + type: string + description: The unique identifier for the tag which is given by + Intercom + example: '7522907' + admin_id: + type: string + description: The unique identifier for the admin which is given + by Intercom. + example: '780' + examples: + successful: + summary: successful + value: + id: 42 + admin_id: 991266711 + ticket_not_found: + summary: Ticket not found + value: + id: 43 + admin_id: 991266716 + "/tickets/{ticket_id}/tags/{id}": + delete: + summary: Remove tag from a ticket + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: ticket_id + in: path + description: ticket_id + example: '64619700005694' + 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 + tags: + - Tags + - Tickets + operationId: detachTagFromTicket + description: You can remove tag from a specific ticket. This will return a tag + object for the tag that was removed from the ticket. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: tag + id: '45' + name: Manual tag + schema: + "$ref": "#/components/schemas/tag" + '404': + description: Tag not found + content: + application/json: + examples: + Ticket not found: + value: + type: error.list + request_id: 1865bc32-8bb3-4a50-ba85-501e2273a207 + errors: + - code: ticket_not_found + message: Ticket not found + Tag not found: + value: + type: error.list + request_id: cc601e0a-58fb-411f-a85e-e3a545f988c8 + errors: + - code: tag_not_found + message: Tag not found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: c3f3ab0e-8c5e-48cf-9c5d-40d87a3d6bdb + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + type: object + required: + - admin_id + properties: + admin_id: + type: string + description: The unique identifier for the admin which is given + by Intercom. + example: '123' + examples: + successful: + summary: successful + value: + admin_id: 991266726 + ticket_not_found: + summary: Ticket not found + value: + admin_id: 991266731 + tag_not_found: + summary: Tag not found + value: + admin_id: 991266736 + "/tickets": + post: + summary: Create a ticket + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Tickets + description: You can create a new ticket. + operationId: createTicket + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful response: + value: + type: ticket + id: '160' + ticket_id: '12' + ticket_attributes: + _default_title_: example + _default_description_: there is a problem + ticket_state: + type: ticket_state + id: '2733' + category: submitted + internal_label: Submitted + external_label: Submitted + ticket_type: + type: ticket_type + id: '36' + name: my-ticket-type-23 + description: my ticket type description is awesome. + icon: "\U0001F981" + workspace_id: this_is_an_id683_that_should_be_at_least_ + archived: false + created_at: 1736201956 + updated_at: 1736201956 + is_internal: false + ticket_type_attributes: + type: list + data: + - type: ticket_type_attribute + id: '63' + workspace_id: this_is_an_id683_that_should_be_at_least_ + name: _default_title_ + description: ola + data_type: string + input_options: + order: 0 + required_to_create: true + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: false + default: false + ticket_type_id: 36 + archived: false + created_at: 1736201956 + updated_at: 1736201956 + - type: ticket_type_attribute + id: '64' + workspace_id: this_is_an_id683_that_should_be_at_least_ + name: _default_description_ + description: ola + data_type: string + input_options: + order: 0 + required_to_create: true + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: false + default: false + ticket_type_id: 36 + archived: false + created_at: 1736201956 + updated_at: 1736201956 + category: Back-office + contacts: + type: contact.list + contacts: + - type: contact + id: 677c56e46abd011ad17ff5c1 + external_id: '70' + admin_assignee_id: '0' + team_assignee_id: '0' + created_at: 1736201957 + updated_at: 1736201958 + ticket_parts: + type: ticket_part.list + ticket_parts: + - type: ticket_part + id: '50' + part_type: ticket_state_updated_by_admin + ticket_state: submitted + previous_ticket_state: submitted + created_at: 1736201957 + updated_at: 1736201957 + author: + id: '991266752' + type: bot + name: Fin + email: operator+this_is_an_id683_that_should_be_at_least_@intercom.io + attachments: [] + redacted: false + total_count: 1 + open: true + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + category: Back-office + is_shared: false + schema: + "$ref": "#/components/schemas/ticket" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: ed4d2bb1-bf94-4922-9d05-7794e25de19d + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/create_ticket_request" + examples: + successful_response: + summary: Successful response + value: + ticket_type_id: 36 + contacts: + - id: 677c56e46abd011ad17ff5c1 + ticket_attributes: + _default_title_: example + _default_description_: there is a problem + "/tickets/{id}": + put: + summary: Update a ticket + 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 which is given by Intercom + schema: + type: string + tags: + - Tickets + operationId: updateTicket + description: You can update a ticket. + responses: + '200': + description: Successful response + content: + application/json: + examples: + Successful response: + value: + type: ticket + id: '161' + ticket_id: '13' + ticket_attributes: + _default_title_: example + _default_description_: there is a problem + ticket_state: + type: ticket_state + id: '2750' + category: in_progress + internal_label: In progress + external_label: In progress + ticket_type: + type: ticket_type + id: '38' + name: my-ticket-type-25 + description: my ticket type description is awesome. + icon: "\U0001F981" + workspace_id: this_is_an_id687_that_should_be_at_least_ + archived: false + created_at: 1736201960 + updated_at: 1736201960 + is_internal: false + ticket_type_attributes: + type: list + data: + - type: ticket_type_attribute + id: '67' + workspace_id: this_is_an_id687_that_should_be_at_least_ + name: _default_title_ + description: ola + data_type: string + input_options: + order: 0 + required_to_create: true + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: false + default: false + ticket_type_id: 38 + archived: false + created_at: 1736201960 + updated_at: 1736201960 + - type: ticket_type_attribute + id: '68' + workspace_id: this_is_an_id687_that_should_be_at_least_ + name: _default_description_ + description: ola + data_type: string + input_options: + order: 0 + required_to_create: true + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: false + default: false + ticket_type_id: 38 + archived: false + created_at: 1736201960 + updated_at: 1736201960 + category: Back-office + contacts: + type: contact.list + contacts: + - type: contact + id: 677c56e96abd011ad17ff5c2 + external_id: 113b5c67-c762-4dc6-ad96-6f2f1f9fbf79 + admin_assignee_id: '991266766' + team_assignee_id: '0' + created_at: 1736201961 + updated_at: 1736201965 + ticket_parts: + type: ticket_part.list + ticket_parts: + - type: ticket_part + id: '51' + part_type: ticket_state_updated_by_admin + ticket_state: submitted + previous_ticket_state: submitted + created_at: 1736201962 + updated_at: 1736201962 + author: + id: '991266764' + type: admin + name: Ciaran475 Lee + email: admin475@email.com + attachments: [] + redacted: false + - type: ticket_part + id: '52' + part_type: ticket_attribute_updated_by_admin + created_at: 1736201964 + updated_at: 1736201964 + author: + id: '991266765' + type: bot + name: Fin + email: operator+this_is_an_id687_that_should_be_at_least_@intercom.io + attachments: [] + redacted: false + - type: ticket_part + id: '53' + part_type: ticket_attribute_updated_by_admin + created_at: 1736201964 + updated_at: 1736201964 + author: + id: '991266765' + type: bot + name: Fin + email: operator+this_is_an_id687_that_should_be_at_least_@intercom.io + attachments: [] + redacted: false + - type: ticket_part + id: '54' + part_type: ticket_state_updated_by_admin + ticket_state: in_progress + previous_ticket_state: submitted + created_at: 1736201964 + updated_at: 1736201964 + author: + id: '991266765' + type: bot + name: Fin + email: operator+this_is_an_id687_that_should_be_at_least_@intercom.io + attachments: [] + redacted: false + - type: ticket_part + id: '55' + part_type: assignment + created_at: 1736201965 + updated_at: 1736201965 + assigned_to: + type: admin + id: '991266766' + author: + id: '991266764' + type: admin + name: Ciaran475 Lee + email: admin475@email.com + attachments: [] + redacted: false + - type: ticket_part + id: '56' + part_type: snoozed + created_at: 1736201965 + updated_at: 1736201965 + author: + id: '991266765' + type: bot + name: Fin + email: operator+this_is_an_id687_that_should_be_at_least_@intercom.io + attachments: [] + redacted: false + total_count: 6 + open: true + snoozed_until: 1736269200 + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + category: Back-office + is_shared: false + schema: + "$ref": "#/components/schemas/ticket" + '404': + description: Assignee not found + content: + application/json: + examples: + Admin not found: + value: + type: error.list + request_id: 2008f50e-1bfb-42ba-b8b7-35be65ceda40 + errors: + - code: assignee_not_found + message: Assignee not found + Assignee not found: + value: + type: error.list + request_id: 3e22c167-65f2-40be-9d11-fcf073b0e278 + errors: + - code: assignee_not_found + message: Assignee not found + '400': + description: Ticket state id is not valid or is not associated with the + ticket type. + content: + application/json: + examples: + Ticket state id is not valid or is not associated with the ticket type.: + value: + type: error.list + request_id: 436c2cd6-f9f7-45be-8ab6-e259445312d7 + errors: + - code: ticket_state_id_invalid + message: Ticket state id is not valid or is not associated with + the ticket type + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: cb6bf8a2-56e4-46c5-bdef-85c66fb95edb + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/update_ticket_request" + examples: + successful_response: + summary: Successful response + value: + ticket_attributes: + _default_title_: example + _default_description_: there is a problem + assignment: + admin_id: '991266764' + assignee_id: '991266766' + open: true + snoozed_until: 1673609604 + ticket_state_id: 2750 + admin_not_found: + summary: Admin not found + value: + ticket_attributes: + _default_title_: example + _default_description_: there is a problem + assignment: + admin_id: '123' + assignee_id: '991266774' + ticket_state_id: 2758 + assignee_not_found: + summary: Assignee not found + value: + ticket_attributes: + _default_title_: example + _default_description_: there is a problem + assignment: + admin_id: '991266780' + assignee_id: '456' + ticket_state_id: 2766 + ticket_state_id_is_not_valid_or_is_not_associated_with_the_ticket_type: + summary: Ticket state id is not valid or is not associated with the + ticket type. + value: + ticket_state_id: 0 + get: + summary: Retrieve a ticket + 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 which is given by Intercom. + schema: + type: string + tags: + - Tickets + operationId: getTicket + description: You can fetch the details of a single ticket. + responses: + '200': + description: Ticket found + content: + application/json: + examples: + Ticket found: + value: + type: ticket + id: '165' + ticket_id: '17' + ticket_attributes: + _default_title_: attribute_value + _default_description_: + ticket_state: + type: ticket_state + id: '2789' + category: submitted + internal_label: Submitted + external_label: Submitted + ticket_type: + type: ticket_type + id: '43' + name: my-ticket-type-30 + description: my ticket type description is awesome. + icon: "\U0001F981" + workspace_id: this_is_an_id697_that_should_be_at_least_ + archived: false + created_at: 1736201978 + updated_at: 1736201978 + is_internal: false + ticket_type_attributes: + type: list + data: + - type: ticket_type_attribute + id: '77' + workspace_id: this_is_an_id697_that_should_be_at_least_ + name: _default_title_ + description: ola + data_type: string + input_options: + order: 0 + required_to_create: true + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: false + default: false + ticket_type_id: 43 + archived: false + created_at: 1736201978 + updated_at: 1736201978 + - type: ticket_type_attribute + id: '78' + workspace_id: this_is_an_id697_that_should_be_at_least_ + name: _default_description_ + description: ola + data_type: string + input_options: + order: 0 + required_to_create: true + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: false + default: false + ticket_type_id: 43 + archived: false + created_at: 1736201979 + updated_at: 1736201979 + category: Back-office + contacts: + type: contact.list + contacts: + - type: contact + id: 677c56fb6abd011ad17ff5c6 + external_id: 3c0d041c-ae19-4be6-841f-800d5f98111d + admin_assignee_id: '0' + team_assignee_id: '0' + created_at: 1736201979 + updated_at: 1736201980 + ticket_parts: + type: ticket_part.list + ticket_parts: + - type: ticket_part + id: '60' + part_type: ticket_state_updated_by_admin + ticket_state: submitted + previous_ticket_state: submitted + created_at: 1736201980 + updated_at: 1736201980 + author: + id: '991266800' + type: admin + name: Ciaran507 Lee + email: admin507@email.com + attachments: [] + redacted: false + total_count: 1 + open: true + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + category: Back-office + is_shared: false + schema: + "$ref": "#/components/schemas/ticket" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 967a65ed-690b-4f99-9fb9-4b5c574c8554 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/tickets/search": + post: + summary: Search tickets + operationId: searchTickets + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Tickets + description: | + You can search for multiple tickets by the value of their attributes in order to fetch exactly which ones you want. + + To search for tickets, you send a `POST` request to `https://api.intercom.io/tickets/search`. + + This will accept a query object in the body which will define your filters. + {% 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. + 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 multiples 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 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 | + | category | String | + | ticket_type_id | String | + | contact_ids | String | + | teammate_ids | String | + | admin_assignee_id | String | + | team_assignee_id | String | + | open | Boolean | + | state | String | + | snoozed_until | Date (UNIX timestamp) | + | ticket_attribute.{id} | String or Boolean or Date (UNIX timestamp) or Float or Integer | + + ### Accepted Operators + + {% admonition type="info" name="Searching based on `created_at`" %} + You may use the `<=` or `>=` operators to search by `created_at`. + {% /admonition %} + + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + + | Operator | Valid Types | Description | + | :------- | :----------------------------- | :----------------------------------------------------------- | + | = | 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 | + | > | Integer Date (UNIX Timestamp) | Greater (or equal) than | + | < | Integer Date (UNIX Timestamp) | Lower (or equal) than | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: ticket.list + pages: + type: pages + page: 1 + per_page: 5 + total_pages: 1 + total_count: 1 + tickets: + - type: ticket + id: '166' + ticket_id: '18' + ticket_attributes: + _default_title_: attribute_value + _default_description_: + ticket_state: + type: ticket_state + id: '2817' + category: submitted + internal_label: Submitted + external_label: Submitted + ticket_type: + type: ticket_type + id: '48' + name: my-ticket-type-35 + description: my ticket type description is awesome. + icon: "\U0001F981" + workspace_id: this_is_an_id704_that_should_be_at_least_ + archived: false + created_at: 1736201985 + updated_at: 1736201985 + is_internal: false + ticket_type_attributes: + type: list + data: + - type: ticket_type_attribute + id: '87' + workspace_id: this_is_an_id704_that_should_be_at_least_ + name: _default_title_ + description: ola + data_type: string + input_options: + order: 0 + required_to_create: true + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: false + default: false + ticket_type_id: 48 + archived: false + created_at: 1736201986 + updated_at: 1736201986 + - type: ticket_type_attribute + id: '88' + workspace_id: this_is_an_id704_that_should_be_at_least_ + name: _default_description_ + description: ola + data_type: string + input_options: + order: 0 + required_to_create: true + required_to_create_for_contacts: false + visible_on_create: true + visible_to_contacts: false + default: false + ticket_type_id: 48 + archived: false + created_at: 1736201986 + updated_at: 1736201986 + category: Back-office + contacts: + type: contact.list + contacts: + - type: contact + id: 677c57026abd011ad17ff5c7 + external_id: a3796621-c64d-45d3-9491-49f6aaf4047a + admin_assignee_id: '0' + team_assignee_id: '0' + created_at: 1736201987 + updated_at: 1736201988 + ticket_parts: + type: ticket_part.list + ticket_parts: + - type: ticket_part + id: '61' + part_type: ticket_state_updated_by_admin + ticket_state: submitted + previous_ticket_state: submitted + created_at: 1736201987 + updated_at: 1736201987 + author: + id: '991266828' + type: admin + name: Ciaran534 Lee + email: admin534@email.com + attachments: [] + redacted: false + total_count: 1 + open: true + linked_objects: + type: list + data: [] + total_count: 0 + has_more: false + category: Back-office + is_shared: false + schema: + "$ref": "#/components/schemas/ticket_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 + "/visitors": + put: + summary: Update a visitor + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Visitors + operationId: updateVisitor + description: | + Sending a PUT request to `/visitors` will result in an update of an existing Visitor. + + **Option 1.** You can update a visitor by passing in the `user_id` of the visitor in the Request body. + + **Option 2.** You can update a visitor by passing in the `id` of the visitor in the Request body. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: visitor + id: 677c57076abd011ad17ff5ca + user_id: 3ecf64d0-9ed1-4e9f-88e1-da7d6e6782f3 + anonymous: true + email: '' + phone: + name: Gareth Bale + pseudonym: Grey Birdhouse + avatar: + type: avatar + image_url: https://static.intercomassets.com/app/pseudonym_avatars_2019/grey-birdhouse.png + app_id: this_is_an_id708_that_should_be_at_least_ + companies: + type: company.list + companies: [] + location_data: {} + last_request_at: + created_at: 1736201991 + remote_created_at: 1736201991 + signed_up_at: 1736201991 + updated_at: 1736201992 + session_count: 0 + social_profiles: + type: social_profile.list + social_profiles: [] + owner_id: + unsubscribed_from_emails: false + marked_email_as_spam: false + has_hard_bounced: false + tags: + type: tag.list + tags: [] + segments: + type: segment.list + segments: [] + custom_attributes: {} + referrer: + utm_campaign: + utm_content: + utm_medium: + utm_source: + utm_term: + do_not_track: + schema: + "$ref": "#/components/schemas/visitor" + '404': + description: visitor Not Found + content: + application/json: + examples: + visitor Not Found: + value: + type: error.list + request_id: 7ec1667d-9874-4055-978e-97a4aa900a56 + errors: + - code: not_found + message: Visitor Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: dc268d18-3f45-4df4-a646-59cb5ec715d6 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/update_visitor_request" + examples: + successful: + summary: successful + value: + id: 677c57076abd011ad17ff5ca + name: Gareth Bale + visitor_not_found: + summary: visitor Not Found + value: + user_id: fail + name: Christian Fail + get: + summary: Retrieve a visitor with User ID + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + - name: user_id + in: query + description: The user_id of the Visitor you want to retrieve. + required: true + schema: + type: string + tags: + - Visitors + operationId: retrieveVisitorWithUserId + description: You can fetch the details of a single visitor. + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: visitor + id: 677c570a6abd011ad17ff5d0 + user_id: 3ecf64d0-9ed1-4e9f-88e1-da7d6e6782f3 + anonymous: true + email: '' + phone: + name: + pseudonym: + avatar: + type: avatar + image_url: + app_id: this_is_an_id714_that_should_be_at_least_ + companies: + type: company.list + companies: [] + location_data: {} + last_request_at: + created_at: 1736201994 + remote_created_at: 1736201994 + signed_up_at: 1736201994 + updated_at: 1736201994 + session_count: 0 + social_profiles: + type: social_profile.list + social_profiles: [] + owner_id: + unsubscribed_from_emails: false + marked_email_as_spam: false + has_hard_bounced: false + tags: + type: tag.list + tags: [] + segments: + type: segment.list + segments: [] + custom_attributes: {} + referrer: + utm_campaign: + utm_content: + utm_medium: + utm_source: + utm_term: + do_not_track: + schema: + "$ref": "#/components/schemas/visitor" + '404': + description: Visitor not found + content: + application/json: + examples: + Visitor not found: + value: + type: error.list + request_id: 9a8e1498-768b-44c1-913d-5e8c1025f73d + errors: + - code: not_found + message: Visitor Not Found + schema: + "$ref": "#/components/schemas/error" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: a008f626-108d-4df4-a656-d6b58273a494 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + "/visitors/convert": + post: + summary: Convert a visitor + parameters: + - name: Intercom-Version + in: header + schema: + "$ref": "#/components/schemas/intercom_version" + tags: + - Visitors + operationId: convertVisitor + description: "You can merge a Visitor to a Contact of role type `lead` or `user`.\n\n> + \U0001F4D8 What happens upon a visitor being converted?\n>\n> If the User + exists, then the Visitor will be merged into it, the Visitor deleted and the + User returned. If the User does not exist, the Visitor will be converted to + a User, with the User identifiers replacing it's Visitor identifiers.\n" + responses: + '200': + description: successful + content: + application/json: + examples: + successful: + value: + type: contact + id: 677c570d6abd011ad17ff5d7 + workspace_id: this_is_an_id720_that_should_be_at_least_ + external_id: + role: user + email: foo@bar.com + phone: + name: + avatar: + owner_id: + social_profiles: + type: list + data: [] + has_hard_bounced: false + marked_email_as_spam: false + unsubscribed_from_emails: false + created_at: 1736201997 + updated_at: 1736201998 + signed_up_at: 1736201997 + 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/677c570d6abd011ad17ff5d7/tags" + total_count: 0 + has_more: false + notes: + type: list + data: [] + url: "/contacts/677c570d6abd011ad17ff5d7/notes" + total_count: 0 + has_more: false + companies: + type: list + data: [] + url: "/contacts/677c570d6abd011ad17ff5d7/companies" + total_count: 0 + has_more: false + opted_out_subscription_types: + type: list + data: [] + url: "/contacts/677c570d6abd011ad17ff5d7/subscriptions" + total_count: 0 + has_more: false + opted_in_subscription_types: + type: list + data: [] + url: "/contacts/677c570d6abd011ad17ff5d7/subscriptions" + total_count: 0 + has_more: false + utm_campaign: + utm_content: + utm_medium: + utm_source: + utm_term: + referrer: + enabled_push_messaging: + schema: + "$ref": "#/components/schemas/contact" + '401': + description: Unauthorized + content: + application/json: + examples: + Unauthorized: + value: + type: error.list + request_id: 9e770e84-1041-4103-b1c8-4c9d6a755187 + errors: + - code: unauthorized + message: Access Token Invalid + schema: + "$ref": "#/components/schemas/error" + requestBody: + content: + application/json: + schema: + "$ref": "#/components/schemas/convert_visitor_request" + examples: + successful: + summary: successful + value: + visitor: + user_id: 3ecf64d0-9ed1-4e9f-88e1-da7d6e6782f3 + user: + email: foo@bar.com + type: user +components: + schemas: + activity_log: + title: Activity Log + type: object + description: Activities performed by Admins. + nullable: true + properties: + id: + type: string + description: The id representing the activity. + example: '6' + performed_by: + type: object + description: Details about the Admin involved in the activity. + properties: + type: + type: string + description: String representing the object's type. Always has the value + `admin`. + example: admin + id: + type: string + description: The id representing the admin. + example: '1295' + email: + type: string + description: The email of the admin. + example: john@example.com + ip: + type: string + description: The IP address of the admin. + example: 198.51.100.255 + metadata: + "$ref": "#/components/schemas/activity_log_metadata" + created_at: + type: integer + format: date-time + description: The time the activity was created. + example: 1671028894 + activity_type: + type: string + enum: + - admin_assignment_limit_change + - admin_away_mode_change + - admin_deletion + - admin_deprovisioned + - admin_impersonation_end + - admin_impersonation_start + - admin_invite_change + - admin_invite_creation + - admin_invite_deletion + - admin_login_failure + - admin_login_success + - admin_logout + - admin_password_reset_request + - admin_password_reset_success + - admin_permission_change + - admin_provisioned + - admin_two_factor_auth_change + - admin_unauthorized_sign_in_method + - app_admin_join + - app_authentication_method_change + - app_data_deletion + - app_data_export + - app_google_sso_domain_change + - app_identity_verification_change + - app_name_change + - app_outbound_address_change + - app_package_installation + - app_package_token_regeneration + - app_package_uninstallation + - app_team_creation + - app_team_deletion + - app_team_membership_modification + - app_timezone_change + - app_webhook_creation + - app_webhook_deletion + - articles_in_messenger_enabled_change + - bulk_delete + - bulk_export + - campaign_deletion + - campaign_state_change + - conversation_part_deletion + - conversation_topic_change + - conversation_topic_creation + - conversation_topic_deletion + - help_center_settings_change + - inbound_conversations_change + - inbox_access_change + - message_deletion + - message_state_change + - messenger_look_and_feel_change + - messenger_search_required_change + - messenger_spaces_change + - office_hours_change + - role_change + - role_creation + - role_deletion + - ruleset_activation_title_preview + - ruleset_creation + - ruleset_deletion + - search_browse_enabled_change + - search_browse_required_change + - seat_change + - seat_revoke + - security_settings_change + - temporary_expectation_change + - upfront_email_collection_change + - welcome_message_change + example: app_name_change + activity_description: + type: string + description: A sentence or two describing the activity. + example: Admin updated the app's name to "My App". + activity_log_list: + title: Paginated Response + type: object + description: A paginated list of activity logs. + properties: + type: + type: string + description: String representing the object's type. Always has the value + `activity_log.list`. + example: activity_log.list + pages: + "$ref": "#/components/schemas/cursor_pages" + activity_logs: + type: array + description: An array of activity logs + items: + "$ref": "#/components/schemas/activity_log" + activity_log_metadata: + title: Activity Log Metadata + type: object + description: Additional data provided about Admin activity. + nullable: true + properties: + sign_in_method: + type: string + nullable: true + description: The way the admin signed in. + example: email_password + external_id: + type: string + nullable: true + description: The unique identifier for the contact which is provided by + the Client. + example: f3b87a2e09d514c6c2e79b9a + away_mode: + type: boolean + nullable: true + description: The away mode status which is set to true when away and false + when returned. + example: true + away_status_reason: + type: string + nullable: true + description: The reason the Admin is away. + example: "\U0001F60C On a break" + reassign_conversations: + type: boolean + nullable: true + description: Indicates if conversations should be reassigned while an Admin + is away. + example: false + source: + type: string + nullable: true + description: The action that initiated the status change. + example: 'admin update from web - Admin id: 93' + auto_changed: + type: string + nullable: true + description: Indicates if the status was changed automatically or manually. + example: false + update_by: + type: integer + nullable: true + description: The ID of the Admin who initiated the activity. + example: 93 + update_by_name: + type: string + nullable: true + description: The name of the Admin who initiated the activity. + example: Joe Example + addressable_list: + title: Addressable List + type: object + nullable: false + description: A list used to access other resources from a parent model. + properties: + type: + type: string + format: uri + description: The addressable object type + example: note + id: + type: string + description: The id of the addressable object + example: '123' + url: + type: string + format: uri + description: Url to get more company resources for this contact + example: "/contacts/5ba682d23d7cf92bef87bfd4/notes" + admin: + title: Admin + type: object + x-tags: + - Admins + description: Admins are 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 + id: + type: string + description: The id representing the admin. + example: '1295' + name: + type: string + description: The name of the admin. + example: Joe Example + email: + type: string + description: The email of the admin. + example: jdoe@example.com + job_title: + type: string + description: The job title of the admin. + example: Associate + away_mode_enabled: + type: boolean + description: Identifies if this admin is currently set in away mode. + example: false + away_mode_reassign: + type: boolean + description: Identifies if this admin is set to automatically reassign new + conversations to the apps default inbox. + example: false + has_inbox_seat: + type: boolean + description: Identifies if this admin has a paid inbox seat to restrict/allow + features that require them. + example: true + team_ids: + type: array + description: This object represents the avatar associated with the admin. + example: + - 814865 + items: + type: integer + avatar: + type: string + format: uri + nullable: true + description: Image for the associated team or teammate + example: https://picsum.photos/200/300 + team_priority_level: + "$ref": "#/components/schemas/team_priority_level" + admin_list: + title: Admins + type: object + description: A list of admins associated with a given workspace. + properties: + type: + type: string + description: String representing the object's type. Always has the value + `admin.list`. + example: admin.list + admins: + type: array + description: A list of admins associated with a given workspace. + items: + "$ref": "#/components/schemas/admin" + admin_priority_level: + title: Admin Priority Level + type: object + nullable: true + description: Admin priority levels for the team + properties: + primary_admin_ids: + type: array + description: The primary admin ids for the team + nullable: true + example: + - 493881 + items: + type: integer + secondary_admin_ids: + type: array + description: The secondary admin ids for the team + nullable: true + example: + - 814865 + items: + type: integer + admin_reply_conversation_request: + title: Admin Reply + type: object + description: Payload of the request to reply on behalf of an admin + properties: + message_type: + type: string + enum: + - comment + - note + type: + type: string + enum: + - admin + example: admin + body: + type: string + description: The text body of the reply. Notes accept some HTML formatting. + Must be present for comment and note message types. + example: Hello there! + admin_id: + type: string + description: The id of the admin who is authoring the comment. + example: '3156780' + created_at: + type: integer + description: The time the reply was created. If not provided, the current + time will be used. + example: 1590000000 + attachment_urls: + type: array + description: A list of image URLs that will be added as attachments. You + can include up to 10 URLs. + items: + type: string + format: uri + maxItems: 10 + attachment_files: + type: array + description: A list of files that will be added as attachments. You can + include up to 10 files + items: + "$ref": "#/components/schemas/conversation_attachment_files" + maxItems: 10 + required: + - message_type + - type + - admin_id + admin_reply_ticket_request: + title: Admin Reply on ticket + type: object + description: Payload of the request to reply on behalf of an admin + properties: + message_type: + type: string + enum: + - comment + - note + - quick_reply + example: comment + type: + type: string + enum: + - admin + example: admin + body: + type: string + description: The text body of the reply. Notes accept some HTML formatting. + Must be present for comment and note message types. + example: Hello there! + admin_id: + type: string + description: The id of the admin who is authoring the comment. + example: '3156780' + created_at: + type: integer + description: The time the reply was created. If not provided, the current + time will be used. + example: 1590000000 + reply_options: + title: Quick Reply Options + type: array + description: The quick reply options to display. Must be present for quick_reply + message types. + items: + title: Quick Reply Option + type: object + properties: + text: + type: string + description: The text to display in this quick reply option. + uuid: + type: string + format: uuid + description: A unique identifier for this quick reply option. This + value will be available within the metadata of the comment ticket + part that is created when a user clicks on this reply option. + required: + - text + - uuid + attachment_urls: + type: array + description: A list of image URLs that will be added as attachments. You + can include up to 10 URLs. + items: + type: string + format: uri + maxItems: 10 + required: + - message_type + - type + - admin_id + admin_with_app: + 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 + id: + type: string + description: The id representing the admin. + example: '1295' + name: + type: string + description: The name of the admin. + example: Joe Example + email: + type: string + description: The email of the admin. + example: jdoe@example.com + job_title: + type: string + description: The job title of the admin. + example: Associate + away_mode_enabled: + type: boolean + description: Identifies if this admin is currently set in away mode. + example: false + away_mode_reassign: + type: boolean + description: Identifies if this admin is set to automatically reassign new + conversations to the apps default inbox. + example: false + has_inbox_seat: + type: boolean + description: Identifies if this admin has a paid inbox seat to restrict/allow + features that require them. + example: true + team_ids: + type: array + description: This is a list of ids of the teams that this admin is part + of. + example: + - 814865 + items: + type: integer + avatar: + type: object + description: This object represents the avatar associated with the admin. + properties: + type: + type: string + description: This is a string that identifies the type of the object. + It will always have the value `avatar`. + default: avatar + example: avatar + image_url: + type: string + format: uri + nullable: true + description: This object represents the avatar associated with the admin. + example: https://example.com/avatar.png + email_verified: + type: boolean + description: Identifies if this admin's email is verified. + nullable: true + example: true + app: + "$ref": "#/components/schemas/app" + nullable: true + description: App that the admin belongs to. + ai_agent: + title: AI Agent + type: object + x-tags: + - Ai Agent + description: Data related to AI Agent involvement in the conversation. + properties: + source_type: + type: string + description: The type of the source that triggered AI Agent involvement + in the conversation. + enum: + - essentials_plan_setup + - profile + - workflow + - workflow_preview + - fin_preview + example: workflow + source_title: + type: string + description: The title of the source that triggered AI Agent involvement + in the conversation. If this is `essentials_plan_setup` then it will return + `null`. + example: My AI Workflow + nullable: true + last_answer_type: + type: string + description: The type of the last answer delivered by AI Agent. If no answer + was delivered then this will return `null` + enum: + - + - ai_answer + - custom_answer + example: ai_answer + nullable: true + resolution_state: + type: string + description: The resolution state of AI Agent. If no AI or custom answer + has been delivered then this will return `null`. + enum: + - assumed_resolution + - confirmed_resolution + - routed_to_team + - abandoned + - + example: assumed_resolution + nullable: true + rating: + type: integer + description: The customer satisfaction rating given to AI Agent, from 1-5. + example: 4 + nullable: true + rating_remark: + type: string + description: The customer satisfaction rating remark given to AI Agent. + example: Very helpful! + nullable: true + content_sources: + "$ref": "#/components/schemas/content_sources_list" + app: + title: App + type: object + description: App is a workspace on Intercom + nullable: true + properties: + type: + type: string + description: '' + default: app + example: app + id_code: + type: string + description: The id of the app. + example: xyz789 + name: + type: string + description: The name of the app. + example: ACME + region: + type: string + description: The Intercom region the app is located in. + example: US + timezone: + type: string + description: The timezone of the region where the app is located. + example: America/Los_Angeles + created_at: + type: integer + description: When the app was created. + example: 1671465577 + identity_verification: + type: boolean + description: Whether or not the app uses identity verification. + example: false + article: + title: Article + type: object + x-tags: + - Articles + description: The Articles API is a central place to gather all information and + take actions on your articles. Articles can live within collections and sections, + or alternatively they can stand alone. + properties: + statistics: + nullable: true + "$ref": "#/components/schemas/article_statistics" + allOf: + - "$ref": "#/components/schemas/article_list_item" + article_content: + 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. + example: How to create a new article + description: + type: string + description: The description of the article. + example: This article will show you how to create a new article. + body: + type: string + description: The body of the article. + example: This is the body of the article. + author_id: + type: integer + description: The ID of the author of the article. + example: '5017691' + state: + type: string + description: Whether the article is `published` or is a `draft` . + enum: + - published + - draft + example: draft + created_at: + type: integer + format: date-time + description: The time when the article was created (seconds). + example: 1663597223 + updated_at: + type: integer + format: date-time + description: The time when the article was last updated (seconds). + example: 1663597260 + url: + type: string + description: The URL of the article. + example: http://intercom.test/help/en/articles/3-default-language + article_list: + title: Articles + type: object + description: This will return a list of articles for the App. + properties: + type: + type: string + description: The type of the object - `list`. + enum: + - list + example: list + pages: + "$ref": "#/components/schemas/cursor_pages" + total_count: + type: integer + description: A count of the total number of articles. + example: 1 + data: + type: array + description: An array of Article objects + items: + "$ref": "#/components/schemas/article_list_item" + article_list_item: + title: Articles + type: object + x-tags: + - Articles + description: The data returned about your articles when you list them. + properties: + type: + type: string + description: The type of object - `article`. + enum: + - article + default: article + example: article + id: + type: string + description: The unique identifier for the article which is given by Intercom. + example: '6871119' + workspace_id: + type: string + description: The id of the workspace which the article belongs to. + example: hfi1bx4l + title: + type: string + description: The title of the article. For multilingual articles, this will + be the title of the default language's content. + example: Default language title + description: + type: string + nullable: true + description: The description of the article. For multilingual articles, + this will be the description of the default language's content. + example: Default language description + body: + type: string + nullable: true + description: The body of the article in HTML. For multilingual articles, + this will be the body of the default language's content. + example: Default language 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: '5017691' + state: + type: string + description: Whether the article is `published` or is a `draft`. For multilingual + articles, this will be the state of the default language's content. + enum: + - published + - draft + default: draft + example: published + created_at: + type: integer + format: date-time + description: The time when the article was created. For multilingual articles, + this will be the timestamp of creation of the default language's content + in seconds. + example: 1672928359 + updated_at: + type: integer + format: date-time + description: The time when the article was last updated. For multilingual + articles, this will be the timestamp of last update of the default language's + content in seconds. + example: 1672928610 + url: + type: string + nullable: true + description: The URL of the article. For multilingual articles, this will + be the URL of the default language's content. + example: http://intercom.test/help/en/articles/3-default-language + parent_id: + type: integer + nullable: true + description: The id of the article's parent collection or section. An article + without this field stands alone. + example: '125685' + parent_ids: + type: array + description: The ids of the article's parent collections or sections. An + article without this field stands alone. + items: + type: integer + example: + - 18 + - 19 + parent_type: + type: string + nullable: true + description: The type of parent, which can either be a `collection` or `section`. + example: collection + default_locale: + type: string + description: The default locale of the help center. This field is only returned + for multilingual help centers. + example: en + translated_content: + nullable: true + "$ref": "#/components/schemas/article_translated_content" + article_search_highlights: + title: Article Search Highlights + type: object + x-tags: + - Articles + description: The highlighted results of an Article search. In the examples provided + my search query is always "my query". + properties: + article_id: + type: string + description: The ID of the corresponding article. + example: '123' + highlighted_title: + type: array + description: An Article title highlighted. + items: + type: object + description: A highlighted article title. + properties: + type: + type: string + description: The type of text - `highlight` or `plain`. + enum: + - highlight + - plain + example: 'The highlight is ' + text: + type: string + description: The text of the title. + example: my query + highlighted_summary: + type: array + description: An Article description and body text highlighted. + items: + type: array + description: An array containing the highlighted summary text split into + chunks of plain and highlighted text. + items: + type: object + description: An instance of highlighted summary text. + properties: + type: + type: string + description: The type of text - `highlight` or `plain`. + enum: + - highlight + - plain + example: 'How to highlight ' + text: + type: string + description: The text of the title. + example: my query + article_search_response: + title: Article Search Response + type: object + x-tags: + - Articles + description: The results of an Article search + properties: + type: + type: string + description: The type of the object - `list`. + enum: + - list + example: list + total_count: + type: integer + description: The total number of Articles matching the search query + example: 5 + data: + type: object + description: An object containing the results of the search. + properties: + articles: + type: array + description: An array of Article objects + items: + "$ref": "#/components/schemas/article" + highlights: + type: array + description: A corresponding array of highlighted Article content + items: + "$ref": "#/components/schemas/article_search_highlights" + pages: + "$ref": "#/components/schemas/cursor_pages" + article_statistics: + title: Article Statistics + type: object + description: The statistics of an article. + nullable: true + properties: + type: + type: string + description: The type of object - `article_statistics`. + enum: + - article_statistics + default: article_statistics + example: article_statistics + views: + type: integer + description: The number of total views the article has received. + example: 10 + conversions: + type: integer + description: The number of conversations started from the article. + example: 0 + reactions: + type: integer + description: The number of total reactions the article has received. + example: 10 + happy_reaction_percentage: + type: number + format: float + description: The percentage of happy reactions the article has received + against other types of reaction. + example: 40.0 + neutral_reaction_percentage: + type: number + format: float + description: The percentage of neutral reactions the article has received + against other types of reaction. + example: 40.0 + sad_reaction_percentage: + type: number + format: float + description: The percentage of sad reactions the article has received against + other types of reaction. + example: 20.0 + 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" + bg: + description: The content of the article in Bulgarian + "$ref": "#/components/schemas/article_content" + bs: + description: The content of the article in Bosnian + "$ref": "#/components/schemas/article_content" + ca: + description: The content of the article in Catalan + "$ref": "#/components/schemas/article_content" + cs: + description: The content of the article in Czech + "$ref": "#/components/schemas/article_content" + da: + description: The content of the article in Danish + "$ref": "#/components/schemas/article_content" + de: + description: The content of the article in German + "$ref": "#/components/schemas/article_content" + el: + description: The content of the article in Greek + "$ref": "#/components/schemas/article_content" + en: + description: The content of the article in English + "$ref": "#/components/schemas/article_content" + es: + description: The content of the article in Spanish + "$ref": "#/components/schemas/article_content" + et: + description: The content of the article in Estonian + "$ref": "#/components/schemas/article_content" + fi: + description: The content of the article in Finnish + "$ref": "#/components/schemas/article_content" + fr: + description: The content of the article in French + "$ref": "#/components/schemas/article_content" + he: + description: The content of the article in Hebrew + "$ref": "#/components/schemas/article_content" + hr: + description: The content of the article in Croatian + "$ref": "#/components/schemas/article_content" + hu: + description: The content of the article in Hungarian + "$ref": "#/components/schemas/article_content" + id: + description: The content of the article in Indonesian + "$ref": "#/components/schemas/article_content" + it: + description: The content of the article in Italian + "$ref": "#/components/schemas/article_content" + ja: + description: The content of the article in Japanese + "$ref": "#/components/schemas/article_content" + ko: + description: The content of the article in Korean + "$ref": "#/components/schemas/article_content" + lt: + description: The content of the article in Lithuanian + "$ref": "#/components/schemas/article_content" + lv: + description: The content of the article in Latvian + "$ref": "#/components/schemas/article_content" + mn: + description: The content of the article in Mongolian + "$ref": "#/components/schemas/article_content" + nb: + description: The content of the article in Norwegian + "$ref": "#/components/schemas/article_content" + nl: + description: The content of the article in Dutch + "$ref": "#/components/schemas/article_content" + pl: + description: The content of the article in Polish + "$ref": "#/components/schemas/article_content" + pt: + description: The content of the article in Portuguese (Portugal) + "$ref": "#/components/schemas/article_content" + ro: + description: The content of the article in Romanian + "$ref": "#/components/schemas/article_content" + ru: + description: The content of the article in Russian + "$ref": "#/components/schemas/article_content" + sl: + description: The content of the article in Slovenian + "$ref": "#/components/schemas/article_content" + sr: + description: The content of the article in Serbian + "$ref": "#/components/schemas/article_content" + sv: + description: The content of the article in Swedish + "$ref": "#/components/schemas/article_content" + tr: + description: The content of the article in Turkish + "$ref": "#/components/schemas/article_content" + vi: + description: The content of the article in Vietnamese + "$ref": "#/components/schemas/article_content" + pt-BR: + description: The content of the article in Portuguese (Brazil) + "$ref": "#/components/schemas/article_content" + zh-CN: + description: The content of the article in Chinese (China) + "$ref": "#/components/schemas/article_content" + zh-TW: + description: The content of the article in Chinese (Taiwan) + "$ref": "#/components/schemas/article_content" + assign_conversation_request: + title: Assign Conversation Request + type: object + description: Payload of the request to assign a conversation + properties: + message_type: + type: string + enum: + - assignment + example: assignment + type: + type: string + enum: + - admin + - team + example: admin + admin_id: + type: string + description: The id of the admin who is performing the action. + example: '12345' + assignee_id: + type: string + description: The `id` of the `admin` or `team` which will be assigned the + conversation. A conversation can be assigned both an admin and a team.\nSet + `0` if you want this assign to no admin or team (ie. Unassigned). + example: '4324241' + body: + type: string + description: Optionally you can send a response in the conversation when + it is assigned. + example: Let me pass you over to one of my colleagues. + required: + - message_type + - type + - admin_id + - assignee_id + attach_contact_to_conversation_request: + title: Assign Conversation Request + type: object + description: Payload of the request to assign a conversation + properties: + admin_id: + type: string + description: The `id` of the admin who is adding the new participant. + example: '12345' + customer: + type: object + oneOf: + - title: Intercom User ID + properties: + intercom_user_id: + type: string + description: The identifier for the contact as given by Intercom. + example: 6329bd9ffe4e2e91dac76188 + customer: + "$ref": "#/components/schemas/customer_request" + 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: 6329bd9ffe4e2e91dac76188 + customer: + "$ref": "#/components/schemas/customer_request" + 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: winstonsmith@truth.org + customer: + "$ref": "#/components/schemas/customer_request" + required: + - email + close_conversation_request: + title: Close Conversation Request + type: object + description: Payload of the request to close a conversation + properties: + message_type: + type: string + enum: + - close + example: close + type: + type: string + enum: + - admin + example: admin + admin_id: + type: string + description: The id of the admin who is performing the action. + example: '12345' + body: + type: string + description: Optionally you can leave a message in the conversation to provide + additional context to the user and other teammates. + example: " This conversation is now closed!" + required: + - message_type + - type + - admin_id + collection: + title: Collection + type: object + x-tags: + - Help Center + description: Collections are top level containers for Articles within the Help + Center. + properties: + id: + type: string + description: The unique identifier for the collection which is given by + Intercom. + example: '6871119' + workspace_id: + type: string + description: The id of the workspace which the collection belongs to. + example: hfi1bx4l + name: + type: string + description: The name of the collection. For multilingual collections, this + will be the name of the default language's content. + example: Default language name + description: + type: string + nullable: true + description: The description of the collection. For multilingual help centers, + this will be the description of the collection for the default language. + example: Default language description + created_at: + type: integer + format: date-time + description: The time when the article was created (seconds). For multilingual + articles, this will be the timestamp of creation of the default language's + content. + example: 1672928359 + updated_at: + type: integer + format: date-time + description: The time when the article was last updated (seconds). For multilingual + articles, this will be the timestamp of last update of the default language's + content. + example: 1672928610 + url: + type: string + nullable: true + description: The URL of the collection. For multilingual help centers, this + will be the URL of the collection for the default language. + example: http://intercom.test/help/collection/name + icon: + type: string + nullable: true + description: The icon of the collection. + example: book-bookmark + order: + type: integer + description: The order of the section in relation to others sections within + a collection. Values go from `0` upwards. `0` is the default if there's + no order. + example: '1' + default_locale: + type: string + description: The default locale of the help center. This field is only returned + for multilingual help centers. + example: en + 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 is the first + level collection. + example: '6871118' + help_center_id: + type: integer + nullable: true + description: The id of the help center the collection is in. + example: '123' + collection_list: + title: Collections + type: object + description: This will return a list of Collections for the App. + properties: + type: + type: string + description: The type of the object - `list`. + enum: + - list + example: list + pages: + "$ref": "#/components/schemas/cursor_pages" + total_count: + type: integer + description: A count of the total number of collections. + example: 1 + data: + type: array + description: An array of collection objects + items: + "$ref": "#/components/schemas/collection" + company: + title: Company + type: object + x-tags: + - Companies + 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. + properties: + type: + type: string + description: Value is `company` + enum: + - company + example: company + id: + type: string + description: The Intercom defined id representing the company. + example: 531ee472cce572a6ec000006 + name: + type: string + description: The name of the company. + example: Blue Sun + app_id: + type: string + description: The Intercom defined code of the workspace the company is associated + to. + example: ecahpwf5 + plan: + type: object + properties: + type: + type: string + description: Value is always "plan" + example: plan + id: + type: string + description: The id of the plan + example: '269315' + name: + type: string + description: The name of the plan + example: Pro + company_id: + type: string + description: The company id you have defined for the company. + example: '6' + remote_created_at: + type: integer + description: The time the company was created by you. + example: 1663597223 + created_at: + type: integer + description: The time the company was added in Intercom. + example: 1663597223 + updated_at: + type: integer + description: The last time the company was updated. + example: 1663597223 + last_request_at: + type: integer + description: The time the company last recorded making a request. + example: 1663597223 + size: + type: integer + description: The number of employees in the company. + example: 100 + website: + type: string + description: The URL for the company website. + example: https://www.intercom.com + industry: + type: string + description: The industry that the company operates in. + example: Software + monthly_spend: + type: integer + description: How much revenue the company generates for your business. + example: 100 + session_count: + type: integer + description: How many sessions the company has recorded. + example: 100 + user_count: + type: integer + description: The number of users in the company. + example: 100 + custom_attributes: + type: object + description: The custom attributes you have set on the company. + additionalProperties: + type: string + example: + paid_subscriber: true + monthly_spend: 155.5 + team_mates: 9 + tags: + type: object + description: The list of tags associated with the company + properties: + type: + type: string + description: The type of the object + enum: + - tag.list + tags: + type: array + items: + items: + "$ref": "#/components/schemas/tag" + segments: + type: object + description: The list of segments associated with the company + properties: + type: + type: string + description: The type of the object + enum: + - segment.list + segments: + type: array + items: + "$ref": "#/components/schemas/segment" + company_attached_contacts: + title: Company Attached Contacts + type: object + description: A list of Contact Objects + properties: + type: + type: string + description: The type of object - `list` + enum: + - list + example: list + data: + type: array + description: An array containing Contact Objects + items: + "$ref": "#/components/schemas/contact" + total_count: + type: integer + description: The total number of contacts + example: 100 + pages: + "$ref": "#/components/schemas/cursor_pages" + company_attached_segments: + title: Company Attached Segments + type: object + description: A list of Segment Objects + properties: + type: + type: string + description: The type of object - `list` + enum: + - list + example: list + data: + type: array + description: An array containing Segment Objects + items: + "$ref": "#/components/schemas/segment" + company_list: + title: Companies + type: object + description: This will return a list of companies for the App. + properties: + type: + type: string + description: The type of object - `list`. + enum: + - list + example: list + pages: + "$ref": "#/components/schemas/cursor_pages" + total_count: + type: integer + description: The total number of companies. + example: 100 + data: + type: array + description: An array containing Company Objects. + items: + "$ref": "#/components/schemas/company" + 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 + description: The type of object - `list` + enum: + - list + example: list + data: + type: array + items: + "$ref": "#/components/schemas/company" + pages: + "$ref": "#/components/schemas/cursor_pages" + total_count: + type: integer + description: The total number of companies + nullable: true + example: 100 + scroll_param: + type: string + description: The scroll parameter to use in the next request to fetch the + next page of results. + example: 25b649f7-4d33-4ef6-88f5-60e5b8244309 + contact: + title: Contact + type: object + x-tags: + - Contacts + x-fern-sdk-group-name: contacts + description: Contacts represent your leads and users in Intercom. + properties: + type: + type: string + description: The type of object. + example: contact + id: + type: string + description: The unique identifier for the contact which is given by Intercom. + example: 5ba682d23d7cf92bef87bfd4 + external_id: + type: string + nullable: true + description: The unique identifier for the contact which is provided by + the Client. + example: f3b87a2e09d514c6c2e79b9a + workspace_id: + type: string + description: The id of the workspace which the contact belongs to. + example: ecahpwf5 + role: + type: string + description: The role of the contact. + example: user + email: + type: string + description: The contact's email. + example: joe@example.com + email_domain: + type: string + description: The contact's email domain. + example: example.com + phone: + type: string + nullable: true + description: The contacts phone. + example: "+1123456789" + name: + type: string + nullable: true + description: The contacts name. + example: John Doe + owner_id: + type: integer + nullable: true + description: The id of an admin that has been assigned account ownership + of the contact. + example: 123 + has_hard_bounced: + type: boolean + description: Whether the contact has had an email sent to them hard bounce. + example: true + marked_email_as_spam: + type: boolean + description: Whether the contact has marked an email sent to them as spam. + example: true + unsubscribed_from_emails: + type: boolean + description: Whether the contact is unsubscribed from emails. + example: true + created_at: + type: integer + format: date-time + description: "(UNIX timestamp) The time when the contact was created." + example: 1571672154 + updated_at: + type: integer + format: date-time + description: "(UNIX timestamp) The time when the contact was last updated." + example: 1571672154 + signed_up_at: + type: integer + format: date-time + nullable: true + description: "(UNIX timestamp) The time specified for when a contact signed + up." + example: 1571672154 + last_seen_at: + type: integer + format: date-time + nullable: true + description: "(UNIX timestamp) The time when the contact was last seen (either + where the Intercom Messenger was installed or when specified manually)." + example: 1571672154 + last_replied_at: + type: integer + format: date-time + nullable: true + description: "(UNIX timestamp) The time when the contact last messaged in." + example: 1571672154 + last_contacted_at: + type: integer + format: date-time + nullable: true + description: "(UNIX timestamp) The time when the contact was last messaged." + example: 1571672154 + last_email_opened_at: + type: integer + format: date-time + nullable: true + description: "(UNIX timestamp) The time when the contact last opened an + email." + example: 1571672154 + last_email_clicked_at: + type: integer + format: date-time + nullable: true + description: "(UNIX timestamp) The time when the contact last clicked a + link in an email." + example: 1571672154 + language_override: + type: string + nullable: true + description: A preferred language setting for the contact, used by the Intercom + Messenger even if their browser settings change. + example: en + browser: + type: string + nullable: true + description: The name of the browser which the contact is using. + example: Chrome + browser_version: + type: string + nullable: true + description: The version of the browser which the contact is using. + example: 80.0.3987.132 + browser_language: + type: string + nullable: true + description: The language set by the browser which the contact is using. + example: en-US + os: + type: string + nullable: true + description: The operating system which the contact is using. + example: Mac OS X + android_app_name: + type: string + nullable: true + description: The name of the Android app which the contact is using. + example: Intercom + android_app_version: + type: string + nullable: true + description: The version of the Android app which the contact is using. + example: 5.0.0 + android_device: + type: string + nullable: true + description: The Android device which the contact is using. + example: Pixel 3 + android_os_version: + type: string + nullable: true + description: The version of the Android OS which the contact is using. + example: '10' + android_sdk_version: + type: string + nullable: true + description: The version of the Android SDK which the contact is using. + example: '28' + android_last_seen_at: + type: integer + nullable: true + format: date-time + description: "(UNIX timestamp) The time when the contact was last seen on + an Android device." + example: 1571672154 + ios_app_name: + type: string + nullable: true + description: The name of the iOS app which the contact is using. + example: Intercom + ios_app_version: + type: string + nullable: true + description: The version of the iOS app which the contact is using. + example: 5.0.0 + ios_device: + type: string + nullable: true + description: The iOS device which the contact is using. + example: iPhone 11 + ios_os_version: + type: string + nullable: true + description: The version of iOS which the contact is using. + example: 13.3.1 + ios_sdk_version: + type: string + nullable: true + description: The version of the iOS SDK which the contact is using. + example: 13.3.1 + ios_last_seen_at: + type: integer + nullable: true + format: date-time + description: "(UNIX timestamp) The last time the contact used the iOS app." + example: 1571672154 + custom_attributes: + type: object + description: The custom attributes which are set for the contact. + avatar: + type: object + nullable: true + properties: + type: + type: string + description: The type of object + example: avatar + image_url: + type: string + format: uri + nullable: true + description: An image URL containing the avatar of a contact. + example: https://example.org/128Wash.jpg + tags: + "$ref": "#/components/schemas/contact_tags" + notes: + "$ref": "#/components/schemas/contact_notes" + companies: + "$ref": "#/components/schemas/contact_companies" + location: + "$ref": "#/components/schemas/contact_location" + social_profiles: + "$ref": "#/components/schemas/contact_social_profiles" + contact_archived: + title: Contact Archived + type: object + description: archived contact object + properties: + type: + type: string + description: always contact + enum: + - contact + example: contact + id: + type: string + description: The unique identifier for the contact which is given by Intercom. + example: 5ba682d23d7cf92bef87bfd4 + external_id: + type: string + nullable: true + description: The unique identifier for the contact which is provided by + the Client. + example: f3b87a2e09d514c6c2e79b9a + archived: + type: boolean + description: Whether the contact is archived or not. + example: true + contact_attached_companies: + title: Contact Attached Companies + type: object + description: A list of Company Objects + properties: + type: + type: string + description: The type of object + enum: + - list + example: list + companies: + type: array + description: An array containing Company Objects + items: + "$ref": "#/components/schemas/company" + total_count: + type: integer + description: The total number of companies associated to this contact + example: 100 + pages: + "$ref": "#/components/schemas/pages_link" + 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 + description: Url to get more company resources for this contact + example: "/contacts/5ba682d23d7cf92bef87bfd4/companies" + total_count: + type: integer + description: Int representing the total number of companyies attached to + this contact + example: 100 + has_more: + type: boolean + 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 + description: deleted contact object + properties: + type: + type: string + description: always contact + enum: + - contact + example: contact + id: + type: string + description: The unique identifier for the contact which is given by Intercom. + example: 5ba682d23d7cf92bef87bfd4 + external_id: + type: string + nullable: true + description: The unique identifier for the contact which is provided by + the Client. + example: f3b87a2e09d514c6c2e79b9a + deleted: + type: boolean + description: Whether the contact is deleted or not. + example: true + contact_list: + title: Contact List + type: object + description: Contacts are your users in Intercom. + properties: + type: + type: string + description: Always list + enum: + - list + example: list + data: + type: array + description: The list of contact objects + items: + "$ref": "#/components/schemas/contact" + total_count: + type: integer + description: A count of the total number of objects. + example: 100 + pages: + "$ref": "#/components/schemas/cursor_pages" + 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 + country: + type: string + nullable: true + description: The country that the contact is located in + example: Ireland + region: + type: string + nullable: true + description: The overal region that the contact is located in + example: Dublin + city: + type: string + nullable: true + description: The city that the contact is located in + example: Dublin + 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: + data: + type: array + description: This object represents the notes attached to a contact. + items: + "$ref": "#/components/schemas/addressable_list" + url: + type: string + format: uri + description: Url to get more company resources for this contact + example: "/contacts/5ba682d23d7cf92bef87bfd4/notes" + total_count: + type: integer + description: Int representing the total number of companyies attached to + this contact + example: 100 + has_more: + type: boolean + description: Whether there's more Addressable Objects to be viewed. If true, + use the url to view all + example: true + contact_reference: + title: Contact Reference + type: object + description: reference to contact object + properties: + type: + type: string + description: always contact + enum: + - contact + example: contact + id: + type: string + description: The unique identifier for the contact which is given by Intercom. + example: 5ba682d23d7cf92bef87bfd4 + external_id: + type: string + nullable: true + description: The unique identifier for the contact which is provided by + the Client. + example: f3b87a2e09d514c6c2e79b9a + contact_reply_base_request: + title: Contact Reply Base Object + type: object + properties: + message_type: + type: string + enum: + - comment + type: + type: string + enum: + - user + body: + type: string + description: The text body of the comment. + created_at: + type: integer + description: The time the reply was created. If not provided, the current + time will be used. + example: 1590000000 + attachment_urls: + title: Attachment URLs + type: array + description: A list of image URLs that will be added as attachments. You + can include up to 10 URLs. + items: + type: string + format: uri + maxItems: 10 + required: + - message_type + - type + - body + contact_reply_conversation_request: + title: Contact Reply + oneOf: + - "$ref": "#/components/schemas/contact_reply_intercom_user_id_request" + - "$ref": "#/components/schemas/contact_reply_email_request" + - "$ref": "#/components/schemas/contact_reply_user_id_request" + contact_reply_email_request: + title: Email + type: object + description: Payload of the request to reply on behalf of a contact using their + `email` + properties: + email: + type: string + description: The email you have defined for the user. + attachment_files: + type: array + description: A list of files that will be added as attachments. + items: + "$ref": "#/components/schemas/conversation_attachment_files" + allOf: + - "$ref": "#/components/schemas/contact_reply_base_request" + required: + - email + contact_reply_intercom_user_id_request: + title: Intercom User ID + type: object + description: Payload of the request to reply on behalf of a contact using their + `intercom_user_id` + allOf: + - "$ref": "#/components/schemas/contact_reply_base_request" + properties: + intercom_user_id: + type: string + description: The identifier for the contact as given by Intercom. + attachment_files: + type: array + description: A list of files that will be added as attachments. + items: + "$ref": "#/components/schemas/conversation_attachment_files" + required: + - intercom_user_id + contact_reply_ticket_email_request: + title: Email + type: object + description: Payload of the request to reply on behalf of a contact using their + `email` + properties: + email: + type: string + description: The email you have defined for the user. + allOf: + - "$ref": "#/components/schemas/contact_reply_base_request" + required: + - email + contact_reply_ticket_intercom_user_id_request: + title: Intercom User ID + type: object + description: Payload of the request to reply on behalf of a contact using their + `intercom_user_id` + allOf: + - "$ref": "#/components/schemas/contact_reply_base_request" + properties: + intercom_user_id: + type: string + description: The identifier for the contact as given by Intercom. + required: + - intercom_user_id + contact_reply_ticket_request: + title: Contact Reply on ticket + oneOf: + - "$ref": "#/components/schemas/contact_reply_ticket_intercom_user_id_request" + - "$ref": "#/components/schemas/contact_reply_ticket_user_id_request" + - "$ref": "#/components/schemas/contact_reply_ticket_email_request" + contact_reply_ticket_user_id_request: + title: User ID + type: object + description: Payload of the request to reply on behalf of a contact using their + `user_id` + allOf: + - "$ref": "#/components/schemas/contact_reply_base_request" + properties: + user_id: + type: string + description: The external_id you have defined for the contact. + required: + - user_id + contact_reply_user_id_request: + title: User ID + type: object + description: Payload of the request to reply on behalf of a contact using their + `user_id` + allOf: + - "$ref": "#/components/schemas/contact_reply_base_request" + properties: + user_id: + type: string + description: The external_id you have defined for the contact. + attachment_files: + type: array + description: A list of files that will be added as attachments. You can + include up to 10 files. + items: + "$ref": "#/components/schemas/conversation_attachment_files" + maxItems: 10 + required: + - user_id + contact_segments: + title: Segments + type: object + description: A list of segments objects attached to a specific contact. + properties: + type: + type: string + description: The type of the object + enum: + - list + example: list + data: + type: array + description: Segment objects associated with the contact. + items: + "$ref": "#/components/schemas/segment" + contact_social_profiles: + title: Social Profile + type: object + nullable: false + description: An object containing social profiles that a contact has. + properties: + data: + type: array + description: A list of social profiles objects associated with the contact. + items: + "$ref": "#/components/schemas/social_profile" + 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: + data: + type: array + description: This object represents the subscriptions attached to a contact. + items: + "$ref": "#/components/schemas/addressable_list" + url: + type: string + format: uri + description: Url to get more subscription type resources for this contact + example: "/contacts/5ba682d23d7cf92bef87bfd4/subscriptions" + total_count: + type: integer + description: Int representing the total number of subscription types attached + to this contact + example: 100 + has_more: + type: boolean + description: Whether there's more Addressable Objects to be viewed. If true, + use the url to view all + example: true + 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: + data: + type: array + description: This object represents the tags attached to a contact. + items: + "$ref": "#/components/schemas/addressable_list" + url: + type: string + format: uri + description: url to get more tag resources for this contact + example: "/contacts/5ba682d23d7cf92bef87bfd4/tags" + total_count: + type: integer + description: Int representing the total number of tags attached to this + contact + example: 100 + has_more: + type: boolean + description: Whether there's more Addressable Objects to be viewed. If true, + use the url to view all + example: true + contact_unarchived: + title: Contact Unarchived + type: object + description: unarchived contact object + properties: + type: + type: string + description: always contact + enum: + - contact + example: contact + id: + type: string + description: The unique identifier for the contact which is given by Intercom. + example: 5ba682d23d7cf92bef87bfd4 + external_id: + type: string + nullable: true + description: The unique identifier for the contact which is provided by + the Client. + example: f3b87a2e09d514c6c2e79b9a + archived: + type: boolean + description: Whether the contact is archived or not. + example: false + content_import_source: + title: Content Import Source + type: object + x-tags: + - AI Content + description: An external source for External Pages that you add to your Fin + Content Library. + nullable: false + properties: + type: + type: string + description: Always external_page + enum: + - content_import_source + default: content_import_source + example: content_import_source + id: + type: integer + description: The unique identifier for the content import source which is + given by Intercom. + example: 1234 + last_synced_at: + type: integer + format: date-time + description: The time when the content import source was last synced. + example: 1672928610 + 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 + - automatic + - 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 root of the external source. + example: https://help.example.com/ + created_at: + type: integer + format: date-time + description: The time when the content import source was created. + example: 1672928359 + updated_at: + type: integer + format: date-time + description: The time when the content import source was last updated. + example: 1672928610 + required: + - id + - type + - url + - sync_behavior + - status + - created_at + - updated_at + - last_synced_at + content_import_sources_list: + title: Content Import Sources + type: object + x-tags: + - AI Content + description: This will return a list of the content import sources 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 content import sources. + example: 1 + data: + type: array + description: An array of Content Import Source objects + items: + "$ref": "#/components/schemas/content_import_source" + content_source: + title: Content Source + type: object + x-tags: + - AI Content Source + description: The content source used by AI Agent in the conversation. + properties: + content_type: + type: string + description: The type of the content source. + example: content_snippet + enum: + - file + - article + - external_content + - content_snippet + - workflow_connector_action + url: + type: string + description: The internal URL linking to the content source for teammates. + example: "/fin-ai-agent/content?content=content_snippet&id=3234924" + title: + type: string + description: The title of the content source. + example: My internal content snippet + locale: + type: string + description: The ISO 639 language code of the content source. + example: en + content_sources_list: + title: Content Source List + nullable: false + properties: + type: + type: string + enum: + - content_source.list + example: content_source.list + total_count: + type: integer + description: The total number of content sources used by AI Agent in the + conversation. + example: 1 + content_sources: + type: array + description: The content sources used by AI Agent in the conversation. + items: + "$ref": "#/components/schemas/content_source" + conversation: + title: Conversation + type: object + x-tags: + - Conversations + 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. + properties: + type: + type: string + description: Always conversation. + example: conversation + id: + type: string + description: The id representing the conversation. + example: '1295' + title: + type: string + nullable: true + description: The title given to the conversation. + example: Conversation Title + created_at: + type: integer + format: date-time + description: The time the conversation was created. + example: 1663597223 + updated_at: + type: integer + format: date-time + description: The last time the conversation was updated. + example: 1663597260 + waiting_since: + type: integer + format: date-time + nullable: true + description: The last time a Contact responded to an Admin. In other words, + the time a customer started waiting for a response. Set to null if last + reply is from an Admin. + example: 1663597260 + snoozed_until: + type: integer + format: date-time + nullable: true + description: If set this is the time in the future when this conversation + will be marked as open. i.e. it will be in a snoozed state until this + time. i.e. it will be in a snoozed state until this time. + example: 1663597260 + open: + type: boolean + description: Indicates whether a conversation is open (true) or closed (false). + example: true + state: + type: string + enum: + - open + - closed + - snoozed + description: Can be set to "open", "closed" or "snoozed". + example: open + read: + type: boolean + description: Indicates whether a conversation has been read. + example: true + priority: + type: string + enum: + - priority + - not_priority + description: If marked as priority, it will return priority or else not_priority. + example: priority + admin_assignee_id: + type: integer + nullable: true + description: The id of the admin assigned to the conversation. If it's not + assigned to an admin it will return null. + example: 0 + team_assignee_id: + type: string + nullable: true + description: The id of the team assigned to the conversation. If it's not + assigned to a team it will return null. + example: '5017691' + tags: + "$ref": "#/components/schemas/tags" + conversation_rating: + "$ref": "#/components/schemas/conversation_rating" + source: + "$ref": "#/components/schemas/conversation_source" + contacts: + "$ref": "#/components/schemas/conversation_contacts" + teammates: + "$ref": "#/components/schemas/conversation_teammates" + first_contact_reply: + "$ref": "#/components/schemas/conversation_first_contact_reply" + sla_applied: + "$ref": "#/components/schemas/sla_applied" + statistics: + "$ref": "#/components/schemas/conversation_statistics" + conversation_parts: + "$ref": "#/components/schemas/conversation_parts" + linked_objects: + "$ref": "#/components/schemas/linked_object_list" + ai_agent_participated: + type: boolean + description: Indicates whether the AI Agent participated in the conversation. + example: true + ai_agent: + "$ref": "#/components/schemas/ai_agent" + nullable: true + conversation_attachment_files: + title: Conversation attachment files + type: object + description: Properties of the attachment files in a conversation part + properties: + content_type: + type: string + description: The content type of the file + example: application/json + data: + type: string + description: The base64 encoded file data. + example: ewogICJ0ZXN0IjogMQp9 + name: + type: string + description: The name of the file. + example: test.json + conversation_contacts: + title: Contacts + type: object + description: The list of contacts (users or leads) involved in this conversation. + This will only contain one customer unless more were added via the group conversation + feature. + properties: + type: + type: string + description: '' + enum: + - contact.list + example: contact.list + contacts: + type: array + description: The list of contacts (users or leads) involved in this conversation. + This will only contain one customer unless more were added via the group + conversation feature. + items: + "$ref": "#/components/schemas/contact_reference" + 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: + created_at: + type: integer + format: date-time + description: '' + example: 1663597223 + type: + type: string + description: '' + example: conversation + url: + type: string + nullable: true + description: '' + example: https://developers.intercom.com/ + conversation_list: + title: Conversation List + type: object + 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. + properties: + type: + type: string + description: Always conversation.list + enum: + - conversation.list + example: conversation.list + conversations: + type: array + description: The list of conversation objects + items: + "$ref": "#/components/schemas/conversation" + total_count: + type: integer + description: A count of the total number of objects. + example: 12345 + pages: + "$ref": "#/components/schemas/cursor_pages" + conversation_part: + title: Conversation Part + type: object + description: A Conversation Part represents a message in the conversation. + properties: + type: + type: string + description: Always conversation_part + example: conversation_part + id: + type: string + description: The id representing the conversation part. + example: '3' + part_type: + type: string + description: The type of conversation part. + example: comment + body: + type: string + nullable: true + description: The message body, which may contain HTML. For Twitter, this + will show a generic message regarding why the body is obscured. + example: "

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