# Customer.io — how to use (mcp.ai)

Connect your Customer.io account and use 24 tools for marketing automation straight from your AI agent. Connect with your own API key. Customer.io is a customer engagement platform that enables businesses to send targeted messages to their customers through various channels, including email, SMS, and push notifications.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_customerio?ms=1787295900000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `customerio_add_person_to_group`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/customerio`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/customerio/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/customerio/add/person/to/group` — Tool to add people to a group in Customer.io. Groups represent objects like companies, accounts, or projects that people belong to. Use when you need to establish relationships between people and orga
  - body: { traits?: object, user_id: string, group_id: string }
- `POST https://api.mcp.ai/api/customerio/create/alias` — Tool to create an alias to merge multiple profiles in Customer.io. Use when you need to support multiple identifiers for a single person. The alias operation moves all data from the previous_id profil
  - body: { userId: string, previousId: string }
- `POST https://api.mcp.ai/api/customerio/customer/io/suppress/person` — Suppress a customer profile to permanently delete it and prevent re-adding with the same identifier. IMPORTANT: This action requires Track API credentials (Basic Auth with siteId:apiKey), not App API 
  - body: { identifier: string }
- `POST https://api.mcp.ai/api/customerio/get/integrations` — Tool to retrieve a list of integrations in your workspace. Use when you need to discover configured integrations.
- `POST https://api.mcp.ai/api/customerio/get/messages` — Tool to retrieve a list of messages sent from your workspace. Use when you need paginated delivery metrics for messages, e.g., list email messages delivered between two timestamps.
  - body: { type?: string, limit?: integer, start?: string, drafts?: boolean, end_ts?: integer, metric?: string, start_ts?: integer, action_id?: integer, campaign_id?: integer, newsletter_id?: integer }
- `POST https://api.mcp.ai/api/customerio/get/segment/details` — Tool to retrieve details of a specific segment. Use after identifying the segment ID from list segments.
  - body: { segment_id: integer }
- `POST https://api.mcp.ai/api/customerio/get/segment/membership` — Tool to retrieve people in a specific segment. Use when you need to page through segment membership after identifying segment ID.
  - body: { sort?: string, limit?: integer, start?: string, segment_id: integer }
- `POST https://api.mcp.ai/api/customerio/get/segments` — Tool to retrieve a list of segments in your workspace. Use when you need to fetch all segments after configuring segment rules.
- `POST https://api.mcp.ai/api/customerio/get/trigger` — Retrieves details about a specific API-triggered broadcast, including trigger ID, campaign ID, creation timestamp, recipient filter criteria, and personalization data. Use this after triggering a broa
  - body: { trigger_id: string, broadcast_id: integer }
- `POST https://api.mcp.ai/api/customerio/get/triggers` — Retrieve all API trigger instances for a specific broadcast/campaign. Returns trigger metadata including IDs, creation timestamps, and processing status. Use after triggering a broadcast to list all i
  - body: { broadcast_id: integer }
- `POST https://api.mcp.ai/api/customerio/get/webhooks` — Retrieves all reporting webhook configurations from the Customer.io workspace. Reporting webhooks send event notifications (message sent, opened, clicked, etc.) to your specified endpoints. Use this t
- `POST https://api.mcp.ai/api/customerio/identify/person` — Tool to identify a person and assign traits to them in Customer.io. Creates a new person profile if it doesn't exist, or updates an existing one. Use when adding new users, updating user profiles, or 
  - body: { traits?: object, userId?: string, timestamp?: string, anonymousId?: string }
- `POST https://api.mcp.ai/api/customerio/list/collections` — Tool to list all Collections metadata. Use when you need to retrieve current details of each Collection in your workspace.
- `POST https://api.mcp.ai/api/customerio/list/ip/addresses` — Tool to retrieve the list of IP addresses used by Customer.io for sending messages. Use when you need to allowlist or configure firewall rules for Customer.io's sending infrastructure.
- `POST https://api.mcp.ai/api/customerio/list/newsletters` — Tool to list all newsletters. Use when paginating through newsletter metadata.
  - body: { sort?: string, limit?: integer, start?: string }
- `POST https://api.mcp.ai/api/customerio/list/snippets` — Tool to list all snippets in your workspace. Use when you need to retrieve all reusable content snippets for templating or dynamic content insertion.
- `POST https://api.mcp.ai/api/customerio/list/transactional/messages` — Lists all transactional message templates in your Customer.io workspace. Returns the ID and name (trigger name) for each template. Use this when you need to discover available transactional message te
- `POST https://api.mcp.ai/api/customerio/report/push/events` — Tool to report push notification events to Customer.io. Use when you need to track device-side push events (opened, converted, delivered). IMPORTANT: This endpoint is deprecated. Use the metrics endpo
  - body: { event: string, device_id: string, timestamp: integer, delivery_id: string }
- `POST https://api.mcp.ai/api/customerio/send/batch` — Send multiple CDP calls (identify, track, page, screen, group, alias) in a single batch request. Use this to efficiently send multiple events or profile updates in one API call. The batch endpoint sup
  - body: { batch: object[] }
- `POST https://api.mcp.ai/api/customerio/track/event` — Tool to send an event associated with a person in Customer.io. Records actions users take, along with properties that describe the action. Use when you need to track user behavior, conversions, or cus
  - body: { event: string, userId?: string, timestamp?: string, properties?: object, anonymousId?: string }
- `POST https://api.mcp.ai/api/customerio/track/page` — Tool to track page view events for website visitors in Customer.io. Use when recording user navigation or page impressions on your website. IMPORTANT: This action requires CDP API credentials (Bearer 
  - body: { name?: string, userId?: string, properties?: object, anonymousId?: string }
- `POST https://api.mcp.ai/api/customerio/track/screen` — Track mobile screen views in Customer.io for analytics and user journey tracking. Records when a user views a screen in your mobile app. Use this when you need to: - Track user navigation patterns in 
  - body: { name: string, type?: string, sentAt?: string, userId?: string, context?: object, version?: number, messageId?: string, timestamp?: string, properties?: object, receivedAt?: string, anonymousId?: string, strict_mode?: boolean, integrations?: object }
- `POST https://api.mcp.ai/api/customerio/trigger/broadcast` — Manually trigger a Customer.io broadcast/campaign to send messages to a defined audience. Use this when you need to: - Send a pre-configured broadcast to specific recipients (by ID or email) - Overrid
  - body: { ids?: string[], data?: object, emails?: string[], recipients?: object, broadcast_id: integer, data_file_url?: string, per_user_data?: object[], id_ignore_missing?: boolean, email_add_duplicates?: boolean, email_ignore_missing?: boolean }
- `POST https://api.mcp.ai/api/customerio/unsubscribe/delivery` — Tool to handle custom unsubscribe requests for email deliveries in Customer.io. Use when you need to unsubscribe a person from emails and attribute the action to a specific delivery. IMPORTANT: This a
  - body: { delivery_id: string, unsubscribe?: boolean }

## Example prompts
- "What can I do in Customer.io?"
- "Show me a summary of my Customer.io account"

## More
- Page: https://mcp.ai/customerio
- Agent spec (llms.txt): https://mcp.ai/customerio/llms.txt
- Postman collection: https://mcp.ai/customerio/postman.json
