---
title: Intercom API Integration on Truto
slug: intercom
category: Helpdesk
canonical: "https://truto.one/integrations/detail/intercom/"
---

# Intercom API Integration on Truto



**Category:** Helpdesk  
**Status:** Generally available

## Unified APIs

### Unified Knowledge Base API

- **Collections** — 
- **Page-Content** — Represents the content of a page
- **Pages** — Represents the pages, posts, articles in a knowledge base
- **Spaces** — Represents the high level grouping of pages in a knowledge base

### Unified User Directory API

- **Activities** — Activities are the actions performed by users in the source application.
- **Me** — 
- **Users** — The User object represents a User.

### Unified Ticketing API

- **Attachments** — Attachments are the files associated with a ticket or a comment.
- **Comments** — Comments represent the communication happening on a Ticket, both between a User and a Contact and the internal things like notes, private comments, etc. A Ticket can have one or more Comments.
- **Contacts** — Contact represent the external people you are in contact with. These could be customers, leads, etc. Contacts can be associated with an Account if the underlying product supports it.
- **Fields** — Fields represent the attributes defined for various entities in the underlying product. Depending on the underlying product, custom attributes can be defined by a User on various entities like Ticket, Contact, etc. is_user_defined attribute within Field can be used to differentiate between custom and system defined Fields.
- **Ticket Status** — Ticket Status represents the completion level of the Ticket. Some products provide customizing the Ticket Status.
- **Ticket Types** — Ticket Types represent the classification system used by the underlying products for Tickets. Some examples are bugs, feature, incident, etc.
- **Tickets** — Core resource which represents some work that needs to be carried out. Tickets are usually mapped to issues, tasks, work items, etc. depending on the underlying product.
- **Users** — Users represent the people using the underlying ticketing system. They are usually called agents, team members, admins, etc.

### Unified Search API

- **Search** — Search endpoint for all the apps.

## MCP-ready AI tools

Truto exposes 98 tools for Intercom that AI agents can call directly.

