Skip to main content

Customer.io Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow data flow that sends data to a Customer.io location.
customer_io_api.png

Customer.io

Create a Customer.io Destination

  1. Click the + icon on the Nexset that will be sent to the Customer.io destination, and select the Send to Destination option from the menu.

  2. Select the Customer.io connector from the list of available destination connectors. Then, select the credential that will be used to connect to the Customer.io workspace, and click Next; or, create a new Customer.io credential for use in this flow.

  3. In Nexla, Customer.io destinations can be created using pre-built endpoint templates, which expedite destination setup for common Customer.io App API write operations. Each template is designed specifically for the corresponding Customer.io endpoint, making destination configuration easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    Customer.io destinations can also be configured manually, allowing you to send data to Customer.io endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Customer.io App API endpoints. Each template is designed specifically for the corresponding Customer.io write operation, making destination setup easy and efficient.

  • To configure this destination using a template, select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

    Trigger API-Triggered Broadcast

    Triggers an API-triggered broadcast campaign in Customer.io, sending a one-to-many message to an audience specified in the request payload. Use this endpoint to fire broadcast sends on demand—for example, to notify a group of customers about a personalized offer, a product update, or an operational alert—using data from a Nexla Nexset as the audience or message payload.

    • Enter the numeric ID of the API-triggered broadcast campaign to fire in the Broadcast Campaign ID field. This campaign must already be configured in Customer.io as an API-triggered broadcast. You can find the campaign ID in the following ways:

      • In Customer.io, navigate to Campaigns, open the API-triggered broadcast, and locate its numeric ID in the browser URL.
      • Use Nexla's List Campaigns source endpoint to retrieve all campaigns and identify the correct ID for your API-triggered broadcast.
    • The request payload (the body of each API call sent to Customer.io) is constructed from the Nexset data. Structure your Nexset data to match the Customer.io API-triggered broadcast payload format—including the to field (specifying the audience as a segment, emails, or IDs) and any data attributes used for personalization within the broadcast message.

    Customer.io API-triggered broadcasts are rate-limited to 1 trigger request every 10 seconds per broadcast. For high-volume use cases, plan your Nexla data flow scheduling to stay within this limit. For full details on the expected payload format, see the Trigger Broadcast API reference.

    Send Newsletter

    Sends a newsletter immediately to its configured audience. Use this endpoint to programmatically trigger an immediate newsletter send from Nexla—for example, to dispatch a newsletter as part of a broader, automated data pipeline.

    • Enter the numeric ID of the newsletter to send in the Newsletter ID field. The newsletter must already be fully configured in Customer.io (content, audience, and sender details) before it can be sent via the API. You can find the newsletter ID in the following ways:

      • In Customer.io, navigate to Newsletters, open the newsletter, and locate its numeric ID in the browser URL.
      • Use Nexla's List Newsletters source endpoint to retrieve all newsletters and their IDs from your workspace.
    • The request body sent to Customer.io can include optional override parameters (such as a custom subject line or from address) passed as Nexset attributes. Structure your Nexset data accordingly if overrides are needed.

    Sending a newsletter via the API triggers an immediate send to the newsletter's pre-configured audience. Ensure the newsletter content and audience settings are finalized in Customer.io before triggering the send through Nexla.

    Schedule Newsletter

    Schedules a newsletter for future delivery to its configured audience. Use this endpoint to programmatically set a send time for a newsletter—for example, to automate newsletter scheduling as part of a data-driven content calendar workflow.

    • Enter the numeric ID of the newsletter to schedule in the Newsletter ID field. You can find this ID in the following ways:

      • In Customer.io, navigate to Newsletters, open the newsletter, and locate its numeric ID in the browser URL.
      • Use Nexla's List Newsletters source endpoint to retrieve all newsletters and their IDs from your workspace.
    • The request payload must include a scheduled_at timestamp specifying when the newsletter should be sent. Structure your Nexset data to include this timestamp field in a format accepted by the Customer.io API (Unix timestamp or ISO 8601).

    The newsletter must be fully configured in Customer.io (content, audience, and sender details) before scheduling it via the API. For full details on the expected payload format, see the Customer.io Newsletter API release notes.

    Send Transactional Email

    Sends a transactional email message to a specific recipient. Transactional emails are one-to-one messages triggered by a specific user action or system event—such as password resets, order confirmations, receipts, or 1:1 operational notifications. Use this endpoint to send individual transactional emails to each record in a Nexset.

    • No additional template parameters are required beyond the request payload. The payload must include the recipient's email address and the transactional message template ID (or inline message content) as defined in your Customer.io workspace. Structure your Nexset data to include these fields.
    • At minimum, each record in the Nexset should supply the following fields in the request body:

      • to — The recipient email address.
      • transactional_message_id — The ID or identifier of the transactional message template to use.
      • message_data — An optional object of personalization variables to merge into the message template.

    Transactional email endpoints are rate-limited to 100 requests per second. For high-volume Nexsets, Nexla's record batching and flow scheduling features can help manage throughput. For full details on the payload format and supported fields, see the Send Transactional Email API reference.

    Update Campaign Action

    Updates a campaign action within a specified campaign—for example, to change message content, scheduling settings, or other action-level configurations. Use this endpoint to programmatically update campaign action content or settings as part of a content management or campaign automation workflow.

    • Enter the numeric ID of the parent campaign in the Campaign ID field. You can find this ID in the following ways:

      • In Customer.io, open the campaign and locate its numeric ID in the browser URL.
      • Use Nexla's List Campaigns source endpoint to retrieve all campaigns and their IDs.
    • Enter the numeric ID of the specific campaign action to update in the Action ID field. You can find this ID in the following ways:

      • Use Nexla's List Campaign Actions source endpoint to retrieve all actions and identify the correct action ID.
      • In Customer.io, open the campaign workflow editor and inspect the action to find its ID.
    • The request body (constructed from the Nexset data) should include the updated action configuration in the format expected by the Customer.io App API. For details on the required payload structure, see the Update Campaign Action API reference.

    Both Campaign ID and Action ID are required for this endpoint. Providing an incorrect Campaign ID or Action ID will result in a 404 error from the Customer.io API.

    Update Newsletter Variant

    Updates the content or settings of a single variant within a newsletter. Customer.io newsletters support A/B variants, allowing you to test different subject lines, content, or sender configurations. Use this endpoint to programmatically update newsletter variant content as part of a content management workflow.

    • Enter the numeric ID of the newsletter that owns the variant in the Newsletter ID field. You can find this ID in the following ways:

      • In Customer.io, navigate to Newsletters, open the newsletter, and locate its numeric ID in the browser URL.
      • Use Nexla's List Newsletters source endpoint to retrieve all newsletters and their IDs.
    • Enter the numeric ID of the newsletter variant to update in the Variant ID field. You can find variant IDs by inspecting the newsletter in Customer.io or via the Customer.io App API.

    • The request body (constructed from the Nexset data) should include the updated variant configuration—such as subject line, body content, or from address—in the format expected by the Customer.io App API. For details on the required payload structure, see the Customer.io Newsletter API release notes.

    Both Newsletter ID and Variant ID are required for this endpoint. Ensure the correct IDs are provided to avoid unintentionally updating the wrong newsletter variant.

