Skip to main content

Overview

The Intercom integration lets users connect their Intercom workspace so Alysio can list and retrieve contacts, companies, segments, teams, events, and conversations on their behalf. Users can ask Alysio to list contacts or companies, get a contact or company by ID, list contacts attached to a company, list segments and teams, list events for a user, list or search conversations, and get conversation details—all in natural language. The integration uses OAuth 2.0; the user authorizes Intercom once and the MCP sends requests using the stored credential. Use intercom_list_all_contacts to get contact IDs (e.g. for events); use intercom_list_companies to get company IDs (e.g. for attached contacts). Supported capabilities / objects
  • Contacts — List all contacts (with pagination); get contact by ID.
  • Companies — List companies (with pagination and order); get company by ID; list contacts attached to a company.
  • Segments — List segments (optional include_count for contact counts).
  • Teams — List all teams (with pagination).
  • Events — List events for a user (pass contact’s external_id as user_id; get external_id from list_all_contacts).
  • Conversations — List conversations (with pagination); get conversation by ID (returns up to 500 most recent in list); search conversations.

Authentication

Method: OAuth 2.0 (Intercom). The MCP sends requests using a Bearer token and a credential ID that identifies the user’s connected Intercom account. Requests are sent to the Intercom REST API. Redirect URI: Configured when the Intercom integration is set up in Alysio. The Intercom OAuth app must allow this redirect URI in the Intercom Developer Hub. Token handling
  • OAuth tokens for the connected Intercom account are stored securely and refreshed automatically.
  • Each user/tenant has their own credential; the MCP sends the appropriate credential ID with each request so calls are isolated per connection.
  • On disconnect, that credential is no longer used and Intercom tools will not be available for that user until they reconnect Intercom.
Scope justification
Scope / capabilityPurpose
ContactsList contacts, get contact by ID.
CompaniesList companies, get company by ID, list contacts attached to a company.
SegmentsList segments.
TeamsList teams.
EventsList events (per user/contact).
ConversationsList conversations, get conversation by ID, search conversations.
Connection required: Users must connect Intercom in Alysio before Intercom tools work. If the connection is missing or expired, they may need to re-authorize in Settings → Integrations.
IDs for events and attached contacts: For intercom_list_events, pass the contact’s external_id as user_id; get external_id from intercom_list_all_contacts. For intercom_list_attach_contacts_to_company, get company_id from intercom_list_companies.

MCP Tools

The Intercom MCP exposes the following tools. Users can invoke these capabilities through natural language in Alysio.
ToolDescriptionExample user prompts
intercom_list_all_contactsLists all contacts in the Intercom workspace with optional pagination (page, per_page).”List Intercom contacts”, “Show first 50 contacts.”
intercom_get_contact_by_idRetrieves detailed information for a specific contact by ID.”Get contact 123”, “Show contact details.”
intercom_list_companiesLists all companies with optional pagination and order (asc/desc).”List our Intercom companies”, “Companies descending.”
intercom_get_company_by_idRetrieves detailed information for a specific company by ID.”Get company 456”, “Company details.”
intercom_list_attach_contacts_to_companyLists all contacts attached to a company; pass company_id (use intercom_list_companies for IDs).”Contacts at this company”, “Who’s attached to company X?”
intercom_list_segmentsLists all segments with optional pagination and include_count for contact counts.”List segments”, “Segments with counts.”
intercom_list_all_teamsLists all teams in the Intercom workspace with optional pagination.”List Intercom teams”, “Show teams.”
intercom_list_eventsLists events for a user; pass contact’s external_id as user_id (get from intercom_list_all_contacts).”Events for this contact”, “List user events.”
intercom_list_conversationsLists conversations with optional pagination.”List recent conversations”, “Show conversations.”
intercom_get_conversation_by_idRetrieves detailed information for a conversation by ID; list returns up to 500 most recent.”Get conversation 789”, “Conversation details.”
intercom_search_conversationsSearches conversations with a query and optional pagination.”Search conversations about billing”, “Find conversations.”

App Behavior

  • API calls are made on-demand only when the user asks something that requires Intercom data (e.g. contacts, companies, segments, teams, events, conversations). There is no background sync; each request triggers the relevant Intercom API call using the user’s OAuth credential.
Example flow
  1. User asks: “List contacts at Acme Corp and show their recent events.”
  2. Alysio routes the request to the Intercom MCP.
  3. The MCP may call intercom_list_companies to find Acme Corp’s company ID, then intercom_list_attach_contacts_to_company with that company_id, then for each contact (or a subset) call intercom_list_events with the contact’s external_id as user_id.
  4. The request is sent to the Intercom API using the user’s stored OAuth credential.
  5. The MCP returns the contact and event data; Alysio presents the results in chat.

Troubleshooting

Common issues
  • Missing or expired connection — User sees errors or no Intercom data. Fix: Reconnect Intercom in Settings → Integrations (re-authorize via OAuth 2.0).
  • 401 Unauthorized — Token invalid or expired. Fix: Re-authorize the integration in Settings → Integrations.
  • 403 Forbidden — Insufficient OAuth scopes. Fix: Ensure the Intercom OAuth app has the required scopes for contacts, companies, segments, teams, events, and conversations (as used by the tools).
  • Events need user_id — intercom_list_events requires user_id (the contact’s external_id). Fix: Call intercom_list_all_contacts and use the contact’s external_id as user_id in list_events.
  • Company ID for attached contacts — intercom_list_attach_contacts_to_company requires company_id. Fix: Call intercom_list_companies to get company IDs, then pass the desired company_id.
  • Conversation list limit — get_conversation_by_id notes that the conversation list returns at most 500 most recent. Fix: Use intercom_search_conversations to find older conversations; use list_conversations with pagination for recent ones.
Support