- **list_all_intercom_teams** — Get a list of all teams in Intercom. Returns team objects including key fields such as team id, name, and description.
- **get_single_intercom_team_by_id** — Get details of a specific team in Intercom by id. Returns the team's information including an array of admins belonging to the team.
- **list_all_intercom_admins** — Get a list of admins in Intercom. Returns the admins array containing admin objects associated with the workspace.
- **get_single_intercom_admin_by_id** — Get details of a single admin in Intercom by id. Returns admin fields including unique identifier and other admin details.
- **intercom_admins_me** — Get information about the currently authorised admin in Intercom. Returns admin details and embedded app object. Note: Do not accept sign-ins from users with unverified email addresses due to security risks.
- **update_a_intercom_admin_by_id** — Set an admin's away status in Intercom using id. Requires away_mode_enabled to enable away mode and away_mode_reassign to assign new conversation replies to default inbox. Returns updated admin status.
- **list_all_intercom_companies** — Get companies filtered by company_id, name, segment_id, or tag_id in Intercom. Returns companies array with company details including id, name, and attributes.
- **get_single_intercom_company_by_id** — Get information about a specific company by id in Intercom. Returns fields including company id, name, and attributes.
- **create_a_intercom_company** — Create or update a company in Intercom using company_id. Returns the company object including fields like company_id, name, plan, size, website, industry, custom_attributes, remote_created_at, and monthly_spend.
- **update_a_intercom_company_by_id** — Update a company by id in Intercom. The response returns the updated company object including its id, name, and other attributes. Note: company_id cannot be updated once set.
- **delete_a_intercom_company_by_id** — Delete a company by id in Intercom. The response confirms the deletion of the company identified by id.
- **list_all_intercom_tags** — List all tags in Intercom. Returns an array of tags with their id, name, and description fields.
- **get_single_intercom_tag_by_id** — Get details of a specific tag by id in Intercom. Returns the tag object including its unique identifier and attributes.
- **delete_a_intercom_tag_by_id** — Delete tag by id in Intercom.
- **list_all_intercom_contacts** — Get a list of all contacts in Intercom. Returns contacts array with each contact's details.
- **get_single_intercom_contact_by_id** — Get contact details by id in Intercom. Returns fields including contact id, name, email, and creation date.
- **create_a_intercom_contact** — Create a new contact in Intercom with email. Returns contact id, email, name, phone, and custom attributes.
- **update_a_intercom_contact_by_id** — Update a contact by id in Intercom. Returns updated contact fields including email, name, phone, role, owner_id, and custom_attributes.
- **delete_a_intercom_contact_by_id** — Delete a contact by id in Intercom.
- **list_all_intercom_conversations** — Get a list of all conversations in Intercom. Returns conversation id, created_at, updated_at, state, open status, priority, and other key conversation details.
- **get_single_intercom_conversation_by_id** — Get details of a single conversation in Intercom by id. Returns fields including type, id, created_at, updated_at, source message, contacts, state, tags, priority, and conversation_parts with total_count.
- **intercom_conversations_manage** — Manage a conversation in Intercom by closing, snoozing, opening, or assigning it using id. Returns the updated conversation object including status and assignee details.
- **intercom_conversations_reply** — Reply to a conversation in Intercom using id. Returns the updated conversation object including id, updated_at, and conversation parts.
- **create_a_intercom_conversation** — Create a conversation in Intercom with from.type, from.id, and body. Returns the created message including message content and sender details.
- **update_a_intercom_conversation_by_id** — Update a conversation by id in Intercom. Returns the updated conversation including fields such as read status, title, and custom attributes.
- **delete_a_intercom_conversation_by_id** — Delete a conversation by id in Intercom.
- **list_all_intercom_conversation_search** — Search conversations in Intercom using a query object with filters. Returns conversations matching the filters with fields like id, created_at, updated_at, source details, state, priority, and conversation_rating.
- **list_all_intercom_articles** — Get a list of all articles in Intercom. Returns articles sorted by updated_at in descending order with fields including article id, title, and updated_at timestamp.
- **get_single_intercom_article_by_id** — Get details of a single article in Intercom by id. Returns fields including article id, title, body, and metadata.
- **create_a_intercom_article** — Create a new article in Intercom with required title and author_id. Returns translated_content including title, description, body, author_id, state, created_at, updated_at, and url for each language.
- **update_a_intercom_article_by_id** — Update an article in Intercom by id. Returns the updated article including title, description, body, author_id, state, parent_id, parent_type, and translated_content.
- **delete_a_intercom_article_by_id** — Delete an article by id in Intercom.
- **list_all_intercom_articles_search** — Search articles in Intercom by help_center_id, phrase, and state. Returns articles with fields including id, title, and body. Highlighted matching content is included if highlight is true.
- **list_all_intercom_help_centers** — List all Help Centers in Intercom. Returns an array of help_centers with their details.
- **get_single_intercom_help_center_by_id** — Get details of a specific Help Center in Intercom by id. Returns the help_center object with its unique identifier and associated information.
- **list_all_intercom_news_items** — List all news items in Intercom. Returns an array of news items with details such as id, title, and body.
- **get_single_intercom_news_item_by_id** — Get details of a specific news item in Intercom using id. Returns the news_item object with all relevant fields.
- **create_a_intercom_news_item** — Create a news item in Intercom with title and sender_id. Returns the created news item including id, title, body, state, and sender_id.
- **update_a_intercom_news_item_by_id** — Update a news item by id in Intercom. Requires title, sender_id. Returns updated news item fields including title, body, sender_id, state, reactions, and newsfeed assignments.
- **delete_a_intercom_news_item_by_id** — Delete a news item by id in Intercom.
- **list_all_intercom_help_center_collections** — List all help center collections in Intercom. Returns collections sorted by updated_at in descending order with fields including collection details.
- **get_single_intercom_help_center_collection_by_id** — Get details of a single collection in Intercom by id. Returns collection fields including id, name, description, and created_at.
- **create_a_intercom_help_center_collection** — Create a new help-center-collection with name in Intercom. Returns the created collection including its id and name.
- **update_a_intercom_help_center_collection_by_id** — Update a collection by id in Intercom. Requires id. Returns the updated collection with fields including name, description, translated_content, and parent_id.
- **delete_a_intercom_help_center_collection_by_id** — Delete a help center collection by id in Intercom.
- **list_all_intercom_activity_logs** — List all activity logs filtered by created_at_after and created_at_before timestamps in Intercom. Returns activity_logs with details of admin activities within the specified time range.
- **list_all_intercom_scroll_companies** — Get a scroll of all companies in Intercom using scroll_param. Returns companies array. Only one scroll can be open per app and scroll expires after 1 minute of inactivity or at end of data.
- **list_all_intercom_me** — Get information about the currently authorised admin in Intercom. Returns fields including admin details and embedded app object (workspace). Do not accept sign-ins from users with unverified email addresses.
- **list_all_intercom_search_conversations** — Search conversations in Intercom using a query object with filters. Returns conversations matching the filters with fields like id, created_at, source.type, state, and conversation_rating.score. Supports up to 2 nested filters and 15 filters per group.
- **list_all_intercom_search_contacts** — Search contacts in Intercom using a query object with filters. Returns contacts matching the filters with fields such as id, name, email, and created_at.
- **list_all_intercom_search_articles** — Search articles in Intercom by phrase, state, and help_center_id. Returns articles with fields including id, title, and body. Requires phrase, state, and help_center_id parameters.
- **list_all_intercom_search_tickets** — Search tickets in Intercom using a query object with filters. Returns an array of tickets matching the search criteria.
- **list_all_intercom_ticket_types** — List all ticket types in Intercom. Returns ticket_types array with details of each ticket type.
- **create_a_intercom_ticket_type** — Create a ticket type in Intercom. Requires name. Returns id, name, description, icon, workspace_id, category, archived, created_at, updated_at, is_internal, ticket_type_attributes (default_title and default_description), and ticket_states for the ticket type.
- **get_single_intercom_ticket_by_id** — Get details of a specific ticket in Intercom using id. Returns ticket fields including id, subject, description, status, and created_at.
- **create_a_intercom_ticket** — Create a ticket in Intercom with ticket_type_id and contacts. Returns the created ticket including its id, type, contacts, and attributes.
- **update_a_intercom_ticket_by_id** — Update a ticket by id in Intercom. Requires id. Returns updated ticket fields including ticket_attributes, assignment, open status, snoozed_until timestamp, and ticket_state_id.
- **delete_a_intercom_ticket_by_id** — Delete a ticket by id in Intercom. Requires the unique ticket identifier id. No content is returned in the response.
- **list_all_intercom_attachments** — Get details of a specific conversation in Intercom by id. Returns the Conversation model including up to 500 most recent conversation parts.
- **intercom_attachments_download** — Use this endpoint to fetch information and download the files attached to specific parts of a conversation.

