/customerio-messaging | Type: Application | PCID required: Yes
Tools
customerio_messaging_create_newsletter
Create and send a newsletter Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
body | object | Yes | — | Request body |
customerio_messaging_create_newsletter_language_variant
Add a translation to a newsletter Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
body | object | Yes | — | Add a language variant to a newsletter. The payload the endpoint accepts depends on the parent newsletter’s channel type. |
customerio_messaging_create_newsletter_test_group
Create an A/B test group for a newsletter Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
body | object | No | — | No request body is required. |
customerio_messaging_create_newsletter_test_language_variant
Add a translation to a newsletter test group Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
test_group_id | string | Yes | — | The ID of the A/B test group. |
body | object | Yes | — | Add a language variant to a newsletter. The payload the endpoint accepts depends on the parent newsletter’s channel type. |
customerio_messaging_delete_newsletter_language_variant
Delete a translation of a newsletter Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
language | string | Yes | — | A language tag of a language variant. If you don’t provide a language (an empty string), we’ll use your default language. If the language variant does not exist, we’ll return an error. |
customerio_messaging_delete_newsletter_test_language_variant
Delete a translation in a newsletter test group Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
test_group_id | string | Yes | — | The ID of the A/B test group. |
language | string | Yes | — | A language tag of a language variant. If you don’t provide a language (an empty string), we’ll use your default language. If the language variant does not exist, we’ll return an error. |
customerio_messaging_delete_newsletters
Delete a newsletter Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
customerio_messaging_get_archived_message
Get an archived message Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
message_id | string | Yes | — | The identifier of a message. |
customerio_messaging_get_message
Get a message Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
message_id | string | Yes | — | The identifier of a message. |
get_tracked_responses | boolean | No | — | If true, the response includes tracked_responses for each message—an object containing tracked response option names for in-app survey responses. |
customerio_messaging_get_newsletter_links
Get click metrics for newsletter links Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
period | string | No | — | The unit of time for your report. |
steps | integer | No | — | The number of periods you want to return. Defaults to the maximum available, or 12 if the period is in months. Maximums are 24 hours, 45 days, 12 weeks, or 121 months. Days start at 00:00 EST. Weeks start at 00:00 EST on Sunday. Months start at 00:00 EST on the 1st of the month. |
unique | boolean | No | — | If true, the response contains only unique customer results, i.e. a customer who clicks a link twice is only counted once. If false, the response contains the total number of results without regard to uniqueness. |
customerio_messaging_get_newsletter_metrics
Get newsletter metrics Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
period | string | No | — | The unit of time for your report. |
steps | integer | No | — | The number of periods you want to return. Defaults to the maximum available, or 12 if the period is in months. Maximums are 24 hours, 45 days, 12 weeks, or 121 months. Days start at 00:00 EST. Weeks start at 00:00 EST on Sunday. Months start at 00:00 EST on the 1st of the month. |
type | string | No | — | The type of item you want to return metrics for. When empty, the response contains metrics for all possible types. |
customerio_messaging_get_newsletter_msg_meta
Get delivery data for a newsletter Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
start | string | No | — | The token for the page of results you want to return. Responses contain a next property. Use this property as the start value to return the next page of results. |
limit | integer | No | — | The maximum number of results you want to retrieve per page. |
metric | string | No | — | Determines the metric(s) you want to return. |
start_ts | integer | No | — | The beginning timestamp for your query. |
end_ts | integer | No | — | The ending timestamp for your query. |
get_tracked_responses | boolean | No | — | If true, the response includes tracked_responses for each message—an object containing tracked response option names for in-app survey responses. |
customerio_messaging_get_newsletter_test_groups
List a newsletter’s A/B test groups Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
customerio_messaging_get_newsletter_variant
Get a newsletter variant Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
content_id | integer | Yes | — | The identifier of a message in a newsletter. If your newsletter has an A/B test group or includes multiple languages, each variant has its own content_id, separate from the newsletter_id. Use List variants of a newsletter to find the content_id associated with the right variant. |
customerio_messaging_get_newsletter_variant_translation
Get a newsletter translation Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
language | string | Yes | — | A language tag of a language variant. If you don’t provide a language (an empty string), we’ll use your default language. If the language variant does not exist, we’ll return an error. |
customerio_messaging_get_newsletter_variant_translation_test
Get a translation in a newsletter test group Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
test_group_id | string | Yes | — | The ID of the A/B test group. |
language | string | Yes | — | A language tag of a language variant. If you don’t provide a language (an empty string), we’ll use your default language. If the language variant does not exist, we’ll return an error. |
customerio_messaging_get_newsletters
Get a newsletter Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
customerio_messaging_get_transactional
Get a transactional message Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
transactional_id | integer | Yes | — | The identifier of your transactional message. You’ll find this in the UI or URL of your transactional message. For example, if this is the path of a transactional message URL - /transactional/3/templates/139 - the transactional_id is 3. |
customerio_messaging_get_transactional_variant
Get a translation of a transactional message Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
transactional_id | integer | Yes | — | The identifier of your transactional message. You’ll find this in the UI or URL of your transactional message. For example, if this is the path of a transactional message URL - /transactional/3/templates/139 - the transactional_id is 3. |
language | string | Yes | — | A language tag of a language variant. If you don’t provide a language (an empty string), we’ll use your default language. If the language variant does not exist, we’ll return an error. |
customerio_messaging_get_variant_links
Get click metrics for links in newsletter variants Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
content_id | integer | Yes | — | The identifier of a message in a newsletter. If your newsletter has an A/B test group or includes multiple languages, each variant has its own content_id, separate from the newsletter_id. Use List variants of a newsletter to find the content_id associated with the right variant. |
period | string | No | — | The unit of time for your report. |
steps | integer | No | — | The number of periods you want to return. Defaults to the maximum available, or 12 if the period is in months. Maximums are 24 hours, 45 days, 12 weeks, or 121 months. Days start at 00:00 EST. Weeks start at 00:00 EST on Sunday. Months start at 00:00 EST on the 1st of the month. |
type | string | No | — | The type of item you want to return metrics for. When empty, the response contains metrics for all possible types. |
customerio_messaging_get_variant_metrics
Get metrics for a test or translation variant of a newsletter Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
content_id | integer | Yes | — | The identifier of a message in a newsletter. If your newsletter has an A/B test group or includes multiple languages, each variant has its own content_id, separate from the newsletter_id. Use List variants of a newsletter to find the content_id associated with the right variant. |
period | string | No | — | The unit of time for your report. |
steps | integer | No | — | The number of periods you want to return. Defaults to the maximum available, or 12 if the period is in months. Maximums are 24 hours, 45 days, 12 weeks, or 121 months. Days start at 00:00 EST. Weeks start at 00:00 EST on Sunday. Months start at 00:00 EST on the 1st of the month. |
type | string | No | — | The type of item you want to return metrics for. When empty, the response contains metrics for all possible types. |
customerio_messaging_list_messages
List messages Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
start | string | No | — | The token for the page of results you want to return. Responses contain a next property. Use this property as the start value to return the next page of results. |
limit | integer | No | — | The maximum number of results you want to retrieve per page. |
type | string | No | — | The type of item you want to return metrics for. When empty, the response contains metrics for all possible types. |
metric | string | No | — | Determines the metric(s) you want to return. |
drafts | boolean | No | — | If true, your request returns drafts rather than active/sent messages. |
campaign_id | integer | No | — | The campaign you want to filter for. |
newsletter_id | integer | No | — | The newsletter you want to filter for. |
action_id | integer | No | — | The action you want to filter for. |
start_ts | integer | No | — | The beginning timestamp for your query. |
end_ts | integer | No | — | The ending timestamp for your query. |
get_tracked_responses | boolean | No | — | If true, the response includes tracked_responses for each message—an object containing tracked response option names for in-app survey responses. |
customerio_messaging_list_newsletter_variants
List newsletter variants Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
customerio_messaging_list_newsletters
List newsletters Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit | integer | No | — | The maximum number of results you want to retrieve per page. |
sort | string | No | — | Determine how you want to sort results, asc for chronological order and desc for reverse chronological order. |
start | string | No | — | The token for the page of results you want to return. Responses contain a next property. Use this property as the start value to return the next page of results. |
customerio_messaging_list_transactional
List transactional messagescustomerio_messaging_list_transactional_variants
List all variants of a transactional message Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
transactional_id | integer | Yes | — | The identifier of your transactional message. You’ll find this in the UI or URL of your transactional message. For example, if this is the path of a transactional message URL - /transactional/3/templates/139 - the transactional_id is 3. |
customerio_messaging_schedule_newsletter
Schedule a newsletter Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
rate_limit_email_rate | integer | No | — | Maximum number of messages per time period. NOTE: Though this states email_rate, you can use this for other message channels. Only fixed rate limits are supported, not daily ramp limits. |
rate_limit_spread | boolean | No | — | When true, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period. |
rate_limit_time_period | integer | No | — | Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day). |
scheduled_at | integer | Yes | — | Unix timestamp for the send. Use 0 to deschedule. When greater than 0, the time must be in the future and you must send timezone so the UI displays the time correctly. |
timezone | string | No | — | IANA timezone name (for example, America/New_York). Required when scheduled_at is greater than 0. Not required when descheduling (scheduled_at is 0). |
tz_match_enabled | boolean | No | — | When true, sends at the same local time in each recipient’s timezone. If it’s set to true and rate_limit_time_period is provided, then the period can’t be greater than 3600 (1 hour). |
customerio_messaging_send_email
Send a transactional email Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
X-Workspace-Id | integer | No | — | The numeric ID of the workspace you want to send a message in. This header is only needed when you authenticate with a service-account bearer token (sa_live_…). Service accounts work across workspaces, so you must supply this header so we know which workspace to send from. You can omit this header when you authenticate with a standard App API key, which is always scoped to one workspace. |
attachments | object | No | — | A dictionary of attachments where the filename is the key and the value is the base64-encoded contents. The filename must include the extension (i.e. name.csv). The total size of all attachments must be less than 2 MB. |
auto_create | boolean | No | — | If true and transactional_message_id doesn’t match an existing record, Customer.io creates an empty record using that value as the Trigger Name. Subsequent sends with the same value reuse the record, so they roll up under one ID in your metrics. transactional_message_id must be a string when auto_create is true. If the name already belongs to a record on a different channel, the request fails with 400. Numeric values for transactional_message_id ignore auto_create. |
bcc | string | No | — | Blind copy message recipients. Supports multiple addresses separated by commas. Your request can contain up to 15 total recipients between the to and bcc keys. |
body | string | No | — | The HTML body of your message. If you provide transactional_message_id, this overrides the template’s body. If you send an AMP-enabled email (with body_amp) and the recipient’s email client doesn’t support AMP, this is the fallback email. |
body_amp | string | No | — | You can add AMP-enabled content to emails. If your recipient’s email client doesn’t support AMP, they will receive the body content. Make sure you’re set up to send AMP content; there are several requirements to successfully send and receive AMP-enabled emails. |
body_plain | string | No | — | The plaintext body of your message. If you provide transactional_message_id, this overrides the template’s plaintext body. |
disable_css_preprocessing | boolean | No | — | Set to true to disable CSS preprocessing. This setting overrides the CSS preprocessing setting on the transactional_message_id as set in the user interface. Transactional emails have CSS preprocessing enabled by default. |
disable_message_retention | boolean | No | — | If true, the message body is not retained in delivery history. Setting this value overrides the value set in the settings of your transactional_message_id. |
fake_bcc | boolean | No | — | If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es). |
from | string | No | — | The address that your email is from. This address must be verified by Customer.io—see Authenticate your sending domain for how to verify a domain. If you provide transactional_message_id, this overrides the template’s from address. You can include a display/friendly name in your from address, but we recommend that you use quotation marks around the friendly name to avoid potential issues with special characters, e.g. \"Person\" <person@example.com>. If you omit from (and the template has no from either, or you didn’t include a template), Customer.io falls back to your workspace’s default sender at render time. This requires at least one verified sending domain in your workspace. |
headers | string | No | — | A JSON string containing an array of header objects, where each object contains a name and a value. Header names and values must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten. |
identifiers | object | No | — | Identifies the person represented by your transactional message by one of, and only one of, id, email, or cio_id. |
language | string | No | — | Overrides language preferences for the person you want to send your transactional message to. Use one of our supported two- or four-letter language codes. |
message_data | object | No | — | An object containing the key-value pairs referenced using liquid in your message. |
preheader | string | No | — | Also known as “preview text”, this is the block block of text that users see next to, or underneath, the subject line in their inbox. |
queue_draft | boolean | No | — | If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message. |
reply_to | string | No | — | The address that recipients can reply to, if different from the from address. |
send_at | integer | No | — | A unix timestamp (seconds since epoch) determining when the message will be sent. The timestamp can be up to 90 days in the future. If this value is in the past, your message is sent immediately. |
send_to_unsubscribed | boolean | No | — | If false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your transactional_message_id. |
subject | string | No | — | The subject line for your message. If you provide transactional_message_id, this overrides the template’s subject. |
to | string | Yes | — | The message recipient(s). Supports multiple addresses separated by commas. Your request can contain up to 15 total recipients between the to and bcc keys. You can include a display or “friendly” name in “to” address, but we recommend that you use quotation marks around the friendly name to avoid potential issues with special characters, e.g. \"Person\" <person@example.com>. |
tracked | boolean | No | — | If true, Customer.io tracks opens and link clicks in your message. |
transactional_message_id | object | No | — | The transactional message template you want to use. You can call the template by its numerical ID or by the Trigger Name that you assigned to the template in the UI (case insensitive). |
customerio_messaging_send_in_app
Send a transactional in-app message Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
X-Workspace-Id | integer | No | — | The numeric ID of the workspace you want to send a message in. This header is only needed when you authenticate with a service-account bearer token (sa_live_…). Service accounts work across workspaces, so you must supply this header so we know which workspace to send from. You can omit this header when you authenticate with a standard App API key, which is always scoped to one workspace. |
auto_create | boolean | No | — | Accepted but of limited use for in-app sends. If true and the transactional_message_id you pass doesn’t match an existing record, Customer.io creates an empty in-app record using that value as the Trigger Name. Because the in-app API doesn’t accept content in the request, the auto-created record has no layout for the SDK to render until you populate it in the UI. For a stable trigger name on in-app, create the message in the UI and assign a Trigger Name there. When auto_create is true, transactional_message_id must be a string. If the name already belongs to a record—even on a different channel—the request fails with 400. |
disable_message_retention | boolean | No | — | If true, the message body is not retained in delivery history. Setting this value overrides the value set in the settings of your transactional_message_id. |
identifiers | object | Yes | — | Identifies the person represented by your transactional message by one of, and only one of, id, email, or cio_id. |
language | string | No | — | Overrides language preferences for the person you want to send your transactional message to. Use one of our supported two- or four-letter language codes. |
message_data | object | No | — | An object containing the key-value pairs referenced using liquid in the format {{trigger.<property_name>}} in your in-app message. These values populate the properties field in the message that the SDK delivers to your application. |
queue_draft | boolean | No | — | If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message. |
send_at | integer | No | — | A unix timestamp (seconds since epoch) determining when the message will be sent. The timestamp can be up to 90 days in the future. If this value is in the past, your message is sent immediately. |
send_to_unsubscribed | boolean | No | — | If false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your transactional_message_id. |
transactional_message_id | object | Yes | — | The transactional message template that you want to use for your message. You can call the template by its numerical ID or by the Trigger Name that you assigned to the template in the UI (case insensitive). |
customerio_messaging_send_inbox_message
Send a transactional inbox message Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
X-Workspace-Id | integer | No | — | The numeric ID of the workspace you want to send a message in. This header is only needed when you authenticate with a service-account bearer token (sa_live_…). Service accounts work across workspaces, so you must supply this header so we know which workspace to send from. You can omit this header when you authenticate with a standard App API key, which is always scoped to one workspace. |
auto_create | boolean | No | — | Accepted but of limited use for inbox sends. If true and the transactional_message_id you pass doesn’t match an existing record, Customer.io creates an empty inbox record using that value as the Trigger Name. Because the inbox API doesn’t accept content in the request, the auto-created record has no layout for the SDK to render until you populate it in the UI. For a stable trigger name on inbox, create the message in the UI and assign a Trigger Name there. When auto_create is true, transactional_message_id must be a string. If the name already belongs to a record—even on a different channel—the request fails with 400. |
disable_message_retention | boolean | No | — | If true, the message body is not retained in delivery history. Setting this value overrides the value set in the settings of your transactional_message_id. |
identifiers | object | Yes | — | Identifies the person represented by your transactional message by one of, and only one of, id, email, or cio_id. |
language | string | No | — | Overrides language preferences for the person you want to send your transactional message to. Use one of our supported two- or four-letter language codes. |
message_data | object | No | — | An object containing the key-value pairs referenced using liquid in the format {{trigger.<property_name>}} in your inbox message. These values will populate the properties field in the message received by your application. |
queue_draft | boolean | No | — | If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message. |
send_at | integer | No | — | A unix timestamp (seconds since epoch) determining when the message will be sent. The timestamp can be up to 90 days in the future. If this value is in the past, your message is sent immediately. |
send_to_unsubscribed | boolean | No | — | If false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your transactional_message_id. |
to | string | No | — | Optional override for the recipient. This is typically not needed as the message is sent to the person identified by identifiers. |
transactional_message_id | object | Yes | — | The transactional message template that you want to use for your message. You can call the template by its numerical ID or by the Trigger Name that you assigned to the template in the UI (case insensitive). |
customerio_messaging_send_newsletter
Send a newsletter Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
rate_limit_email_rate | integer | No | — | Maximum number of messages per time period. NOTE: Though this states email_rate, you can use this for other message channels. Only fixed rate limits are supported, not daily ramp limits. |
rate_limit_spread | boolean | No | — | When true, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period. |
rate_limit_time_period | integer | No | — | Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day). |
customerio_messaging_send_push
Send a transactional push Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
X-Workspace-Id | integer | No | — | The numeric ID of the workspace you want to send a message in. This header is only needed when you authenticate with a service-account bearer token (sa_live_…). Service accounts work across workspaces, so you must supply this header so we know which workspace to send from. You can omit this header when you authenticate with a standard App API key, which is always scoped to one workspace. |
auto_create | boolean | No | — | If true and transactional_message_id doesn’t match an existing record, Customer.io creates an empty record using that value as the Trigger Name. Subsequent sends with the same value reuse the record, so they roll up under one ID in your metrics. transactional_message_id must be a string when auto_create is true. If the name already belongs to a record on a different channel, the request fails with 400. Numeric values for transactional_message_id ignore auto_create. |
custom_data | object | No | — | An optional list of key/value pairs to attach to the push payload. Due to a Firebase limitation we only support sending string key value pairs. This overrides Custom Data from the transactional template (referenced by transactional_message_id). |
custom_device | object | No | — | A device to perform an upsert operation at the time of send. The device will be added/updated on the profile from the Identifiers block. |
custom_payload | object | No | — | An optional list of key/value pairs to attach to the push payload. Due to a Firebase limitation we only support sending string key value pairs. This overrides every other parameter, including any Custom Payload from the transactional template (referenced by transactional_message_id). |
disable_message_retention | boolean | No | — | If true, the message body is not retained in delivery history. Setting this value overrides the value set in the settings of your transactional_message_id. |
identifiers | object | Yes | — | Identifies the person represented by your transactional message by one of, and only one of, id, email, or cio_id. |
image_url | string | No | — | An image URL to show in the push. This overrides Image from the transactional template (referenced by transactional_message_id). |
language | string | No | — | Overrides language preferences for the person you want to send your transactional message to. Use one of our supported two- or four-letter language codes. |
link | string | No | — | A deep link to open when the push is tapped. This overrides Link from the transactional template (referenced by transactional_message_id). |
message | string | No | — | The message body for your notification. This overrides the notification body of the transactional template (referenced by transactional_message_id). |
message_data | object | No | — | An object containing the key-value pairs referenced using liquid in your message. |
queue_draft | boolean | No | — | If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message. |
send_at | integer | No | — | A unix timestamp (seconds since epoch) determining when the message will be sent. The timestamp can be up to 90 days in the future. If this value is in the past, your message is sent immediately. |
send_to_unsubscribed | boolean | No | — | If false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your transactional_message_id. |
sound | string | No | — | For iOS Only: your notification can alert users with the device’s default notification sound or play no sound at all. |
title | string | No | — | The title for your notification. This overrides the title of the transactional template (referenced by transactional_message_id). |
to | string | Yes | — | The person’s device(s) you want to send this push to. One of all, last_used, or a custom device token which belongs to the profile from the Identifiers block. Defaults to ‘all’. This overrides To from the transactional template (referenced by transactional_message_id). |
transactional_message_id | object | Yes | — | The transactional message template that you want to use for your message. You can call the template by its numerical ID or by the Trigger Name that you assigned to the template in the UI (case insensitive). |
customerio_messaging_send_sms
Send a transactional SMS Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
X-Workspace-Id | integer | No | — | The numeric ID of the workspace you want to send a message in. This header is only needed when you authenticate with a service-account bearer token (sa_live_…). Service accounts work across workspaces, so you must supply this header so we know which workspace to send from. You can omit this header when you authenticate with a standard App API key, which is always scoped to one workspace. |
auto_create | boolean | No | — | If true and transactional_message_id doesn’t match an existing record, Customer.io creates an empty record using that value as the Trigger Name. Subsequent sends with the same value reuse the record, so they roll up under one ID in your metrics. transactional_message_id must be a string when auto_create is true. If the name already belongs to a record on a different channel, the request fails with 400. Numeric values for transactional_message_id ignore auto_create. |
disable_message_retention | boolean | No | — | If true, the message body is not retained in delivery history. Setting this value overrides the value set in the settings of your transactional_message_id. |
from | string | No | — | The phone number or sender ID that your SMS is from. This must be a verified phone number in your Twilio account. This overrides the from address set within the transactional template (referenced by transactional_message_id). Phone numbers must be in E.164 format (e.g., +15551234567). |
identifiers | object | Yes | — | Identifies the person represented by your transactional message by one of, and only one of, id, email, or cio_id. |
language | string | No | — | Overrides language preferences for the person you want to send your transactional message to. Use one of our supported two- or four-letter language codes. |
message_data | object | No | — | An object containing the key-value pairs referenced using liquid in your message. |
queue_draft | boolean | No | — | If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message. |
send_at | integer | No | — | A unix timestamp (seconds since epoch) determining when the message will be sent. The timestamp can be up to 90 days in the future. If this value is in the past, your message is sent immediately. |
send_to_unsubscribed | boolean | No | — | If false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your transactional_message_id. |
to | string | Yes | — | The phone number you want to send your SMS to. Phone numbers must be in E.164 format (e.g., +15551234567), but you can also use liquid syntax if you store users phone numbers as attributes; you don’t have to pass an E.164 formatted phone number in the call. |
transactional_message_id | object | Yes | — | The transactional message template that you want to use for your message. You can call the template by its numerical ID or by the Trigger Name that you assigned to the template in the UI (case insensitive). |
customerio_messaging_transactional_links
Get transactional message link metrics Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
transactional_id | integer | Yes | — | The identifier of your transactional message. You’ll find this in the UI or URL of your transactional message. For example, if this is the path of a transactional message URL - /transactional/3/templates/139 - the transactional_id is 3. |
period | string | No | — | The unit of time for your report. |
steps | integer | No | — | The number of periods you want to return. Defaults to the maximum available, or 12 if the period is in months. Maximums are 24 hours, 45 days, 12 weeks, or 121 months. Days start at 00:00 EST. Weeks start at 00:00 EST on Sunday. Months start at 00:00 EST on the 1st of the month. |
unique | boolean | No | — | If true, the response contains only unique customer results, i.e. a customer who clicks a link twice is only counted once. If false, the response contains the total number of results without regard to uniqueness. |
customerio_messaging_transactional_messages
Get transactional message deliveries Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
transactional_id | integer | Yes | — | The identifier of your transactional message. You’ll find this in the UI or URL of your transactional message. For example, if this is the path of a transactional message URL - /transactional/3/templates/139 - the transactional_id is 3. |
start | string | No | — | The token for the page of results you want to return. Responses contain a next property. Use this property as the start value to return the next page of results. |
limit | integer | No | — | The maximum number of results you want to retrieve per page. |
metric | string | No | — | Determines the metric(s) you want to return. |
state | string | No | — | The state of a broadcast. |
start_ts | integer | No | — | The beginning timestamp for your query. |
end_ts | integer | No | — | The ending timestamp for your query. |
get_tracked_responses | boolean | No | — | If true, the response includes tracked_responses for each message—an object containing tracked response option names for in-app survey responses. |
customerio_messaging_transactional_metrics
Get transactional message metrics Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
transactional_id | integer | Yes | — | The identifier of your transactional message. You’ll find this in the UI or URL of your transactional message. For example, if this is the path of a transactional message URL - /transactional/3/templates/139 - the transactional_id is 3. |
period | string | No | — | The unit of time for your report. |
steps | integer | No | — | The number of periods you want to return. Defaults to the maximum available, or 12 if the period is in months. Maximums are 24 hours, 45 days, 12 weeks, or 121 months. Days start at 00:00 EST. Weeks start at 00:00 EST on Sunday. Months start at 00:00 EST on the 1st of the month. |
customerio_messaging_trigger_broadcast
Send an API-triggered broadcast Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
broadcast_id | integer | Yes | — | The ID of the broadcast that you want to trigger. |
body | object | No | — | Request body |
customerio_messaging_update_newsletter_test_translation
Update a translation in a newsletter test group Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
test_group_id | string | Yes | — | The ID of the A/B test group. |
language | string | Yes | — | A language tag of a language variant. If you don’t provide a language (an empty string), we’ll use your default language. If the language variant does not exist, we’ll return an error. |
body | object | No | — | Request body |
customerio_messaging_update_newsletter_variant
Update a newsletter variant Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
content_id | integer | Yes | — | The identifier of a message in a newsletter. If your newsletter has an A/B test group or includes multiple languages, each variant has its own content_id, separate from the newsletter_id. Use List variants of a newsletter to find the content_id associated with the right variant. |
body | object | No | — | Request body |
customerio_messaging_update_newsletter_variant_translation
Update a translation of a newsletter Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
newsletter_id | integer | Yes | — | The identifier of a newsletter. |
language | string | Yes | — | A language tag of a language variant. If you don’t provide a language (an empty string), we’ll use your default language. If the language variant does not exist, we’ll return an error. |
body | object | No | — | Request body |
customerio_messaging_update_transactional
Update a transactional message Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
transactional_id | integer | Yes | — | The identifier of your transactional message. You’ll find this in the UI or URL of your transactional message. For example, if this is the path of a transactional message URL - /transactional/3/templates/139 - the transactional_id is 3. |
content_id | integer | Yes | — | The content variant of your transactional message. You’ll find the id in the URL of your transactional message. For example, if this is the path of a transactional message URL - /transactional/3/templates/139 - the content_id is 139. |
bcc | string | No | — | The blind-copy address(es) for this action. |
body | string | No | — | The body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor. |
body_amp | string | No | — | You can add AMP-enabled content to emails. If your recipient’s email client doesn’t support AMP, they will receive the body content. Make sure you’re set up to send AMP content; there are several requirements to successfully send and receive AMP-enabled emails. |
created | integer | No | — | The date time when the referenced ID was created. |
fake_bcc | boolean | No | — | If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es). |
from | string | No | — | The address that the message is from, relevant if the action type is email. |
from_id | integer | No | — | The identifier of the from address, commonly known as the “sender”. Use List sender identities to find valid IDs. |
headers | object[] | No | — | An array of objects containing headers, where each object contains a name and a value. Header names and values must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten. |
id | integer | No | — | The identifier for an action. |
language | string | No | — | The language variant for your message. If you don’t use our localization feature, or this is the default message, this value is an empty string. |
name | string | No | — | The name of the transactional message. |
preheader_text | string | No | — | Also known as “preview text”, this is the small block of text shown in an email inbox next to or underneath the subject line. |
preprocessor | string | No | — | By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor. |
recipient | string | No | — | The recipient address for an action. |
reply_to | string | No | — | The address that receives replies for the message, if applicable. |
reply_to_id | integer | No | — | The identifier for the reply_to address, if applicable. Use List sender identities to find valid IDs. |
subject | string | No | — | The subject line for an email action. |
type | string | No | — | The type of message. |
updated | integer | No | — | The date time when the referenced ID was last updated. |
customerio_messaging_update_transactional_variant
Update a translation of a transactional message Parameters:| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
transactional_id | integer | Yes | — | The identifier of your transactional message. You’ll find this in the UI or URL of your transactional message. For example, if this is the path of a transactional message URL - /transactional/3/templates/139 - the transactional_id is 3. |
language | string | Yes | — | A language tag of a language variant. If you don’t provide a language (an empty string), we’ll use your default language. If the language variant does not exist, we’ll return an error. |
bcc | string | No | — | The blind-copy address(es) for this action. |
body | string | No | — | The body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor. |
body_amp | string | No | — | You can add AMP-enabled content to emails. If your recipient’s email client doesn’t support AMP, they will receive the body content. Make sure you’re set up to send AMP content; there are several requirements to successfully send and receive AMP-enabled emails. |
created | integer | No | — | The date time when the referenced ID was created. |
fake_bcc | boolean | No | — | If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es). |
from | string | No | — | The address that the message is from, relevant if the action type is email. |
from_id | integer | No | — | The identifier of the from address, commonly known as the “sender”. Use List sender identities to find valid IDs. |
headers | object[] | No | — | An array of objects containing headers, where each object contains a name and a value. Header names and values must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten. |
id | integer | No | — | The identifier for an action. |
name | string | No | — | The name of the transactional message. |
preheader_text | string | No | — | Also known as “preview text”, this is the small block of text shown in an email inbox next to or underneath the subject line. |
preprocessor | string | No | — | By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor. |
recipient | string | No | — | The recipient address for an action. |
reply_to | string | No | — | The address that receives replies for the message, if applicable. |
reply_to_id | integer | No | — | The identifier for the reply_to address, if applicable. Use List sender identities to find valid IDs. |
subject | string | No | — | The subject line for an email action. |
type | string | No | — | The type of message. |
updated | integer | No | — | The date time when the referenced ID was last updated. |

