Skip to content

Helpdesk

Intercom
API integration

Ship Helpdesk features without building the integration. Full Intercom API access via Proxy, normalized data through Unified APIs, and 90+ MCP-ready tools for AI agents — all extensible to your exact use case.

Talk to us
Intercom

Use Cases

Why integrate with Intercom

Common scenarios for SaaS companies building Intercom integrations for their customers.

01

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.

02

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.

03

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.

04

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.

05

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

Ship these features with Truto + Intercom

Concrete product features your team can ship faster by leveraging Truto’s Intercom integration instead of building from scratch.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

SuperAI

Intercom AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

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.

Why Truto

Why use Truto’s MCP server for Intercom

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Intercom

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified Knowledge Base API

Collections

View Docs

Page-Content

Represents the content of a page

View Docs

Pages

Represents the pages, posts, articles in a knowledge base

View Docs

Spaces

Represents the high level grouping of pages in a knowledge base

View Docs

Unified User Directory API

Activities

Activities are the actions performed by users in the source application.

View Docs

Users

The User object represents a User.

View Docs

Unified Ticketing API

Attachments

Attachments are the files associated with a ticket or a comment.

View Docs

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.

View Docs

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.

View Docs

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.

View Docs

Ticket Status

Ticket Status represents the completion level of the Ticket. Some products provide customizing the Ticket Status.

View Docs

Ticket Types

Ticket Types represent the classification system used by the underlying products for Tickets. Some examples are bugs, feature, incident, etc.

View Docs

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.

View Docs

Users

Users represent the people using the underlying ticketing system. They are usually called agents, team members, admins, etc.

View Docs

Unified Search API

Search

Search endpoint for all the apps.

View Docs

How It Works

From zero to integrated

Go live with Intercom in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Intercom account

Use Truto’s frontend SDK to connect your customer’s Intercom account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Intercom

Truto’s Proxy API is a 1-to-1 mapping of the Intercom API. You call us, we call Intercom, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Intercom’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Intercom on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

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.

Intercom

Get Intercom integrated into your app

Our team understands what it takes to make a Intercom integration successful. A short, crisp 30 minute call with folks who understand the problem.

Talk to us