- **list_all_intercom_data_attributes** — List all data attributes for a specified model in Intercom. Requires model parameter to specify contact, company, or conversation. Returns attributes including id, name, and type.
- **create_a_intercom_data_attribute** — Create a data attribute with name, model, and data_type in Intercom. Returns the created attribute's id, name, model, data_type, description, and messenger_writable status.
- **update_a_intercom_data_attribute_by_id** — Update a data attribute by id in Intercom. Returns updated fields including description, archived status, messenger_writable flag, and options for list attributes. Note: data type cannot be changed via API.
- **list_all_intercom_content_import_sources** — List all content import sources in Intercom. Returns an array of sources with fields including id, name, and type.
- **get_single_intercom_content_import_source_by_id** — Get a content import source by id in Intercom. Returns fields including the unique identifier and source details.
- **create_a_intercom_content_import_source** — Create a content import source with sync_behavior and url in Intercom. Returns content_import_source with details including status and url.
- **update_a_intercom_content_import_source_by_id** — Update a content import source by id in Intercom. Requires id, sync_behavior set to 'api', and url. Returns updated content import source with fields including id, sync_behavior, status, and url.
- **delete_a_intercom_content_import_source_by_id** — Delete a content import source by id in Intercom. This operation also deletes all external pages imported from this source.
- **list_all_intercom_external_pages** — Get a list of all external pages in Intercom. Returns external_pages array with details about each external page.
- **get_single_intercom_external_page_by_id** — Get an external page by id in Intercom. Returns the external page's unique identifier and related content.
- **create_a_intercom_external_page** — Create or update an external page in Intercom with source_id and external_id. Returns external_page with id, title, html, url, locale, ai_agent_availability, and ai_copilot_availability fields.
- **update_a_intercom_external_page_by_id** — Update an existing external page in Intercom by id. Requires title, html, url, locale, source_id, and optionally fin_availability and external_id. Returns the updated external_page with its details.
- **delete_a_intercom_external_page_by_id** — Delete an external page by id in Intercom. Removes the page from the content library UI and disables its use for AI answers.
- **list_all_intercom_attached_contacts** — Get a list of all contacts attached to a company in Intercom. Requires company id. Returns contacts array with contact details.
- **list_all_intercom_notes** — Get a list of notes associated with a contact in Intercom. Requires id. Returns notes with details such as id, body, and creation timestamps.
- **create_a_intercom_note** — Create a note for a contact in Intercom using id. Returns the created note including its text and identifiers.
- **get_single_intercom_note_by_id** — Get details of a specific note by id in Intercom. Returns fields including note id, body, and associated user or admin information.
- **list_all_intercom_attached_segments** — Get list of segments attached to a contact in Intercom. Requires contact id. Returns segments array with segment details.
- **list_all_intercom_contact_subscriptions** — Get a list of subscription types for a contact in Intercom by contact_id. Returns subscription type objects showing opt-in and opt-out statuses.
- **create_a_intercom_contact_subscription** — Add a subscription to a contact in Intercom using contact_id. Requires id and consent_type (opt_in or opt_out). Returns subscription_type model with details of the added subscription.
- **delete_a_intercom_contact_subscription_by_id** — Remove a specific subscription from a contact in Intercom using contact_id and id. Returns the subscription type model for the removed subscription.
- **list_all_intercom_data_events** — List all data events for a user in Intercom using user_id, email, or intercom_user_id. Returns event details including event name, created_at timestamp, and metadata. Only events less than 90 days old can be listed.
- **create_a_intercom_data_event** — Submit a data event with event_name and created_at timestamp for a user identified by id, user_id, or email in Intercom. The response is 202 Accepted with an empty body.
- **create_a_intercom_message** — Create a message with message_type, subject, body, template, from (admin type and id), and to (user or lead type and id) in Intercom. Returns the created message including id, body, and created_at.
- **list_all_intercom_news_feeds** — Get a list of all newsfeeds in Intercom. Returns an array of newsfeed objects including key fields such as id, type, and content. The response also includes total_count indicating the total number of newsfeeds.
- **get_single_intercom_news_feed_by_id** — Get details of a specific newsfeed in Intercom by id. Returns fields including the newsfeed's unique identifier, title, body, and creation date.
- **list_all_intercom_live_news_feeds** — Get all live newsfeed items for a newsfeed in Intercom using id. Returns fields including id, title, body, and created_at for each live newsfeed item.
- **list_all_intercom_segments** — Get a list of all segments in Intercom. Returns segments with their id, name, and optionally the count of contacts in each segment if include_count is true.
- **get_single_intercom_segment_by_id** — Get details of a single segment by id in Intercom. Returns segment fields including id, name, and created_at.
- **create_a_intercom_phone_switch** — Create a phone switch by sending an SMS with a Messenger link to the specified phone number in Intercom. Requires phone number in E.164 format. Returns phone_call_redirects with details of the SMS sent.
- **list_all_intercom_contact_tags** — Get a list of all tags attached to a specific contact in Intercom. Requires contact id. Returns tags with their details.
- **create_a_intercom_contact_tag** — Add a tag to a contact in Intercom using contact id and tag id. Returns the tag object added to the contact.
- **delete_a_intercom_contact_tag_by_id** — Remove tag from a contact in Intercom using contact_id and id. Returns the tag object for the removed tag.
- **list_all_intercom_ticket_states** — List all ticket states in Intercom. Returns ticket_states array with details of each ticket state.
- **get_single_intercom_visitor_by_id** — Get details of a single visitor in Intercom by user_id. Returns visitor's id, user_id, anonymous status, email, phone, name, pseudonym, avatar, app_id, companies, location_data, timestamps, session_count, social_profiles, owner_id, email subscription status, spam and bounce status, tags, segments, custom_attributes, referrer, utm parameters, and do_not_track flag.
- **update_a_intercom_visitor_by_id** — Update an existing visitor in Intercom by providing id or user_id. Returns the updated visitor object including id and name fields.
- **create_a_intercom_ticket_type_attribute** — Create a new ticket type attribute in Intercom for a specific ticket_type_id. Returns fields such as id (attribute id), workspace_id, name, description, data_type, input_options, order, required_to_create, required_to_create_for_contacts, visible_on_create, visible_to_contacts, default, ticket_type_id, archived, created_at, and updated_at in the response.
- **update_a_intercom_ticket_type_attribute_by_id** — Update an existing ticket-type-attributes resource in Intercom using ticket_type_id and id. Returns fields such as id, workspace_id, name, description, data_type, order, required_to_create, required_to_create_for_contacts, visible_on_create, visible_to_contacts, default, ticket_type_id, archived, created_at, and updated_at in the response. You can use this endpoint to archive an attribute as well.

