Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate Intercom tasks via Rube MCP (Composio): conversations, contacts, companies, segments, admins. Always search tools first for current schemas.
.claude/skills/intercom-automation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | — | — |
| case-04 | ✗→✓ | ▲ Improved | — | — |
| case-15 | ✓→✓ | = Same ✓ | — | — |
| case-05 | ✗→✗ | = Same ✗ | — | — |
| case-01 | ✗→✗ | = Same ✗ | — | — |
Automate Intercom operations through Composio's Intercom toolkit via Rube MCP.
RUBE_MANAGE_CONNECTIONS with toolkit intercomRUBE_SEARCH_TOOLS first to get current tool schemasGet Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit intercomWhen to use: User wants to create, list, search, or manage support conversations
Tool sequence:
INTERCOM_LIST_ALL_ADMINS - Get admin IDs for assignment Prerequisite]INTERCOM_LIST_CONVERSATIONS - List all conversations Optional]INTERCOM_SEARCH_CONVERSATIONS - Search with filters Optional]INTERCOM_GET_CONVERSATION - Get conversation details Optional]INTERCOM_CREATE_CONVERSATION - Create a new conversation Optional]Key parameters:
from: Object with type ('user'/'lead') and id for conversation creatorbody: Message body (HTML supported)id: Conversation ID for retrievalquery: Search query object with field, operator, valuePitfalls:
from field, not an admin<p> tagsWhen to use: User wants to reply to, close, reopen, or assign conversations
Tool sequence:
INTERCOM_GET_CONVERSATION - Get current state Prerequisite]INTERCOM_REPLY_TO_CONVERSATION - Add a reply Optional]INTERCOM_ASSIGN_CONVERSATION - Assign to admin/team Optional]INTERCOM_CLOSE_CONVERSATION - Close conversation Optional]INTERCOM_REOPEN_CONVERSATION - Reopen closed conversation Optional]Key parameters:
conversation_id / id: Conversation IDbody: Reply message body (HTML supported)type: Reply type ('admin' or 'user')admin_id: Admin ID for replies from admin, assignment, and close/reopenassignee_id: Admin or team ID for assignmentmessage_type: 'comment' (default) or 'note' (internal)Pitfalls:
admin_id is REQUIRED for admin replies, close, reopen, and assignment operationsmessage_type: 'note'; visible only to workspace membersWhen to use: User wants to search, view, or manage contacts (users and leads)
Tool sequence:
INTERCOM_SEARCH_CONTACTS - Search contacts with filters Required]INTERCOM_GET_A_CONTACT - Get specific contact Optional]INTERCOM_SHOW_CONTACT_BY_EXTERNAL_ID - Look up by external ID Optional]INTERCOM_LIST_CONTACTS - List all contacts Optional]INTERCOM_LIST_TAGS_ATTACHED_TO_A_CONTACT - Get contact tags Optional]INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_CONTACT - Get contact segments Optional]INTERCOM_DETACH_A_CONTACT - Remove contact from company Optional]Key parameters:
contact_id: Contact ID for retrievalexternal_id: External system ID for lookupquery: Search filter object with field, operator, valuepagination: Object with per_page and starting_after cursorPitfalls:
{field, operator, value}=, !=, >, <, ~ (contains), !~ (not contains), IN, NINstarting_after cursor for paginationWhen to use: User wants to list workspace admins or identify specific admins
Tool sequence:
INTERCOM_LIST_ALL_ADMINS - List all admins and teams Required]INTERCOM_IDENTIFY_AN_ADMIN - Get specific admin details Optional]Key parameters:
admin_id: Admin ID for identificationPitfalls:
type: 'team'When to use: User wants to view segments or get aggregate counts
Tool sequence:
INTERCOM_LIST_SEGMENTS - List all segments Optional]INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_CONTACT - Segments for a contact Optional]INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_COMPANIES - Segments for a company Optional]INTERCOM_GET_COUNTS - Get aggregate counts Optional]Key parameters:
contact_id: Contact ID for segment lookupcompany_id: Company ID for segment lookuptype: Count type ('conversation', 'company', 'user', 'tag', 'segment')count: Sub-count typePitfalls:
When to use: User wants to list companies or manage company-contact relationships
Tool sequence:
INTERCOM_LIST_ALL_COMPANIES - List all companies Required]INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_COMPANIES - Get company segments Optional]INTERCOM_DETACH_A_CONTACT - Remove contact from company Optional]Key parameters:
company_id: Company IDcontact_id: Contact ID for detachmentpage: Page number for paginationper_page: Results per pagePitfalls:
Single filter:
json{ "field": "email", "operator": "=", "value": "user@example.com" }
Multiple filters (AND):
json{ "operator": "AND", "value": [ {"field": "role", "operator": "=", "value": "user"}, {"field": "created_at", "operator": ">", "value": 1672531200} ] }
Supported fields for contacts: email, name, role, created_at, updated_at, signed_up_at, last_seen_at, external_id
Supported fields for conversations: created_at, updated_at, source.type, state, open, read
pages.next with starting_after cursorpagination.starting_after for next pagepages.next is null1. Call INTERCOM_LIST_ALL_ADMINS to get all admins
2. Find the desired admin by name or email
3. Use admin.id for replies, assignments, and state changesAdmin ID Requirement:
HTML Content:
Idempotency:
Rate Limits:
| Task | Tool Slug | Key Params | |------|-----------|------------| | List conversations | INTERCOM_LIST_CONVERSATIONS | (pagination) | | Search conversations | INTERCOM_SEARCH_CONVERSATIONS | query | | Get conversation | INTERCOM_GET_CONVERSATION | id | | Create conversation | INTERCOM_CREATE_CONVERSATION | from, body | | Reply to conversation | INTERCOM_REPLY_TO_CONVERSATION | conversation_id, body, admin_id | | Assign conversation | INTERCOM_ASSIGN_CONVERSATION | conversation_id, admin_id, assignee_id | | Close conversation | INTERCOM_CLOSE_CONVERSATION | id, admin_id | | Reopen conversation | INTERCOM_REOPEN_CONVERSATION | id, admin_id | | Search contacts | INTERCOM_SEARCH_CONTACTS | query | | Get contact | INTERCOM_GET_A_CONTACT | contact_id | | Contact by external ID | INTERCOM_SHOW_CONTACT_BY_EXTERNAL_ID | external_id | | List contacts | INTERCOM_LIST_CONTACTS | (pagination) | | Contact tags | INTERCOM_LIST_TAGS_ATTACHED_TO_A_CONTACT | contact_id | | Contact segments | INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_CONTACT | contact_id | | Detach contact | INTERCOM_DETACH_A_CONTACT | contact_id, company_id | | List admins | INTERCOM_LIST_ALL_ADMINS | (none) | | Identify admin | INTERCOM_IDENTIFY_AN_ADMIN | admin_id | | List segments | INTERCOM_LIST_SEGMENTS | (none) | | Company segments | INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_COMPANIES | company_id | | Get counts | INTERCOM_GET_COUNTS | type, count | | List companies | INTERCOM_LIST_ALL_COMPANIES | page, per_page |
This skill is applicable to execute the workflow or actions described in the overview.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +9 percentage points is the difference between those two pass rates over the 18 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.