Customer.io MCP Tools for AI Agents
Let an agent find people, inspect profiles and message history, record events, trigger broadcasts, and send transactional email in Customer.io.
Available Tools
24 tools available in this integration
Customerio.AggregateCampaignMetrics Read a campaign's aggregate delivery metrics over a period.
Customerio.AggregateNewsletterMetrics Read a newsletter's aggregate delivery metrics over a period.
Customerio.CreatePersonEvent Record a named custom event on a person's timeline to drive lifecycle
Customerio.DeletePerson Delete a person record to honor a data-removal request.
Customerio.GetCampaignMetrics Read a campaign's aggregate delivery metrics over a period.
Customerio.GetNewsletterMetrics Read a newsletter's aggregate delivery metrics over a period.
Customerio.GetPerson Look up a person's profile by email or id.
Customerio.IdentifyPerson Create or update a person and their attributes.
Customerio.ListBroadcasts List the workspace's broadcasts to discover ids that can be triggered.
Customerio.ListCampaigns List the campaigns in the workspace.
Customerio.ListNewsletters List the newsletters in the workspace.
Customerio.ListPeople Find people by segment membership and/or an attribute, to build an
Customerio.ListPersonActivities List a person's recent activities, most recent first, resolved by email
Customerio.ListPersonMessages List a person's message and delivery history, most recent first,
Customerio.ListPersonSegments List the segments a person belongs to, resolved by email or id.
Customerio.ListSegmentMembers List the ids of the people in a segment and the segment's total size.
Customerio.ListSegments List the segments defined in the workspace.
Customerio.ListTransactionalMessages List the transactional message templates in the workspace.
Customerio.RecordEvent Record a named custom event on a person's timeline to drive lifecycle
Customerio.SavePerson Create or update a person and their attributes.
Customerio.SearchPeople Find people by segment membership and/or an attribute, to build an
Customerio.SendTransactionalEmail Send a transactional email to one recipient by its template id.
Customerio.StartBroadcast Trigger an API broadcast to a segment or an explicit recipient list.
Customerio.TriggerBroadcast Trigger an API broadcast to a segment or an explicit recipient list.
Working directly against the raw API? 139 more tools ship across 3 raw-API servers.
Why agent-optimized tools matter
Built for intent, not API schemas
Ask the agent to "find everyone in the trial segment who has not received a message this week and prepare the next action." Arcade picks the right Customer.io tools without guessing person IDs or segment IDs.
Up to 100x fewer tokens
Customer.io list and lookup reads return focused profiles, IDs, memberships, activities, and message history instead of loading an entire workspace, so the agent can investigate lifecycle state without filling its context window.
Complete the workflow end to end
Find the people, inspect their segments and activity, update their attributes, record the lifecycle event, and send or trigger the approved message through one toolkit designed around the complete Customer.io task.
Make actions predictable and controlled
Arcade tools return structured results and useful errors across users and runs. Teams can apply scope restrictions, redaction, and approval policies so agents follow the same controls every time.
Securing Customer.io
The more capabilities agents get, the more useful they are. However, more capabilities bring more risks of undesired effects such as data loss and exfiltration.
This is why Arcade provides you with contextual rules that dictate how and when a tool is allowed to run. Arcade’s contextual access lets you govern tool visibility and behavior at every stage of execution and control who can see a tool, what inputs are allowed, and what comes back.
Learn about Contextual Access PoliciesFor Customer.io, you can implement some of these policies:
- Hide Customerio.DeletePerson from agents unless the roles your IDP marks as privacy administrators are active, so an agent cannot erase a customer record without the right authority.
- Restrict Customerio.SendTransactionalEmail to agents operating under your support or communications role, so unapproved workflows cannot send messages to individual customers.
- Deny Customerio.TriggerBroadcast to agents outside the roles your IDP marks as lifecycle owners, so an agent cannot send a broadcast to a segment or recipient list without campaign authority.
- Hide Customerio.CreatePersonEvent from agents without your lifecycle-automation role, so unreviewed workflows cannot add activity records that change a customer's journey.
- Restrict Customerio.SavePerson to agents operating under your customer-data administration role, so ordinary support workflows cannot alter customer attributes or consent-related fields.
- Keep Customerio.StartBroadcast off the tool list for agents unless the roles your IDP marks as campaign owners are active, so an agent cannot initiate a customer broadcast without campaign authority.
- Require human approval before Customerio.IdentifyPerson runs when it changes a person's email, consent status, or other contact attribute, so an agent cannot overwrite customer identity or preferences without review.
- Block Customerio.RecordEvent when the event name or attributes contain credentials, payment details, or message content, so an agent cannot place sensitive data on a customer's activity timeline.
- Require human approval before Customerio.DeletePerson runs, so a mistaken match or automated data-removal request cannot permanently erase the wrong customer record.
- Require human approval before Customerio.CreatePersonEvent records an event for a customer in a regulated or high-value segment, so an automated workflow cannot trigger consequential lifecycle changes without review.
- Block Customerio.SavePerson when the requested update changes a customer's consent, subscription, or lifecycle status, so an agent cannot silently alter messaging eligibility.
- Require human approval before Customerio.StartBroadcast runs, so a mistaken segment or recipient selection cannot send a campaign to customers without a final check.
- Redact Customerio.GetPerson results before they reach the model, stripping phone numbers, postal addresses, and consent metadata unless the agent is handling an approved customer-data request.
- Strip message bodies, unsubscribe links, and recipient addresses from Customerio.ListPersonMessages results, so the model sees delivery history without exposing private customer communications.
- Redact email addresses, phone numbers, and postal addresses from Customerio.SearchPeople results, so a segment lookup returns matching records without revealing direct contact details.
- Deny Customerio.AggregateCampaignMetrics results for campaigns in your unreleased reporting set, so internal delivery and conversion figures do not reach agents handling unrelated work.
- Redact recipient counts, delivery rates, and conversion figures from Customerio.AggregateNewsletterMetrics results unless the agent has an approved reporting role, so newsletter performance remains restricted business data.
- Strip email addresses, phone numbers, postal addresses, and other direct identifiers from Customerio.ListPeople results, so an audience lookup gives the model segment membership without exposing customer contact data.
How to use Customer.io with your agent
Add your Customer.io API key once, then connect an MCP client to let an agent work with your workspace. Pick your client below and follow the setup from start to finish.
Your questions, answered
A Customer.io MCP server exposes Customer.io capabilities as structured tools that an AI agent can call through the Model Context Protocol. With the configured API credential, an agent can look up people, inspect segments and message history, record events, update profiles, and send or trigger messages where permitted.
Customer.io provides an API that Arcade connects to rather than a first-party MCP server. Arcade adds the MCP gateway, credential brokering, approval workflows, redaction, and access controls around Customer.io actions, with agent-oriented tools built by Arcade.
Arcade agents can find people by email, ID, segment, or attributes; inspect profiles, segments, activities, and message history; list campaigns, broadcasts, newsletters, and templates; update people; record lifecycle events; delete people; send transactional email; and trigger broadcasts.
Customer.io uses the shared API key or secret configured for the connection. That credential determines which Customer.io workspaces and API actions are available; Arcade does not add separate per-user Customer.io OAuth scopes for this integration.
No. Customer.io uses one shared API key or secret configured once for the connection, rather than having each user authorize an individual account. Arcade brokers that credential, and the model never receives it.
Yes. Contextual Access policies can require human approval before consequential Customer.io actions such as deleting a person, changing a profile, sending transactional email, triggering a broadcast, or recording an event. The call proceeds only after the policy's conditions are satisfied.
Arcade proxies Customer.io API calls and does not persist your Customer.io content as part of normal tool execution. The shared credential is brokered and stored encrypted at rest, and the model never receives it.
Any framework or client that can connect to Arcade's MCP gateway or tool APIs works, including LangChain, OpenAI Agents, CrewAI, Claude Desktop, Claude Code, Cursor, Visual Studio Code, Microsoft Copilot Studio, and GitHub Copilot.
Arcade refreshes access while the configured Customer.io credential remains valid. If the key or secret is revoked, rotated, or can no longer be used, Customer.io calls stop until the credential is reconnected or updated.
Customer.io's API rate limits, workspace limits, and messaging limits still apply to calls made through Arcade. The applicable quotas depend on the Customer.io account and endpoint, so the integration does not provide a separate quota that replaces Customer.io's limits.