Configure Manually

Customer.io destinations can be manually configured to send data to any valid Customer.io App API endpoint.

Using manual configuration, you can also configure Nexla to automatically send the response received from the Customer.io API after each call to a new Nexla webhook data source.

API Method

  1. To manually configure this destination, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Customer.io App API from the Method pulldown menu. Customer.io App API write operations commonly use:

    • POST: For creating resources, triggering broadcasts, and sending messages
    • PUT: For replacing an existing resource in full (for example, updating a campaign action or newsletter variant)
    • PATCH: For partial updates to existing resources

Data Format

  1. Select the format in which the Nexset data will be sent to the Customer.io API from the Content Format pulldown menu. The Customer.io App API accepts JSON for all write operations. Nexla will automatically convert the Nexset data to JSON format for each API call.

API Endpoint URL

  1. Enter the URL of the Customer.io App API endpoint to which you want to send the Nexset data in the URL field. All Customer.io App API requests use the following base URL pattern:

    • For US workspaces: https://api.customer.io/v1/{endpoint_path}
    • For EU workspaces: https://api-eu.customer.io/v1/{endpoint_path}

    For example, to send a transactional email for a US workspace, enter https://api.customer.io/v1/send/email.

Ensure the API endpoint URL matches the region domain selected in your Customer.io credential. Using the wrong region domain will result in authentication or routing errors. For a complete list of App API endpoints and their URL paths, see the Customer.io App API Reference.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2).

    You do not need to include the Authorization header here—it is automatically applied from your Customer.io credential configuration. The Customer.io App API requires a Content-Type: application/json header for POST and PUT requests, which Nexla sets automatically based on the selected Content Format.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this Customer.io destination, select the attributes from the Exclude Attributes pulldown menu.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional
  1. If records should be sent to this destination in batched API calls, check the box next to Would you like to batch your records together? to enable record batching.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings. Some algorithms require additional settings—click on an algorithm listed below to view instructions for configuring these settings.

Property Inside JSON Object

  1. Enter the name of the JSON property that should contain the batched records in the Property Name field.
  2. If any additional properties should be included in the request, enter the properties in the Other Props field in JSON format.

Code

  1. Enter the code that will be used to create the batched request in the code editor below the Grouping Algorithm field.

Response Webhook

Optional

Nexla can automatically send the response received from the Customer.io API after each call to a new Nexla webhook data source. This option allows you to keep track of the status of each API call and any additional information returned after each call—such as delivery confirmations or error messages from the Customer.io API.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the Customer.io API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.
  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing (Manual Configuration)

After all endpoint settings have been configured, Nexla can send a test payload to the Customer.io API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the Customer.io API using the current settings.

Save & Activate the Destination

  • Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured Customer.io endpoint, open the destination resource menu, and select Activate.

    The Nexset data will not be sent to Customer.io until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.