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 usUse Cases
Why integrate with Intercom
Common scenarios for SaaS companies building Intercom integrations for their customers.
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
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.
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.
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.
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.
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.
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.
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.
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.
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
Unified User Directory API
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.
How It Works
From zero to integrated
Go live with Intercom in under an hour. No boilerplate, no maintenance burden.
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.
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.
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.
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.
From the Blog
Intercom integration guides
Deep dives, architecture guides, and practical tutorials for building Intercom integrations.
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