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.
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. On Nagent, Customer.io is exposed as a fully-configurable marketing automation integration that any agent can call — 24 actions, and API key authentication. No code is required to wire Customer.io into your workflow — connect it once via the External Integrations panel and reuse it across every agent you build.
Agent builders use Customer.io to automate the kinds of tasks marketing automation teams previously handled manually. Concrete examples — each one is a single agent step in Nagent — include:
Every action and trigger is paired with a structured input/output schema (visible in the sections below), so when you wire Customer.io into Helix — our agentic agent builder — the editor knows exactly what each step expects and produces. Configure once, deploy anywhere across your Nagent agents.
Every operation an agent can call against Customer.io, with input parameters and output schema. Drop these into any step of an agent built in Helix.
CUSTOMERIO_ADD_PERSON_TO_GROUPTool 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 organizational entities.
Input parameters
Key-value pairs representing attributes of the group. Examples: name, type, created_at, industry, etc.
A unique identifier for the person to add to the group. This is the person's ID in your system.
A unique identifier for the group (object). This could represent a company, account, project, or any organizational entity.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_CREATE_ALIASTool 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 profile to the user_id profile, consolidating them into a single canonical profile.
Input parameters
The profile to merge into (destination). This is the canonical user identifier that will retain all data.
The profile to merge from (source). All data from this profile will be moved to the user_id profile.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_CUSTOMER_IO_SUPPRESS_PERSONSuppress 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 credentials. Suppression also deletes the customer profile - you don't need to call a separate delete endpoint. Use this for GDPR/CCPA compliance requests. The operation is irreversible and prevents any future attempts to re-add a person with the same identifier (email or ID).
Input parameters
The unique identifier for the person to suppress. Can be a customer ID (numeric), email address, or Customer.io ID (prefixed with 'cio_'). The person will be permanently deleted and cannot be re-added with this identifier.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_GET_INTEGRATIONSTool to retrieve a list of integrations in your workspace. Use when you need to discover configured integrations.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_GET_MESSAGESTool 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.
Input parameters
Type of message to return metrics for. If omitted, returns all types.
Maximum number of results per page (1–1000). Default is 50.
Pagination token for the page of results to return. Use the 'next' value from a previous response as this parameter.
If true, returns draft messages instead of active/sent ones.
End of time window (Unix timestamp).
Metric to include in response, e.g., 'attempted', 'sent', 'delivered', 'opened', 'clicked', 'converted'.
Start of time window (Unix timestamp).
Filter results by a specific action ID.
Filter results by a specific campaign ID.
Filter results by a specific newsletter ID.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_GET_SEGMENT_DETAILSTool to retrieve details of a specific segment. Use after identifying the segment ID from list segments.
Input parameters
The unique identifier of the segment to retrieve.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_GET_SEGMENT_MEMBERSHIPTool to retrieve people in a specific segment. Use when you need to page through segment membership after identifying segment ID.
Input parameters
Order of results: 'asc' for oldest first, 'desc' for newest first.
Maximum number of results per page (1 ≤ limit ≤ 30000). Default is 1000.
Pagination token for the page of results to return.
The segment's unique identifier.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_GET_SEGMENTSTool to retrieve a list of segments in your workspace. Use when you need to fetch all segments after configuring segment rules.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_GET_TRIGGERRetrieves 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 broadcast to verify its configuration and check the data used for message personalization.
Input parameters
The unique identifier of the trigger to retrieve (e.g., '5-37' or just '456').
The unique identifier of the campaign/broadcast (campaign_id).
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_GET_TRIGGERSRetrieve 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 its trigger executions.
Input parameters
The broadcast/campaign unique identifier.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_GET_WEBHOOKSRetrieves 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 to list all configured webhooks and their settings including subscribed events, endpoints, and status. Returns an empty list if no webhooks are configured.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_IDENTIFY_PERSONTool 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 tracking anonymous visitors. Either user_id or anonymous_id must be provided.
Input parameters
Key-value pairs representing attributes to assign to the person. Common traits include email, name, firstName, lastName, phone, company, etc.
A unique identifier for the person. Either user_id or anonymous_id must be provided. Use this for identified users.
ISO 8601 timestamp indicating when the identification occurred. If omitted, Customer.io uses the current time.
An anonymous identifier for the person if user_id is not available. Either user_id or anonymous_id must be provided.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_LIST_COLLECTIONSTool to list all Collections metadata. Use when you need to retrieve current details of each Collection in your workspace.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_LIST_IP_ADDRESSESTool 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.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_LIST_NEWSLETTERSTool to list all newsletters. Use when paginating through newsletter metadata.
Input parameters
Sort order: 'asc' for chronological, 'desc' for reverse chronological
Maximum number of newsletters to retrieve per page
Pagination cursor. Use 'next' value from previous response to get next page
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_LIST_SNIPPETSTool to list all snippets in your workspace. Use when you need to retrieve all reusable content snippets for templating or dynamic content insertion.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_LIST_TRANSACTIONAL_MESSAGESLists 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 templates or retrieve their IDs for sending messages via the API.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_REPORT_PUSH_EVENTSTool 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 endpoint instead for reporting push events. This action requires Track API credentials (Basic Auth with siteId:apiKey), not App API credentials.
Input parameters
The type of device-side event you want to report back to Customer.io.
The CIO-Delivery-Token representing the device that received the original notification.
The unix timestamp when the event occurred.
The CIO-Delivery-ID from the notification that you want to associate the event with.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_SEND_BATCHSend 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 supports up to 500KB total with 32KB per individual call. Each call in the batch can be a different type (identify, track, page, screen, group, or alias). Requirements by call type: - identify/track/page/screen: Require userId or anonymousId - group: Requires groupId (and userId or anonymousId) - track: Requires event name - alias: Requires userId and previousId Note: This action uses the CDP API base URL (https://cdp.customer.io/v1) which differs from the Track API base URL used by some other Customer.io actions.
Input parameters
Array of CDP calls to process. Can include identify, track, page, screen, group, or alias calls. Maximum 500KB total size, 32KB per call.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_TRACK_EVENTTool 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 custom events for segmentation and campaigns.
Input parameters
The name of the event to track. This is required and describes the action that occurred.
A unique identifier for a person. At least one of userId or anonymousId must be provided.
ISO 8601 timestamp for when the event occurred. If not provided, Customer.io will use the current time.
Key-value pairs representing event data and metadata. Use this to add custom attributes to the event.
An anonymous ID for the person. At least one of userId or anonymousId must be provided.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_TRACK_PAGETool 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 token), not Track API or App API credentials. Either user_id or anonymous_id must be provided to identify the viewer. Include properties like url, title, and path to enrich analytics and segmentation capabilities.
Input parameters
The name of the page being viewed. Helps categorize and filter page views.
A unique identifier for the person viewing the page. Either user_id or anonymous_id must be provided.
Additional properties about the page view such as url, title, path, referrer, or custom metadata.
An anonymous identifier for the person if user_id is not available. Either user_id or anonymous_id must be provided.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_TRACK_SCREENTrack 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 mobile apps - Record screen views for engagement analytics - Trigger workflows based on specific screen visits - Build user journey maps based on screen flow Requirements: - Provide either userId (for known users) or anonymousId (for anonymous users) - Screen name is required to identify which screen was viewed - Optionally include properties for additional context (platform, category, etc.) Note: This endpoint uses the CDP API (cdp.customer.io), not the standard App API.
Input parameters
Name of the screen that was viewed (e.g., 'home_screen', 'feed', 'settings').
Event type identifier. Should always be 'screen' for screen view events.
ISO 8601 timestamp of when the event was sent from the client. Used for clock skew correction.
Unique identifier for a known user. Use this to track screen views for identified users. Mutually exclusive with anonymousId - provide one or the other.
Optional contextual information about the event (e.g., device info, IP address, app version).
Version number of the tracking spec being used.
Unique identifier for this message/event. If not provided, one will be generated automatically.
ISO 8601 timestamp of when the screen view occurred. If not provided, the current time will be used. Format: YYYY-MM-DDTHH:mm:ss.sssZ
Optional key-value pairs containing additional context about the screen view (e.g., screen_category, platform, referrer).
ISO 8601 timestamp of when the event was received by the server. Typically set automatically.
Unique identifier for an anonymous user who hasn't been identified yet. Mutually exclusive with userId - provide one or the other.
When True, enables strict validation that returns proper HTTP error codes (400/401) for validation failures. When False (default), the API operates in permissive mode, logging errors but returning HTTP 200.
Control which downstream integrations receive this event. Use {'All': true} to send to all integrations, or specify individual integrations like {'Salesforce': false}.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_TRIGGER_BROADCASTManually 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) - Override the broadcast's default UI-defined audience with custom filtering - Provide personalization data for Liquid template variables - Send individualized content using per_user_data Requirements: - broadcast_id: Must be a valid broadcast ID from Customer.io (find in broadcast's Triggering Details) - Audience: Provide exactly ONE of: recipients, ids, emails, per_user_data, or data_file_url Rate Limits: This endpoint allows one request every 10 seconds per broadcast.
Input parameters
List of customer IDs to target (mutually exclusive with other audience options).
Global key-value data for Liquid templating personalization across all recipients.
List of email addresses to target (mutually exclusive with other audience options).
Override the broadcast's UI audience with complex filtering logic. Use logical operators (and/or/not) with segment or attribute filters.
The ID of the broadcast to trigger.
HTTP(S) URL to a file with JSON data (one map per line with id/email and data). Mutually exclusive with other audience options.
Array of user-specific data with id/email and personalization (mutually exclusive with other audience options).
Skip people without customer IDs. Default: false.
Allow duplicate email recipients. Default: false.
Skip people without email addresses. Default: false.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
CUSTOMERIO_UNSUBSCRIBE_DELIVERYTool 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 action requires Track API credentials (Basic Auth with siteId:apiKey), not App API credentials. The unsubscribe action sets the person's unsubscribed attribute to true.
Input parameters
The delivery ID resulting in a request to unsubscribe. This is the unique identifier for a message delivery (e.g., 'dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek='). You can obtain this from message delivery events or the Get Messages endpoint.
If true, the person's 'unsubscribed' attribute is set to true and the unsubscription is attributed to this delivery. Set to false to revert an unsubscribe action.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
No publicly available marketplace agent is found using this tool yet. There are 52 agents privately built on Nagent that already use Customer.io.
Build on Nagent
Connect Customer.io to any Nagent agent in minutes — no API key management, no boilerplate. Just configure and deploy.
The five questions agent builders ask before adopting a new integration.
Open the External Integrations panel inside Nagent (app.nagent.ai/externalIntegration), find Customer.io, and click "Connect Now." You'll authenticate with an API key — Nagent handles credential storage and refresh automatically. Once connected, Customer.io is available to any agent in your workspace.
No. Nagent provides no-code integration for every tool. Once Customer.io is connected, you configure its 24 actions directly in the agent builder UI — no API calls, no boilerplate, no schema management.
Helix — Nagent's agentic agent builder — lets you drop Customer.io steps into any workflow visually. Pick an action (e.g., one of those listed above), fill in the inputs (Helix knows the required vs. optional schema for each parameter), and connect it to upstream/downstream steps. Triggers run as the entry point of an agent, so when a Customer.io event fires, the agent kicks off automatically.
Every Customer.io action and trigger ships with a fully-typed schema — input parameters with name, type, required flag, and description, plus the output payload shape. The schemas are documented in the sections above. Helix uses these schemas to validate your configuration at build time and to type-check the data flowing between steps.
Yes. While Customer.io ships with 24 pre-built marketing automation actions, you can layer custom logic around them inside Helix — pre/post-processing steps, conditional branches, retries, or stitching Customer.io together with other connected tools. For deeper customization, talk to our team about Nagent's Agentic AI Lab — forward-deployed engineers who build Customer.io-based workflows tailored to your business.