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 161 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) required 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) required 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) required 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) required 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) required 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) required Intercom-Version (string) |
| get_ai_content_import_sources_by_id | Retrieve a content import source | id (string) required Intercom-Version (string) |
| put_ai_content_import_sources_by_id | You can update an existing content import source. | id (string) required 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) required Intercom-Version (string) |
| get_ai_external_pages_by_id | You can retrieve an external page. | id (string) required 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) required 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) } (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) required 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) required Intercom-Version (string) data: { . title (string) . description (string) . body (string) . author_id (integer) . state (string) . parent_id (string) . parent_type (string) . translated_content (object) } (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) required 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) required 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) required 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 (object) . user (object) . attachments (array) . conversation_metadata (object) } (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 (object) . user (object) . 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 (object) . 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) required 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) required Intercom-Version (string) data: { . name (string) . description (string) . translated_content (object) . 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) required 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) required 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) required 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) required 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) required 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) required 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) required Intercom-Version (string) |
| delete_companies_by_id | You can delete a single company. | id (string) required Intercom-Version (string) |
| get_companies_by_id_contacts | You can fetch a list of all contacts that belong to a company. | id (string) required Intercom-Version (string) |
| get_companies_by_id_segments | You can fetch a list of all segments that belong to a company. | id (string) required 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) required 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) required Intercom-Version (string) |
| delete_contacts_by_contact_id_companies_by_id | You can detach a company from a single contact. | contact_id (string) required id (string) required Intercom-Version (string) |
| get_contacts_by_id_notes | You can fetch a list of notes that are associated to a contact. | id (integer) required Intercom-Version (string) |
| post_contacts_by_id_notes | You can add a note to a single contact. | id (integer) required 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) required 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) required 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) required 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) required id (string) required 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) required 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) required 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) required id (string) required 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) required Intercom-Version (string) data required |
| get_contacts_by_id | You can fetch the details of a single contact. | id (string) required Intercom-Version (string) |
| delete_contacts_by_id | You can delete a single contact. | id (string) required 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) } (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 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) required Intercom-Version (string) |
| post_contacts_by_id_archive | You can archive a single contact. | id (string) required Intercom-Version (string) |
| post_contacts_by_id_unarchive | You can unarchive a single contact. | id (string) required 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) required 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) required 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) required id (string) required 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) required 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) required Intercom-Version (string) display_as (string) data: { . read (boolean) . title (string) . custom_attributes (object) . 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) required 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) } (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) required Intercom-Version (string) data 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) required Intercom-Version (string) data 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) required 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) required contact_id (string) required Intercom-Version (string) data 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 required |
| post_conversations_by_id_convert | You can convert a conversation to a ticket. | id (integer) required Intercom-Version (string) data: { . ticket_type_id (string) . attributes (object) } (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) } (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 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 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 required |
| post_custom_object_instances_by_custom_object_type_identifier | Create or update a custom object instance | custom_object_type_identifier (string) required 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) required 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) required 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) required custom_object_type_identifier (string) required 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) required custom_object_type_identifier (string) required 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) required 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) required Intercom-Version (string) |
| post_export_cancel_by_job_identifier | You can cancel your job | job_identifier (string) required 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) required 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) required Intercom-Version (string) |
| get_jobs_status_by_id | Retrieve the status of job execution. | id (string) required 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) required Intercom-Version (string) |
| put_news_news_items_by_id | Update a news item | id (integer) required 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) required 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) required 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) required Intercom-Version (string) |
| get_notes_by_id | You can fetch the details of a single note. | id (integer) required 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) required 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) } (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) required Intercom-Version (string) |
| get_calls_by_id_recording | Redirects to a signed URL for the call's recording if it exists. | id (string) required Intercom-Version (string) |
| get_calls_by_id_transcript | Returns the transcript for the specified call as a downloadable text file. | id (string) required 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 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) required 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) required 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) required 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) required 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) required id (string) required 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) required 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) required 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) required Intercom-Version (string) data 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) required 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) required id (string) required Intercom-Version (string) data: { . admin_id (string) } (object) required |
| post_tickets | You can create a new ticket. | Intercom-Version (string) data 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 required |
| put_tickets_by_id | You can update a ticket. | id (string) required 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) required 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) required 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) } (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) required 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) required Intercom-Version (string) |
| custom | Call any endpoint of the connected service while reusing the connection auth. Pass the full URL as _url. Other reserved keys: _method, _query, _body, _headers. Remaining params flow naturally — empty → GET, non-empty → POST JSON body. | _url (string) required _method (string) _query (object) _body _headers (object) |