## How it works

1. **Link your customer's Intercom account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Intercom.** The Proxy API is a 1-to-1 mapping of the Intercom API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Sync customer context into Intercom for smarter support routing** — SaaS companies push subscription tiers, usage metrics, and account health scores into Intercom contacts and companies so their customers' support agents and AI assistants can prioritize and route conversations with full business context—without any manual data entry.
- **Bi-directional ticket sync between your product and Intercom** — Bug trackers, project management tools, and escalation platforms can detect tagged Intercom conversations, create corresponding issues internally, and push resolution updates back to Intercom tickets—keeping support agents and end users in the loop automatically.
- **Extract and ingest knowledge base content for AI training** — AI copilot and RAG platform companies pull Intercom articles and help center collections to train specialized models, or push external documentation into Intercom so the Fin AI agent can reference it—all through a single normalized API.
- **Trigger proactive in-app messages from backend product events** — Billing, monitoring, and lifecycle management SaaS products push events like payment failures or trial expirations into Intercom data events, automatically triggering workflows that re-engage users before they churn.
- **Enrich CRM lead scoring with Intercom engagement data** — Revenue intelligence and PLG platforms pull Intercom contacts and conversation activity to calculate product-qualified lead scores, then tag high-intent users back in Intercom to route them to human sales reps instead of AI deflection.

