Connect Your AI Agent with Intercom for Slack

Integrate Intercom MCP server into your Slack workspace for instant access to your AI agent.

Back to MCP Servers
Intercom
Intercom
Intercom is the only solution that combines an AI chatbot, help desk, and proactive support—so you can keep costs low, support teams happy, and customers satisfied.

Categories

Communication

Available Tools

Tools that your AI agent can use through this MCP server to interact with Intercom

Upsert Contact

Create a new contact, or update an existing one if a contact with the same Email already exists — Email is the match key for this upsert (any other props you set only apply to the created/updated record, they do not affect matching). Example: set Email to [email protected], Name to Jane Doe, and Custom Attributes to {"plan": "pro"} to create Jane's contact, or update her name/plan if a contact with that email already exists. Returns the full contact object, including its Intercom id. See the documentation.

Send Message To Contact

Sends an outbound message from an admin to a contact in Intercom (POST /messages). Set Message Type to in_app for an in-app message or email for an email — email messages require Subject and support Template (plain or personal). Use List Admin ID Options to find a valid From ID and Search Contacts to find a valid To ID. Example: set Message Type to email, Subject to Welcome!, Template to personal, From ID to 25, To Type to user, and To ID to 536e564f316c83104c000020 to send a personal welcome email to that contact. See the documentation.

Send Incoming Message

Creates a new inbound conversation in Intercom on behalf of a contact (POST /conversations). The action first fetches the contact's role via GET /contacts/{id} to set the correct message sender type — this counts as an additional API call. Use Search Contacts to find valid contact IDs before calling this action. Example: set User to 63a07ddf05a32042dffac965 and Body to Hi, I need help with my order to open a new conversation from that contact. Returns the new conversation object including id. See the documentation

Search Contacts

Search Intercom contacts by a query string (POST /contacts/search). Returns a bounded page of matching contacts, each including id, email, and external_id so you can copy the appropriate value into Reply To Conversation's Intercom User ID, Email, or User ID prop. If pages.next.starting_after is present in the response, call this action again with that cursor in Starting After to retrieve the next page. Pass Fields (e.g. ["id", "email", "external_id"]) to limit each returned contact to only those keys. Example: set Query to acme to find all contacts whose email contains acme. See the documentation.

Retrieve A Conversation

Fetches a single Intercom conversation by ID and returns the full conversation object, including id, title, state, created_at, conversation_parts (the message thread), and assignee information. Use this to inspect conversation history or verify state before calling Manage A Conversation or Reply To Conversation. Example: set Conversation ID to 123456789 to retrieve that conversation. Pass Fields (e.g. ["id", "state", "assignee", "created_at"]) to limit the returned object to only those keys. See the documentation.

Reply To Conversation

Reply to an existing Intercom conversation as an admin or on behalf of a contact (POST /conversations/{conversation_id}/reply). Use List Admin ID Options to find a valid Admin ID, and Search Contacts to find a contact's Intercom user ID, email, or external user ID. Example: set Conversation ID to 192783634529321, Reply Type to admin, Message Type to comment, Body to Thanks for reaching out!, and Admin ID to 25 to post that comment as an admin reply. See the documentation.

Manage A Conversation

Close, snooze, open, or assign a conversation by its ID. Which of the optional props apply depends on Message Type: close uses Body, snoozed uses Snoozed Until, assignment uses Type together with Assignee ID or Team Assignee ID, and open uses none of them. Example: set Conversation ID to 192783634529321, Message Type to close, and Body to Issue resolved to close that conversation with a closing comment. See the documentation.

List Assignee ID Options

Retrieves all teams in your Intercom workspace and returns their IDs and names. Call this action before Manage A Conversation to discover valid team IDs for conversation assignment. Example: returns [{ label: "Support", value: "334" }, ...]. Use 0 to represent Unassigned. See the documentation.

List Tag ID Options

Retrieves all tags in your Intercom workspace and returns their IDs and names. Call this action before Add Tag To Contact to discover valid tag IDs. Example: returns [{ label: "VIP", value: "7522907" }, ...]. See the documentation.

List Conversations

Lists conversations in your Intercom workspace, most recently updated first (GET /conversations). Use this to discover a conversation's ID before calling Reply To Conversation, Manage A Conversation, or Retrieve Conversation — there is no other way to look one up. Returns a bounded page of conversations, each including id, state, created_at, and the latest message part. If pages.next.starting_after is present in the response, call this action again with that cursor in Starting After to retrieve the next page. Pass Fields (e.g. ["id", "state", "created_at"]) to limit each returned conversation to only those keys. Example: leave all props empty to fetch the 20 most recently updated conversations. See the documentation.

List Admin ID Options

Retrieves all admins in your Intercom workspace and returns their IDs and names. Call this action before any action that requires an Admin ID — such as Manage A Conversation, Reply To Conversation, or Send Message To Contact — to discover valid values. Example: returns [{ label: "Jane Doe", value: "25" }, ...]. See the documentation.

Create Note

Creates a note on a contact's record in Intercom. The note is automatically attributed to the currently authenticated admin — no Admin ID prop is required. Use Search Contacts to find the contact's ID before calling this action. Example: set User to 63a07ddf05a32042dffac965 and Body to Followed up via email on 2024-01-15 to log a note on that contact. Returns the new note object including id, body, and author. See the documentation

Add Tag To Contact

Adds a specific tag to a contact in Intercom. Use Search Contacts to find the contact's ID and List Tag ID Options to find valid tag IDs before calling this action. Example: set Contact ID to 63a07ddf05a32042dffac965 and Tag ID to 7522907 to tag that contact. Returns the updated tag object on success. See the documentation.