Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the Customer.io in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Let your AI work with Customer.io: look up people, their attributes, segments, activity and messages, review automations, broadcasts and one-time sends with their metrics, and send transactional emails or trigger broadcasts after you confirm.
Try asking
Example prompts for Customer.io
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Customer.io, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Customer.io + ChatGPT
Let your AI work with Customer.io: look up people, their attributes, segments, activity and messages, review automations, broadcasts and one-time sends with their metrics, and send transactional emails or trigger broadcasts after you confirm.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
CUSTOMERIO_API_URL, CUSTOMERIO_APP_API_KEY
Step 1 — Get credentials
Setting up takes about 3 minutes. You need a Customer.io user who can create an App API key, and you need to know whether your account is hosted in the US or the EU.
- In Customer.io, open Settings → Account Settings → API Credentials → App API Keys (fly.customer.io/settings/api_credentials) and click Create App API Key. Pick the workspace and the access the key gets: full access, or read-only plus sending if the AI should only read and send.
- Copy the key right away: Customer.io shows it only once. Paste it into
CUSTOMERIO_APP_API_KEYas shown, without a Bearer prefix. It is an App API key, not a Track API key. - Set
CUSTOMERIO_API_URLto your account's data center:https://api.customer.iofor US accounts,https://api-eu.customer.iofor EU accounts, without/v1or any other path. The region is fixed when the account is created. - Install the connector and start with
customer_io_list_workspaces: it checks the key and shows the workspace with its people and message counts.
One key for the whole workspace: the App API key acts for its workspace, not for one person. Whoever uses this connector sees every person, segment and message the key can read, so share the MCP server only with people allowed to see that.
What it covers: people (find them by email, or search by segment membership and attribute values), their attributes, segments, activity of the last 30 days and the messages sent to them; segments with their conditions, live counts and members; automations, which the Customer.io API calls campaigns, with their message metrics; API-triggered broadcasts and one-time sends (newsletters in the API) with their metrics; deliveries and activity across the workspace; and the transactional message templates.
Sends wait for your yes: only two tools send, everything else reads.
customer_io_send_transactional_emailsends one real email (receipts, password resets, notifications) to up to 15 addresses in to, cc and bcc, from a transactional template or with your own subject and body. The AI shows you the recipient, the subject and the content first.customer_io_trigger_broadcastsends to many people at once. The AI first shows the broadcast, the size of the audience (customer_io_get_segment_customer_count) and the data, and triggers it only after an explicit "yes, send". It then follows progress withcustomer_io_get_broadcast_trigger.
Track API not included: identifying people, tracking events and deleting people go through Customer.io's Track API, which uses a different credential (Site ID and Track API key). This connector does not use it, so it cannot change profiles or delete anyone.
Limits: the App API allows about 10 requests a second. Transactional sends share a soft limit of 3,000 requests per 3 seconds, and a broadcast can be triggered at most once every 10 seconds. Long lists come in pages, and the AI keeps reading until the last one. Timestamps are Unix seconds.
Common errors: 401 means the App API key is wrong or was deleted, or the account lives in the other region; check CUSTOMERIO_API_URL. 403: the key's access does not include this action, for example a read-only key used to send. 404: the id does not exist in this workspace. 400 or 422: a parameter or the search filter is invalid; the error names it. 429: a rate limit is reached; wait and try again.
The connector does not use the Track API or the Pipelines API, run exports or imports, manage collections, snippets, reporting webhooks or ESP suppressions, or change the content of automations and broadcasts.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in ChatGPT
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
ChatGPT adds MCP servers as plugins on its Plugins page, on the web and on paid plans. Developer mode is no longer needed. In a Business workspace only admins and owners can add one; in Enterprise and Edu an admin can grant the Create plugins with MCPs permission.
- Go to chatgpt.com/plugins, click +, then Add custom MCP server.
- Enter a name, e.g. Name:
Customer.io. - Under Connection, enter the Server URL
https://cloud.anythingmcp.com/mcp/YOUR_SERVER_IDand keep Authentication on OAuth. - Select I understand and want to continue, then Create as a plugin. When ChatGPT asks, sign in to AnythingMCP and allow access.
- Install the new plugin from your personal plugins, then type @ in a chat and pick it.
Available tools
| Tool | What it does |
|---|---|
customer_io_list_workspaces | List the workspaces of the Customer.io account with their id, name and counts of people, objects and messages sent in the billing period… |
customer_io_find_customers_by_email | Find the people in the workspace with an email address: returns their id, email and cio_id |
customer_io_search_customers | Search people in the workspace with a filter on segment membership and attribute values, up to 1000 per page; returns their identifiers… |
customer_io_get_customer_attributes | Get a person's profile: all attributes (stored as strings), identifiers, subscription preferences, timestamps and devices |
customer_io_get_customer_segments | List the segments a person currently belongs to (id, name, description) |
customer_io_list_customer_activities | List what happened to a person in the last 30 days or more: events, attribute changes, messages attempted, sent, opened, clicked, bounced… |
customer_io_list_customer_messages | List the deliveries sent to a person (newest six months unless start_ts and end_ts are given): message id, automation, broadcast or… |
customer_io_list_campaigns | List the automations (campaigns) of the workspace: id, name, type of trigger, state, active flag, created and updated times, trigger and… |
customer_io_get_campaign | Get one automation (campaign) with its trigger, segments, state, tags and actions (messages, delays, branches) |
customer_io_get_campaign_metrics | Get an automation's message metrics over a window: series of attempted, sent, delivered, opened, clicked, converted, bounced, spammed… |
customer_io_list_broadcasts | List the API-triggered broadcasts of the workspace: id, name, active flag, created and updated times, tags and actions |
customer_io_get_broadcast | Get one API-triggered broadcast: name, state, active flag, created, updated and first started times, tags and actions |
customer_io_get_broadcast_metrics | Get a broadcast's message metrics per period: series of attempted, sent, delivered, opened, clicked, converted, bounced, unsubscribed… |
customer_io_get_broadcast_trigger | Get the status of one broadcast trigger (as returned by customer_io_trigger_broadcast): created, processed and cancelled times, schedule… |
customer_io_list_newsletters | List the one-time sends (newsletters) of the workspace: id, name, type, sent and created times, recipient segments, tags and variant… |
customer_io_get_newsletter_metrics | Get a one-time send's message metrics per period: series of attempted, sent, delivered, opened, clicked, converted, bounced, unsubscribed… |
customer_io_list_segments | List the segments of the workspace (not archived ones): id, name, description, type (data-driven or manual), state, progress and tags |
customer_io_get_segment | Get one segment with its conditions (for data-driven segments), type, state and tags |
customer_io_get_segment_customer_count | Count the people currently in a segment, for example to size a broadcast audience before sending |
customer_io_list_segment_members | List the people in a segment, page by page: their identifiers (id, email, cio_id) |
customer_io_list_messages | List deliveries across the workspace, newest first, filtered by message type, metric (sent, delivered, opened, clicked, bounced… |
customer_io_get_message | Get one delivery by id: recipient, parent automation, broadcast, one-time send or transactional message, subject, template, created, sent… |
customer_io_list_activities | List activities across the workspace, newest first: events, attribute changes and message activity, optionally for one person, one type or… |
customer_io_list_transactional_messages | List the transactional message templates of the workspace (id, name, description, link tracking, body retention) |
customer_io_send_transactional_email | Send one transactional email (receipts, password resets, notifications) to up to 15 addresses in to, cc and bcc, from a transactional… |
customer_io_trigger_broadcast | Trigger an API-triggered broadcast: send it to its default audience set in Customer.io, or to listed emails or ids, per-person data, or… |
Example prompts
- "Find [email protected] in Customer.io and show me her attributes, her segments and the last emails we sent her."
- "How did our Onboarding automation perform over the last 30 days: sent, delivered, opened, clicked and unsubscribed?"
- "How many people are in the Trial ending segment right now, and which of them are on the pro plan?"
- "Trigger the Product update broadcast, but show me who will receive it and how many people that is before you send."
FAQ
Does the free ChatGPT plan work with custom MCP servers? OpenAI documents custom MCP servers for paid plans only; the Free plan is not on its list.
Next steps
Was this guide helpful?