MCP Actions
When a routing rule has action_type: "mcp_action", Supp executes a real action on the connected integration. Here's what each provider does:
OAuth auto-populate: When a provider is connected via OAuth (GitHub, Slack, Linear, Jira, Notion), the routing page automatically shows searchable dropdowns for fields like repository, channel, team, and project — no manual ID copying needed.
linearCreates an issue on the specified team with intent, message, and conversation context.
action_config fields: team_id, priority (1-4, opt), auto_priority (yes/no), label_ids (opt), assignee_id (opt), project_id (opt), cycle_id (opt), state_id (opt)
githubCreates an issue in the specified repo with intent and message body.
action_config fields: repo (owner/repo), labels (opt, comma-separated), assignees (opt, comma-separated), auto_priority_label (yes/no)
jiraCreates a Jira issue in the specified project.
action_config fields: project_key, issue_type (Task/Bug/Story/Epic), auto_priority (yes/no), labels (opt), components (opt), assignee_account_id (opt)
notionCreates a page in the specified Notion database.
action_config fields: database_id
slackPosts a formatted message to the configured Slack channel via bot token or webhook.
action_config fields: channel (e.g. #support-alerts), message_format (rich/plain), mention_group (opt, usergroup ID)
discordSends a rich embed to the Discord webhook with intent, confidence, and message.
action_config fields: channel_name (for reference), mention_role_id (opt)
teamsSends an Adaptive Card to the incoming Teams webhook.
action_config fields: channel_name (for reference), card_style (rich/simple)
zendeskCreates a ticket in Zendesk with the conversation context.
action_config fields: priority (auto/urgent/high/normal/low), type (incident/problem/question/task), tags (opt), group_id (opt), assignee_id (opt), internal_note (yes/no)
intercomTag conversations, assign to teams, add notes, reply, or create tickets.
action_config fields: admin_id, action_type (note/tag/assign/reply/create_ticket), tag_name (opt), assign_to (opt), contact_email (opt)
hubspotCreates a CRM ticket in HubSpot with pipeline and owner.
action_config fields: priority (auto/HIGH/MEDIUM/LOW), pipeline_id (opt), pipeline_stage (opt), owner_id (opt), auto_associate_contact (yes/no), contact_email (opt)
shopifyLook up orders, check fulfillment, add notes/tags, or search customers.
action_config fields: customer_email, action_type (lookup_orders/fulfillment_status/tag_customer/note_order), customer_tags (opt), order_note (opt)
emailSends a formatted support email via Resend.
action_config fields: to, include_priority (yes/no)
zapier / customPOSTs a JSON payload to the webhook URL with event data.
action_config fields: webhook_url (opt override)
Example: Bug report → Linear + Slack
You can chain actions by creating multiple routing rules for the same intent:
# Rule 1: Create a Linear issue
curl -X POST https://api.supp.support/api/routing \
-H "Content-Type: application/json" \
-H "Cookie: <session-cookie>" \
-d '{
"intent": "bug_report",
"action_type": "mcp_action",
"action_config": { "provider": "linear", "category": "technical" },
"confidence_threshold": 0.85
}'
# Rule 2: Also notify Slack
curl -X POST https://api.supp.support/api/routing \
-H "Content-Type: application/json" \
-H "Cookie: <session-cookie>" \
-d '{
"intent": "bug_report",
"action_type": "mcp_action",
"action_config": { "provider": "slack", "channel": "#bugs" },
"confidence_threshold": 0.85
}'