## What you can build

- **Two-way ticket lifecycle sync** — Create, update, and resolve Intercom tickets from your product and reflect status changes back in real time using the Unified Ticketing API.
- **Automated internal note injection** — Drop contextual notes from your platform—bug links, account health summaries, escalation history—directly onto Intercom conversations so agents never lose context.
- **Custom data attribute provisioning** — Programmatically create and update custom data attributes on Intercom contacts and companies to surface your product's unique metrics (e.g., MRR, feature usage, plan tier) inside the Intercom inbox.
- **Knowledge base content pipeline** — Continuously sync Intercom articles, help center collections, and external pages via the Unified Knowledge Base API to power search, AI training, or cross-platform documentation workflows.
- **Contact tagging and segmentation engine** — Automatically tag Intercom contacts with labels like 'VIP', 'Churn-Risk', or 'Sales Ready' based on signals computed in your product, driving Intercom routing rules and automation.
- **Event-driven behavioral messaging** — Push product usage events into Intercom's data events endpoint to trigger proactive in-app messages, emails, or workflow automations without your customers writing custom webhook code.

## FAQs

### What authentication method does the Intercom integration use?

Intercom uses OAuth 2.0 for authentication. Truto handles the full OAuth flow—token exchange, storage, and refresh—so your end users simply authorize their Intercom workspace through a managed consent screen.

### Can I create and manage custom fields on Intercom contacts and companies?

Yes. You can use create_a_intercom_data_attribute to define new custom data attributes and update_a_intercom_data_attribute_by_id to modify them. These attributes can then be set on contacts and companies via update operations.

### Which Truto Unified APIs map to Intercom resources?

Intercom is covered by four Unified APIs: Ticketing (tickets, contacts, comments, attachments, fields, ticket types, statuses, users), User Directory (users, activities, me), Knowledge Base (articles, collections, spaces, page content), and Search.

### How does conversation search work in Intercom through Truto?

You can use list_all_intercom_search_conversations or list_all_intercom_conversation_search to query conversations with filters. Truto handles Intercom's pagination automatically so you get complete result sets without managing cursors yourself.

### Can I reply to and manage Intercom conversations programmatically?

Yes. Use intercom_conversations_reply to send replies (including admin and user replies) and intercom_conversations_manage to perform actions like assigning to a team, snoozing, or closing a conversation.

### Does the integration support managing Intercom's help center content?

Yes. You can list, create, update, and delete articles, help center collections, external pages, and content import sources. You can also list help centers and search articles using list_all_intercom_articles_search.

## Related reading

- [How Do I Integrate With the Intercom API? (2026 Architecture Guide)](https://truto.one/blog/how-do-i-integrate-with-the-intercom-api-2026-architecture-guide/) — A technical architecture guide for integrating with the Intercom API — covering OAuth quirks, rate limits, cursor pagination, webhook verification, and how to skip the build entirely.
