Intercom
Manage customers, companies, conversations, and more with Intercom API.
Authentication
This connector uses Token-based authentication.
info
Set up your connection in the Abstra Console before using it in your workflows.
How to use
Using the Smart Chat
Execute the action "CHOOSE_ONE_ACTION_BELOW" from my connector "YOUR_CONNECTOR_NAME" using the params "PARAMS_HERE".
Using the Web Editor
from abstra.connectors import run_connection_action
result = run_connection_action(
connection_name="your_connection_name",
action_name="your_action_name",
params={
"param1": "value1",
"param2": "value2"
})
Available Actions
This connector provides 160 actions:
| Action | Purpose | Parameters |
|---|---|---|
| post_fin_voice_register | Register a Fin Voice call with Intercom. This endpoint creates an external reference that links an external call identifier to an Intercom call and conversation. The call can be from different sources: - AWS Connect default - Five9 - Zoom Phone | Intercom-Version (string) data: { . phone_number (string) . call_id (string) . source (string) . data (object) } (object) required |
| get_fin_voice_collect_by_id | Retrieve information about a Fin Voice call using the external reference ID. | id (integer) Intercom-Version (string) |
| get_fin_voice_external_id_by_external_id | Retrieve information about a Fin Voice call using the external call identifier. | external_id (string) Intercom-Version (string) |
| get_fin_voice_phone_number_by_phone_number | Retrieve information about a Fin Voice call using the phone number. Returns the most recent matched call for the given phone number, ordered by creation date. | phone_number (string) Intercom-Version (string) |
| get_me | You can view the currently authorised admin along with the embedded app object a 'workspace' in legacy terminology. 🚧 Single Sign On 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. | Intercom-Version (string) |
| put_admins_by_id_away | You can set an Admin as away for the Inbox. | id (integer) Intercom-Version (string) data: { . away_mode_enabled (boolean) . away_mode_reassign (boolean) . away_status_reason_id (integer) } (object) required |
| get_admins_activity_logs | You can get a log of activities by all admins in an app. | Intercom-Version (string) created_at_after (string) required created_at_before (string) |
| get_admins | You can fetch a list of admins for a given workspace. | Intercom-Version (string) |
| get_admins_by_id | You can retrieve the details of a single admin. | id (integer) Intercom-Version (string) |
| get_ai_content_import_sources | You can retrieve a list of all content import sources for a workspace. | Intercom-Version (string) |
| post_ai_content_import_sources | You can create a new content import source by sending a POST request to this endpoint. | Intercom-Version (string) data: { . sync_behavior (string) . status (string) . url (string) } (object) required |
| delete_ai_content_import_sources_by_id | 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. | id (string) Intercom-Version (string) |
| get_ai_content_import_sources_by_id | Retrieve a content import source | id (string) Intercom-Version (string) |
| put_ai_content_import_sources_by_id | You can update an existing content import source. | id (string) Intercom-Version (string) data: { . sync_behavior (string) . status (string) . url (string) } (object) required |
| get_ai_external_pages | You can retrieve a list of all external pages for a workspace. | Intercom-Version (string) |
| post_ai_external_pages | 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. | Intercom-Version (string) data: { . title (string) . html (string) . url (string) . ai_agent_availability (boolean) . ai_copilot_availability (boolean) . locale (string) . source_id (integer) . external_id (string) } (object) required |
| delete_ai_external_pages_by_id | Sending a DELETE request for an external page will remove it from the content library UI and from being used for AI answers. | id (string) Intercom-Version (string) |
| get_ai_external_pages_by_id | You can retrieve an external page. | id (string) Intercom-Version (string) |
| put_ai_external_pages_by_id | You can update an existing external page if it was created via the API. | id (string) Intercom-Version (string) data: { . title (string) . html (string) . url (string) . fin_availability (boolean) . locale (string) . source_id (integer) . external_id (string) } (object) required |
| get_articles | You can fetch a list of all articles by making a GET request to https://api.intercom.io/articles. 📘 How are the articles sorted and ordered? 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. | Intercom-Version (string) |
| post_articles | You can create a new article by making a POST request to https://api.intercom.io/articles. | Intercom-Version (string) data: { . title (string) . description (string) . body (string) . author_id (integer) . state (string) . parent_id (integer) . parent_type (string) . translated_content } (object) required |
| get_articles_by_id | You can fetch the details of a single article by making a GET request to https://api.intercom.io/articles/id. | id (integer) Intercom-Version (string) |
| put_articles_by_id | You can update the details of a single article by making a PUT request to https://api.intercom.io/articles/id. | id (integer) Intercom-Version (string) data: { . title (string) . description (string) . body (string) . author_id (integer) . state (string) . parent_id (string) . parent_type (string) . translated_content } (object) required |
| delete_articles_by_id | You can delete a single article by making a DELETE request to https://api.intercom.io/articles/id. | id (integer) Intercom-Version (string) |
| get_articles_search | You can search for articles by making a GET request to https://api.intercom.io/articles/search. | Intercom-Version (string) phrase (string) state (string) help_center_id (integer) highlight (boolean) |
| get_away_status_reasons | Returns a list of all away status reasons configured for the workspace, including deleted ones. | Intercom-Version (string) |
| post_export_reporting_data_enqueue | Enqueue a new reporting data export job | Intercom-Version (string) data: { . dataset_id (string) . attribute_ids (array) . start_time (integer) . end_time (integer) } (object) required |
| get_export_reporting_data_by_job_identifier | Get export job status | job_identifier (string) Intercom-Version (string) app_id (string) required client_id (string) required |
| get_export_reporting_data_get_datasets | List available datasets and attributes | Intercom-Version (string) |
| get_download_reporting_data_by_job_identifier | Download the data from a completed reporting data export job. Octet header required You will have to specify the header Accept: application/octet-stream when hitting this endpoint. | job_identifier (string) Intercom-Version (string) Accept (string) required app_id (string) required |
| post_fin_start | Initialize Fin by passing it the user's message along with conversation history and user details. These additional pieces of context will be used by Fin to provide a better and more contextual answer to the user. % admonition type='warning' name='Managed Availability' % The Fin Agent API is currently under managed availability. Please reach out to your accounts team to discuss access. % /admonition % Once Fin is initialized, it progresses through a series of statuses such as thinking, awaitin | Intercom-Version (string) data: { . conversation_id (string) . message . user . attachments (array) . conversation_metadata } (object) required |
| post_fin_reply | Once Fin has returned a response to a user's message, its status will be awaiting_user_reply. If a user replies, use this endpoint to send this response to Fin. % admonition type='warning' name='Managed Availability' % The Fin Agent API is currently under managed availability. Please reach out to your accounts team to discuss access. % /admonition % | Intercom-Version (string) data: { . conversation_id (string) . message . user . attachments (array) } (object) required |
| get_help_center_collections | 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. | Intercom-Version (string) |
| post_help_center_collections | You can create a new collection by making a POST request to https://api.intercom.io/help_center/collections. | Intercom-Version (string) data: { . name (string) . description (string) . translated_content . parent_id (string) . help_center_id (integer) } (object) required |
| get_help_center_collections_by_id | You can fetch the details of a single collection by making a GET request to https://api.intercom.io/help_center/collections/id. | id (integer) Intercom-Version (string) |
| put_help_center_collections_by_id | You can update the details of a single collection by making a PUT request to https://api.intercom.io/collections/id. | id (integer) Intercom-Version (string) data: { . name (string) . description (string) . translated_content . parent_id (string) } (object) required |
| delete_help_center_collections_by_id | You can delete a single collection by making a DELETE request to https://api.intercom.io/collections/id. | id (integer) Intercom-Version (string) |
| get_help_center_help_centers_by_id | You can fetch the details of a single Help Center by making a GET request to https://api.intercom.io/help_center/help_center/id. | id (integer) Intercom-Version (string) |
| get_help_center_help_centers | You can list all Help Centers by making a GET request to https://api.intercom.io/help_center/help_centers. | Intercom-Version (string) |
| get_internal_articles | You can fetch a list of all internal articles by making a GET request to https://api.intercom.io/internal_articles. | Intercom-Version (string) |
| post_internal_articles | You can create a new internal article by making a POST request to https://api.intercom.io/internal_articles. | Intercom-Version (string) data: { . title (string) . body (string) . author_id (integer) . owner_id (integer) } (object) required |
| get_internal_articles_by_id | You can fetch the details of a single internal article by making a GET request to https://api.intercom.io/internal_articles/id. | id (integer) Intercom-Version (string) |
| put_internal_articles_by_id | You can update the details of a single internal article by making a PUT request to https://api.intercom.io/internal_articles/id. | id (integer) Intercom-Version (string) data: { . title (string) . body (string) . author_id (integer) . owner_id (integer) } (object) required |
| delete_internal_articles_by_id | You can delete a single internal article by making a DELETE request to https://api.intercom.io/internal_articles/id. | id (integer) Intercom-Version (string) |
| get_internal_articles_search | You can search for internal articles by making a GET request to https://api.intercom.io/internal_articles/search. | Intercom-Version (string) folder_id (string) |
| post_companies | 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 creat | Intercom-Version (string) data: { . name (string) . company_id (string) . plan (string) . size (integer) . website (string) . industry (string) . custom_attributes (object) . remote_created_at (integer) . monthly_spend (integer) } (object) required |
| get_companies | 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 | Intercom-Version (string) name (string) company_id (string) tag_id (string) segment_id (string) page (integer) per_page (integer) |
| get_companies_by_id | You can fetch a single company. | id (string) Intercom-Version (string) |
| put_companies_by_id | 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 % | id (string) Intercom-Version (string) |
| delete_companies_by_id | You can delete a single company. | id (string) Intercom-Version (string) |
| get_companies_by_id_contacts | You can fetch a list of all contacts that belong to a company. | id (string) Intercom-Version (string) |
| get_companies_by_id_segments | You can fetch a list of all segments that belong to a company. | id (string) Intercom-Version (string) |
| post_companies_list | 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 APIhttps://deve | Intercom-Version (string) page (integer) per_page (integer) order (string) |
| get_companies_scroll | 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 reac | Intercom-Version (string) scroll_param (string) |
| post_contacts_by_id_companies | You can attach a company to a single contact. | id (string) Intercom-Version (string) data: { . id (string) } (object) required |
| get_contacts_by_id_companies | You can fetch a list of companies that are associated to a contact. | id (string) Intercom-Version (string) |
| delete_contacts_by_contact_id_companies_by_id | You can detach a company from a single contact. | contact_id (string) id (string) Intercom-Version (string) |
| get_contacts_by_id_notes | You can fetch a list of notes that are associated to a contact. | id (integer) Intercom-Version (string) |
| post_contacts_by_id_notes | You can add a note to a single contact. | id (integer) Intercom-Version (string) data: { . body (string) . contact_id (string) . admin_id (string) } (object) required |
| get_contacts_by_contact_id_segments | You can fetch a list of segments that are associated to a contact. | contact_id (string) Intercom-Version (string) |
| get_contacts_by_contact_id_subscriptions | 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. | contact_id (string) Intercom-Version (string) |
| post_contacts_by_contact_id_subscriptions | 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 | contact_id (string) Intercom-Version (string) data: { . id (string) . consent_type (string) } (object) required |
| delete_contacts_by_contact_id_subscriptions_by_id | 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. | contact_id (string) id (string) Intercom-Version (string) |
| get_contacts_by_contact_id_tags | You can fetch a list of all tags that are attached to a specific contact. | contact_id (string) Intercom-Version (string) |
| post_contacts_by_contact_id_tags | You can tag a specific contact. This will return a tag object for the tag that was added to the contact. | contact_id (string) Intercom-Version (string) data: { . id (string) } (object) required |
| delete_contacts_by_contact_id_tags_by_id | You can remove tag from a specific contact. This will return a tag object for the tag that was removed from the contact. | contact_id (string) id (string) Intercom-Version (string) |
| put_contacts_by_id | You can update an existing contact ie. user or lead. % admonition type='info' % This endpoint handles both contact updates and custom object associations. See update a contact with an association to a custom object instance in the request/response examples to see the custom object association format. % /admonition % | id (string) Intercom-Version (string) data (undefined) required |
| get_contacts_by_id | You can fetch the details of a single contact. | id (string) Intercom-Version (string) |
| delete_contacts_by_id | You can delete a single contact. | id (string) Intercom-Version (string) |
| post_contacts_merge | You can merge a contact with a role of lead into a contact with a role of user. | Intercom-Version (string) data: { . from (string) . into (string) } (object) required |
| post_contacts_search | 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 op | Intercom-Version (string) data: { . query . pagination } (object) required |
| get_contacts | 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 sectionhttps://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 % | Intercom-Version (string) |
| post_contacts | You can create a new contact ie. user or lead. | Intercom-Version (string) data (undefined) required |
| get_contacts_find_by_external_id_by_external_id | You can fetch the details of a single contact by external ID. Note that this endpoint only supports users and not leads. | external_id (string) Intercom-Version (string) |
| post_contacts_by_id_archive | You can archive a single contact. | id (string) Intercom-Version (string) |
| post_contacts_by_id_unarchive | You can unarchive a single contact. | id (string) Intercom-Version (string) |
| post_contacts_by_id_block | Block a single contact.brNote: conversations of the contact will also be archived during the process.brMore details in FAQ How do I block Inbox spam?https://www.intercom.com/help/en/articles/8838656-inbox-faqs | id (string) Intercom-Version (string) |
| post_conversations_by_conversation_id_tags | You can tag a specific conversation. This will return a tag object for the tag that was added to the conversation. | conversation_id (string) Intercom-Version (string) data: { . id (string) . admin_id (string) } (object) required |
| delete_conversations_by_conversation_id_tags_by_id | You can remove tag from a specific conversation. This will return a tag object for the tag that was removed from the conversation. | conversation_id (string) id (string) Intercom-Version (string) data: { . admin_id (string) } (object) required |
| get_conversations | 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 sectionhttps://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. % /adm | Intercom-Version (string) per_page (integer) starting_after (string) |
| post_conversations | You can create a conversation that has been initiated by a contact ie. user or lead. % 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. | Intercom-Version (string) data: { . from (object) . body (string) . created_at (integer) . message_type (string) } (object) required |
| get_conversations_by_id | 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 fe | id (integer) Intercom-Version (string) display_as (string) include_translations (boolean) |
| put_conversations_by_id | 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 % % admonition type='info' % This endpoint handles both conversation updates and custom object associations. See update a conversation with an association to a custom object instance in the request/response examples to see | id (integer) Intercom-Version (string) display_as (string) data: { . read (boolean) . title (string) . custom_attributes . company_id (string) } (object) required |
| delete_conversations_by_id | % admonition type='warning' name='Irreversible operation' % Deleting a conversation is permanent and cannot be reversed. % /admonition % Deleting a conversation permanently removes it from the inbox. All sensitive data is deleted, including admin and user replies, conversation attributes, uploads, and related content. The conversation will still appear in reporting, though some data may be incomplete due to the deletion. | id (integer) Intercom-Version (string) |
| post_conversations_search | 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 searc | Intercom-Version (string) data: { . query . pagination } (object) required |
| post_conversations_by_id_reply | You can reply to a conversation with a message from an admin or on behalf of a contact, or with a note for admins. | id (string) Intercom-Version (string) data (undefined) required |
| post_conversations_by_id_parts | 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. | id (string) Intercom-Version (string) data (undefined) required |
| post_conversations_by_id_customers | 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 % | id (string) Intercom-Version (string) data: { . admin_id (string) . customer (object) } (object) required |
| delete_conversations_by_conversation_id_customers_by_contact_id | 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 % | conversation_id (string) contact_id (string) Intercom-Version (string) data (undefined) required |
| post_conversations_redact | 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 % | Intercom-Version (string) data (undefined) required |
| post_conversations_by_id_convert | You can convert a conversation to a ticket. | id (integer) Intercom-Version (string) data: { . ticket_type_id (string) . attributes } (object) required |
| post_custom_channel_events_notify_new_conversation | Notifies Intercom that a new conversation was created in your custom channel/platform. This triggers conversation creation and workflow automations within Intercom for your custom channel integration. Note: This endpoint is currently under managed availability. Please reach out to your accounts team to discuss access and tailored, hands-on support. | Intercom-Version (string) required data: { . event_id (string) . external_conversation_id (string) . contact } (object) required |
| post_custom_channel_events_notify_new_message | Notifies Intercom that a new message was sent in a conversation on your custom channel/platform. This allows Intercom to process the message and trigger any relevant workflow automations. Note: This endpoint is currently under managed availability. Please reach out to your accounts team to discuss access and tailored, hands-on support. | Intercom-Version (string) required data (undefined) required |
| post_custom_channel_events_notify_quick_reply_selected | Notifies Intercom that a user selected a quick reply option in your custom channel/platform. This allows Intercom to process the response and trigger any relevant workflow automations. Note: This endpoint is currently under managed availability. Please reach out to your accounts team to discuss access and tailored, hands-on support. | Intercom-Version (string) required data (undefined) required |
| post_custom_channel_events_notify_attribute_collected | Notifies Intercom that a user provided a response to an attribute collector in your custom channel/platform. This allows Intercom to process the attribute and trigger any relevant workflow automations. Note: This endpoint is currently under managed availability. Please reach out to your accounts team to discuss access and tailored, hands-on support. | Intercom-Version (string) required data (undefined) required |
| post_custom_object_instances_by_custom_object_type_identifier | Create or update a custom object instance | custom_object_type_identifier (string) Intercom-Version (string) data: { . external_id (string) . external_created_at (integer) . external_updated_at (integer) . custom_attributes (object) } (object) required |
| get_custom_object_instances_by_custom_object_type_identifier | Fetch a Custom Object Instance by external_id. | custom_object_type_identifier (string) external_id (string) required Intercom-Version (string) |
| delete_custom_object_instances_by_custom_object_type_identifier | Delete a single Custom Object instance by external_id. | custom_object_type_identifier (string) external_id (string) required Intercom-Version (string) |
| get_custom_object_instances_by_custom_object_type_identifier_by_id | Fetch a Custom Object Instance by id. | id (string) custom_object_type_identifier (string) Intercom-Version (string) |
| delete_custom_object_instances_by_custom_object_type_identifier_by_id | Delete a single Custom Object instance using the Intercom defined id. | id (string) custom_object_type_identifier (string) Intercom-Version (string) |
| get_data_attributes | You can fetch a list of all data attributes belonging to a workspace for contacts, companies or conversations. | Intercom-Version (string) model (string) include_archived (boolean) |
| post_data_attributes | You can create a data attributes for a contact or a company. | Intercom-Version (string) data: { . name (string) . model (string) . data_type (string) . description (string) . options (array) . messenger_writable (boolean) } (object) required |
| put_data_attributes_by_id | You can update a data attribute. 🚧 Updating the data type is not possible 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. | id (integer) Intercom-Version (string) data: { . archived (boolean) . description (string) . options (array) . messenger_writable (boolean) } (object) required |
| post_events | 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 apphttp://docs.intercom.io/configuring-Intercom/tracking-user-events-in-y | Intercom-Version (string) data: { . event_name (string) . created_at (integer) . user_id (string) . id (string) . email (string) . metadata (object) } (object) required |
| get_events | 🚧 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 The 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 paramete | Intercom-Version (string) filter (object) required type (string) required summary (boolean) |
| post_events_summaries | 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. | Intercom-Version (string) data: { . user_id (string) . event_summaries (object) } (object) required |
| post_export_content_data | To create your export job, you need to send a POST request to the export endpoint https://api.intercom.io/export/content/data. The only parameters you need to provide are the range of dates that you want exported. 🚧 Limit of one active job 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. ❗️ Updated_at not included It should | Intercom-Version (string) data: { . created_at_after (integer) . created_at_before (integer) } (object) required |
| get_export_content_data_by_job_identifier | You can view the status of your job by sending a GET request to the URL 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. 🚧 Jobs expire after two days 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 | job_identifier (string) Intercom-Version (string) |
| post_export_cancel_by_job_identifier | You can cancel your job | job_identifier (string) Intercom-Version (string) |
| get_export_workflows_by_id | Export a workflow configuration by its ID. This endpoint returns the complete workflow definition including its steps, targeting rules, and attributes. % admonition type='warning' name='Unstable API' % This API is currently in the Unstable version. Its behavior may change in future releases. % /admonition % | id (string) Intercom-Version (string) |
| get_download_content_data_by_job_identifier | 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. Your exported message data will be streamed continuously back down to you in a gzipped CSV format. 📘 Octet header required You will have to specify the header Accept: application/octet-stream when hitting this endpoint. | job_identifier (string) Intercom-Version (string) |
| get_jobs_status_by_id | Retrieve the status of job execution. | id (string) Intercom-Version (string) |
| post_messages | You can create a message that has been initiated by an admin. The conversation can be either an in-app message or an email. 🚧 Sending for visitors 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. This will return the Message model that has been created. 🚧 Retrieving Associated Conversations As this is a message, there will be no conversation present unt | Intercom-Version (string) data: { . message_type (string) . subject (string) . body (string) . template (string) . from (object) . to . cc . bcc . created_at (integer) . create_conversation_without_contact_reply (boolean) } (object) required |
| get_news_news_items | You can fetch a list of all news items | Intercom-Version (string) |
| post_news_news_items | You can create a news item | Intercom-Version (string) data: { . title (string) . body (string) . sender_id (integer) . state (string) . deliver_silently (boolean) . labels (array) . reactions (array) . newsfeed_assignments (array) } (object) required |
| get_news_news_items_by_id | You can fetch the details of a single news item. | id (integer) Intercom-Version (string) |
| put_news_news_items_by_id | Update a news item | id (integer) Intercom-Version (string) data: { . title (string) . body (string) . sender_id (integer) . state (string) . deliver_silently (boolean) . labels (array) . reactions (array) . newsfeed_assignments (array) } (object) required |
| delete_news_news_items_by_id | You can delete a single news item. | id (integer) Intercom-Version (string) |
| get_news_newsfeeds_by_id_items | You can fetch a list of all news items that are live on a given newsfeed | id (string) Intercom-Version (string) |
| get_news_newsfeeds | You can fetch a list of all newsfeeds | Intercom-Version (string) |
| get_news_newsfeeds_by_id | You can fetch the details of a single newsfeed | id (string) Intercom-Version (string) |
| get_notes_by_id | You can fetch the details of a single note. | id (integer) Intercom-Version (string) |
| get_segments | You can fetch a list of all segments. | Intercom-Version (string) include_count (boolean) |
| get_segments_by_id | You can fetch the details of a single segment. | id (string) Intercom-Version (string) |
| get_subscription_types | You can list all subscription types. A list of subscription type objects will be returned. | Intercom-Version (string) |
| post_phone_call_redirects | 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. | Intercom-Version (string) data: { . phone (string) . custom_attributes } (object) required |
| get_calls | Retrieve a paginated list of calls. | Intercom-Version (string) page (integer) per_page (integer) |
| get_calls_by_id | Retrieve a single call by id. | id (string) Intercom-Version (string) |
| get_calls_by_id_recording | Redirects to a signed URL for the call's recording if it exists. | id (string) Intercom-Version (string) |
| get_calls_by_id_transcript | Returns the transcript for the specified call as a downloadable text file. | id (string) Intercom-Version (string) |
| post_calls_search | Retrieve calls by a list of conversation ids and include transcripts when available. A maximum of 20 conversation_ids can be provided. If none are provided or more than 20 are provided, a 400 error is returned. | Intercom-Version (string) data: { . conversation_ids (array) } (object) required |
| get_tags | You can fetch a list of all tags for a given workspace. | Intercom-Version (string) |
| post_tags | 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 th | Intercom-Version (string) data (undefined) required |
| get_tags_by_id | You can fetch the details of tags that are on the workspace by their id. This will return a tag object. | id (string) Intercom-Version (string) |
| delete_tags_by_id | You can delete the details of tags that are on the workspace by passing in the id. | id (string) Intercom-Version (string) |
| get_teams | This will return a list of team objects for the App. | Intercom-Version (string) |
| get_teams_by_id | You can fetch the details of a single team, containing an array of admins that belong to this team. | id (string) Intercom-Version (string) |
| get_ticket_states | You can get a list of all ticket states for a workspace. | Intercom-Version (string) |
| post_ticket_types_by_ticket_type_id_attributes | You can create a new attribute for a ticket type. | ticket_type_id (string) Intercom-Version (string) data: { . name (string) . description (string) . data_type (string) . required_to_create (boolean) . required_to_create_for_contacts (boolean) . visible_on_create (boolean) . visible_to_contacts (boolean) . multiline (boolean) . list_items (string) . allow_multiple_values (boolean) } (object) required |
| put_ticket_types_by_ticket_type_id_attributes_by_id | You can update an existing attribute for a ticket type. | ticket_type_id (string) id (string) Intercom-Version (string) data: { . name (string) . description (string) . required_to_create (boolean) . required_to_create_for_contacts (boolean) . visible_on_create (boolean) . visible_to_contacts (boolean) . multiline (boolean) . list_items (string) . allow_multiple_values (boolean) . archived (boolean) } (object) required |
| get_ticket_types | You can get a list of all ticket types for a workspace. | Intercom-Version (string) |
| post_ticket_types | You can create a new ticket type. 📘 Creating ticket types. Every ticket type will be created with two default attributes: default_title and default_description. For the icon propery, use an emoji from Twemoji Cheatsheethttps://twemoji-cheatsheet.vercel.app/ | Intercom-Version (string) data: { . name (string) . description (string) . category (string) . icon (string) . is_internal (boolean) } (object) required |
| get_ticket_types_by_id | You can fetch the details of a single ticket type. | id (string) Intercom-Version (string) |
| put_ticket_types_by_id | You can update a ticket type. 📘 Updating a ticket type. For the icon propery, use an emoji from Twemoji Cheatsheethttps://twemoji-cheatsheet.vercel.app/ | id (string) Intercom-Version (string) data: { . name (string) . description (string) . category (string) . icon (string) . archived (boolean) . is_internal (boolean) } (object) required |
| post_tickets_by_id_reply | You can reply to a ticket with a message from an admin or on behalf of a contact, or with a note for admins. | id (string) Intercom-Version (string) data (undefined) required |
| post_tickets_by_ticket_id_tags | You can tag a specific ticket. This will return a tag object for the tag that was added to the ticket. | ticket_id (string) Intercom-Version (string) data: { . id (string) . admin_id (string) } (object) required |
| delete_tickets_by_ticket_id_tags_by_id | You can remove tag from a specific ticket. This will return a tag object for the tag that was removed from the ticket. | ticket_id (string) id (string) Intercom-Version (string) data: { . admin_id (string) } (object) required |
| post_tickets | You can create a new ticket. | Intercom-Version (string) data (undefined) required |
| post_tickets_enqueue | Enqueues ticket creation for asynchronous processing, returning if the job was enqueued successfully to be processed. We attempt to perform a best-effort validation on inputs before tasks are enqueued. If the given parameters are incorrect, we won't enqueue the job. | Intercom-Version (string) data (undefined) required |
| put_tickets_by_id | You can update a ticket. | id (string) Intercom-Version (string) data: { . ticket_attributes (object) . ticket_state_id (string) . company_id (string) . open (boolean) . is_shared (boolean) . snoozed_until (integer) . admin_id (integer) . assignee_id (string) } (object) required |
| get_tickets_by_id | You can fetch the details of a single ticket. | id (string) Intercom-Version (string) |
| delete_tickets_by_id | % admonition type='warning' name='Irreversible operation' % Deleting a ticket is permanent and cannot be reversed. % /admonition % Deleting a ticket permanently removes it from the inbox. All sensitive data is deleted, including admin and user replies, ticket attributes, uploads, and related content. The ticket will still appear in reporting, though some data may be incomplete due to the deletion. | id (string) Intercom-Version (string) |
| post_tickets_search | 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 t | Intercom-Version (string) data: { . query . pagination } (object) required |
| put_visitors | 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. | Intercom-Version (string) data: { . id (string) . user_id (string) . name (string) . custom_attributes (object) } (object) required |
| get_visitors | You can fetch the details of a single visitor. | Intercom-Version (string) user_id (string) required |
| post_visitors_convert | You can merge a Visitor to a Contact of role type lead or user. 📘 What happens upon a visitor being converted? 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. | Intercom-Version (string) data: { . type (string) . user (object) . visitor (object) } (object) required |
| get_brands | Retrieves all brands for the workspace, including the default brand. The default brand id always matches the workspace | Intercom-Version (string) |
| get_brands_by_id | Fetches a specific brand by its unique identifier | id (string) Intercom-Version (string) |
| get_emails | Lists all sender email address settings for the workspace | Intercom-Version (string) |
| get_emails_by_id | Fetches a specific email setting by its unique identifier | id (string) Intercom-Version (string) |