Customer.io
Look up Customer.io people, segments, campaigns, and broadcasts, and send transactional email or trigger API broadcasts via MCP.
Overview
Connect Customer.io so AI clients can look up people, inspect segments, campaigns, and broadcasts, and send transactional email or trigger API broadcasts.
This integration uses the Customer.io App API. Identifying new people or tracking events (Track API) is not included yet.
Prerequisites
- A Customer.io workspace with App API access
- Permission to create API credentials (Account Admin or Member with Manage API Credentials)
- A stackgate.ai account
Getting credentials
- Sign in to Customer.io for the workspace you want to connect.
- Open Account Settings → API Credentials.
- Create an App API Key, give it a clear name, and copy it immediately (it is shown only once).
- Note whether your workspace is hosted in the US or EU data center.
- In stackgate.ai, open My Integrations → Customer.io.
- Paste the App API Key, choose US or EU, and save.
- Optionally use Edit tool access to limit the connection to Read tools only.
See the Customer.io credentials docs and App API reference.
Using with AI clients
- Dedicated endpoint:
POST /mcp/customer-iowith a Sanctum bearer token - Private gateway: one config for all integrations — use
customer-io__*namespaced tools
See Documentation for HTTP authentication and private gateway setup.
Troubleshooting
- 422 integration not configured — complete the credential form in My Integrations with your App API key and region.
- 401 Unauthorized — regenerate the App API Key in Customer.io and update My Integrations. Keys are shown only once when created.
- Wrong region / unexpected redirects — EU workspaces should use the EU region (
api-eu.customer.io). Using the US host for an EU workspace can send traffic through US infrastructure. - 429 Too many requests — most App API endpoints allow about 10 requests per second. API-triggered broadcasts allow one trigger every 10 seconds.
- Broadcast failed for missing people — broadcasts only send to people who already exist in the workspace. Add profiles in Customer.io (or use Track API identify outside this integration) before triggering.
- Transactional send rejected — confirm the
transactional_message_id(or trigger name) exists and the recipient identifiers match a person or includeto.
Available tools
-
get_customers_by_email
Find Customer.io people matching an email address.
-
search_customers
Search Customer.io people with a filter (segment membership and/or attribute conditions).
-
get_customer_attributes
Get attributes for a Customer.io person by customer_id (cio_id or id).
-
get_customer_segments
List segments a Customer.io person belongs to.
-
get_customer_activities
List recent activities for a Customer.io person.
-
get_customer_messages
List messages sent to a Customer.io person.
-
list_segments
List segments in the Customer.io workspace.
-
get_segment
Get details for a Customer.io segment.
-
list_campaigns
List campaigns in the Customer.io workspace.
-
get_campaign
Get details for a Customer.io campaign.
-
list_broadcasts
List API-triggered broadcasts in the Customer.io workspace.
-
get_broadcast
Get details for a Customer.io API-triggered broadcast.
-
list_transactional_messages
List transactional message templates in the Customer.io workspace.
-
get_transactional_message
Get details for a Customer.io transactional message template.
-
send_transactional_email
Send a Customer.io transactional email. Provide transactional_message_id plus to and/or identifiers.
-
trigger_broadcast
Trigger a Customer.io API broadcast. Rate-limited to 1 request every 10 seconds. People must already exist in the workspace.
MCP endpoint:
https://stackgate.ai/mcp/customer-io
(HTTP) or via the
private gateway.