Skip to main content
Server path: /customerio-messaging | Type: Application | PCID required: Yes

Tools

ToolDescription
customerio_messaging_create_newsletterCreate and send a newsletter
customerio_messaging_create_newsletter_language_variantAdd a translation to a newsletter
customerio_messaging_create_newsletter_test_groupCreate an A/B test group for a newsletter
customerio_messaging_create_newsletter_test_language_variantAdd a translation to a newsletter test group
customerio_messaging_delete_newsletter_language_variantDelete a translation of a newsletter
customerio_messaging_delete_newsletter_test_language_variantDelete a translation in a newsletter test group
customerio_messaging_delete_newslettersDelete a newsletter
customerio_messaging_get_archived_messageGet an archived message
customerio_messaging_get_messageGet a message
customerio_messaging_get_newsletter_linksGet click metrics for newsletter links
customerio_messaging_get_newsletter_metricsGet newsletter metrics
customerio_messaging_get_newsletter_msg_metaGet delivery data for a newsletter
customerio_messaging_get_newsletter_test_groupsList a newsletter’s A/B test groups
customerio_messaging_get_newsletter_variantGet a newsletter variant
customerio_messaging_get_newsletter_variant_translationGet a newsletter translation
customerio_messaging_get_newsletter_variant_translation_testGet a translation in a newsletter test group
customerio_messaging_get_newslettersGet a newsletter
customerio_messaging_get_transactionalGet a transactional message
customerio_messaging_get_transactional_variantGet a translation of a transactional message
customerio_messaging_get_variant_linksGet click metrics for links in newsletter variants
customerio_messaging_get_variant_metricsGet metrics for a test or translation variant of a newsletter
customerio_messaging_list_messagesList messages
customerio_messaging_list_newsletter_variantsList newsletter variants
customerio_messaging_list_newslettersList newsletters
customerio_messaging_list_transactionalList transactional messages
customerio_messaging_list_transactional_variantsList all variants of a transactional message
customerio_messaging_schedule_newsletterSchedule a newsletter
customerio_messaging_send_emailSend a transactional email
customerio_messaging_send_in_appSend a transactional in-app message
customerio_messaging_send_inbox_messageSend a transactional inbox message
customerio_messaging_send_newsletterSend a newsletter
customerio_messaging_send_pushSend a transactional push
customerio_messaging_send_smsSend a transactional SMS
customerio_messaging_transactional_linksGet transactional message link metrics
customerio_messaging_transactional_messagesGet transactional message deliveries
customerio_messaging_transactional_metricsGet transactional message metrics
customerio_messaging_trigger_broadcastSend an API-triggered broadcast
customerio_messaging_update_newsletter_test_translationUpdate a translation in a newsletter test group
customerio_messaging_update_newsletter_variantUpdate a newsletter variant
customerio_messaging_update_newsletter_variant_translationUpdate a translation of a newsletter
customerio_messaging_update_transactionalUpdate a transactional message
customerio_messaging_update_transactional_variantUpdate a translation of a transactional message

customerio_messaging_create_newsletter

Create and send a newsletter Parameters:
ParameterTypeRequiredDefaultDescription
bodyobjectYesRequest body

customerio_messaging_create_newsletter_language_variant

Add a translation to a newsletter Parameters:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
bodyobjectYesAdd 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
bodyobjectNoNo request body is required.

customerio_messaging_create_newsletter_test_language_variant

Add a translation to a newsletter test group Parameters:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
test_group_idstringYesThe ID of the A/B test group.
bodyobjectYesAdd 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
languagestringYesA 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
test_group_idstringYesThe ID of the A/B test group.
languagestringYesA 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.

customerio_messaging_get_archived_message

Get an archived message Parameters:
ParameterTypeRequiredDefaultDescription
message_idstringYesThe identifier of a message.

customerio_messaging_get_message

Get a message Parameters:
ParameterTypeRequiredDefaultDescription
message_idstringYesThe identifier of a message.
get_tracked_responsesbooleanNoIf true, the response includes tracked_responses for each message—an object containing tracked response option names for in-app survey responses.

Get click metrics for newsletter links Parameters:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
periodstringNoThe unit of time for your report.
stepsintegerNoThe 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.
uniquebooleanNoIf 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
periodstringNoThe unit of time for your report.
stepsintegerNoThe 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.
typestringNoThe 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
startstringNoThe 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.
limitintegerNoThe maximum number of results you want to retrieve per page.
metricstringNoDetermines the metric(s) you want to return.
start_tsintegerNoThe beginning timestamp for your query.
end_tsintegerNoThe ending timestamp for your query.
get_tracked_responsesbooleanNoIf 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.

customerio_messaging_get_newsletter_variant

Get a newsletter variant Parameters:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
content_idintegerYesThe 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
languagestringYesA 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
test_group_idstringYesThe ID of the A/B test group.
languagestringYesA 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.

customerio_messaging_get_transactional

Get a transactional message Parameters:
ParameterTypeRequiredDefaultDescription
transactional_idintegerYesThe 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:
ParameterTypeRequiredDefaultDescription
transactional_idintegerYesThe 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.
languagestringYesA 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.

Get click metrics for links in newsletter variants Parameters:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
content_idintegerYesThe 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.
periodstringNoThe unit of time for your report.
stepsintegerNoThe 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.
typestringNoThe 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
content_idintegerYesThe 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.
periodstringNoThe unit of time for your report.
stepsintegerNoThe 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.
typestringNoThe 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:
ParameterTypeRequiredDefaultDescription
startstringNoThe 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.
limitintegerNoThe maximum number of results you want to retrieve per page.
typestringNoThe type of item you want to return metrics for. When empty, the response contains metrics for all possible types.
metricstringNoDetermines the metric(s) you want to return.
draftsbooleanNoIf true, your request returns drafts rather than active/sent messages.
campaign_idintegerNoThe campaign you want to filter for.
newsletter_idintegerNoThe newsletter you want to filter for.
action_idintegerNoThe action you want to filter for.
start_tsintegerNoThe beginning timestamp for your query.
end_tsintegerNoThe ending timestamp for your query.
get_tracked_responsesbooleanNoIf 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.

customerio_messaging_list_newsletters

List newsletters Parameters:
ParameterTypeRequiredDefaultDescription
limitintegerNoThe maximum number of results you want to retrieve per page.
sortstringNoDetermine how you want to sort results, asc for chronological order and desc for reverse chronological order.
startstringNoThe 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 messages

customerio_messaging_list_transactional_variants

List all variants of a transactional message Parameters:
ParameterTypeRequiredDefaultDescription
transactional_idintegerYesThe 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
rate_limit_email_rateintegerNoMaximum 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_spreadbooleanNoWhen 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_periodintegerNoTime period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day).
scheduled_atintegerYesUnix 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.
timezonestringNoIANA 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_enabledbooleanNoWhen 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:
ParameterTypeRequiredDefaultDescription
X-Workspace-IdintegerNoThe 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.
attachmentsobjectNoA 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_createbooleanNoIf 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.
bccstringNoBlind copy message recipients. Supports multiple addresses separated by commas. Your request can contain up to 15 total recipients between the to and bcc keys.
bodystringNoThe 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_ampstringNoYou 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_plainstringNoThe plaintext body of your message. If you provide transactional_message_id, this overrides the template’s plaintext body.
disable_css_preprocessingbooleanNoSet 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_retentionbooleanNoIf 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_bccbooleanNoIf 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).
fromstringNoThe 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.
headersstringNoA 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.
identifiersobjectNoIdentifies the person represented by your transactional message by one of, and only one of, id, email, or cio_id.
languagestringNoOverrides 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_dataobjectNoAn object containing the key-value pairs referenced using liquid in your message.
preheaderstringNoAlso 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_draftbooleanNoIf 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_tostringNoThe address that recipients can reply to, if different from the from address.
send_atintegerNoA 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_unsubscribedbooleanNoIf false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your transactional_message_id.
subjectstringNoThe subject line for your message. If you provide transactional_message_id, this overrides the template’s subject.
tostringYesThe 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>.
trackedbooleanNoIf true, Customer.io tracks opens and link clicks in your message.
transactional_message_idobjectNoThe 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:
ParameterTypeRequiredDefaultDescription
X-Workspace-IdintegerNoThe 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_createbooleanNoAccepted 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_retentionbooleanNoIf 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.
identifiersobjectYesIdentifies the person represented by your transactional message by one of, and only one of, id, email, or cio_id.
languagestringNoOverrides 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_dataobjectNoAn 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_draftbooleanNoIf 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_atintegerNoA 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_unsubscribedbooleanNoIf 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_idobjectYesThe 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:
ParameterTypeRequiredDefaultDescription
X-Workspace-IdintegerNoThe 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_createbooleanNoAccepted 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_retentionbooleanNoIf 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.
identifiersobjectYesIdentifies the person represented by your transactional message by one of, and only one of, id, email, or cio_id.
languagestringNoOverrides 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_dataobjectNoAn 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_draftbooleanNoIf 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_atintegerNoA 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_unsubscribedbooleanNoIf false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your transactional_message_id.
tostringNoOptional override for the recipient. This is typically not needed as the message is sent to the person identified by identifiers.
transactional_message_idobjectYesThe 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:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
rate_limit_email_rateintegerNoMaximum 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_spreadbooleanNoWhen 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_periodintegerNoTime 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:
ParameterTypeRequiredDefaultDescription
X-Workspace-IdintegerNoThe 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_createbooleanNoIf 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_dataobjectNoAn 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_deviceobjectNoA 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_payloadobjectNoAn 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_retentionbooleanNoIf 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.
identifiersobjectYesIdentifies the person represented by your transactional message by one of, and only one of, id, email, or cio_id.
image_urlstringNoAn image URL to show in the push. This overrides Image from the transactional template (referenced by transactional_message_id).
languagestringNoOverrides language preferences for the person you want to send your transactional message to. Use one of our supported two- or four-letter language codes.
linkstringNoA deep link to open when the push is tapped. This overrides Link from the transactional template (referenced by transactional_message_id).
messagestringNoThe message body for your notification. This overrides the notification body of the transactional template (referenced by transactional_message_id).
message_dataobjectNoAn object containing the key-value pairs referenced using liquid in your message.
queue_draftbooleanNoIf 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_atintegerNoA 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_unsubscribedbooleanNoIf false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your transactional_message_id.
soundstringNoFor iOS Only: your notification can alert users with the device’s default notification sound or play no sound at all.
titlestringNoThe title for your notification. This overrides the title of the transactional template (referenced by transactional_message_id).
tostringYesThe 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_idobjectYesThe 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:
ParameterTypeRequiredDefaultDescription
X-Workspace-IdintegerNoThe 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_createbooleanNoIf 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_retentionbooleanNoIf 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.
fromstringNoThe 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).
identifiersobjectYesIdentifies the person represented by your transactional message by one of, and only one of, id, email, or cio_id.
languagestringNoOverrides 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_dataobjectNoAn object containing the key-value pairs referenced using liquid in your message.
queue_draftbooleanNoIf 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_atintegerNoA 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_unsubscribedbooleanNoIf false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your transactional_message_id.
tostringYesThe 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_idobjectYesThe 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).

Get transactional message link metrics Parameters:
ParameterTypeRequiredDefaultDescription
transactional_idintegerYesThe 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.
periodstringNoThe unit of time for your report.
stepsintegerNoThe 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.
uniquebooleanNoIf 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:
ParameterTypeRequiredDefaultDescription
transactional_idintegerYesThe 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.
startstringNoThe 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.
limitintegerNoThe maximum number of results you want to retrieve per page.
metricstringNoDetermines the metric(s) you want to return.
statestringNoThe state of a broadcast.
start_tsintegerNoThe beginning timestamp for your query.
end_tsintegerNoThe ending timestamp for your query.
get_tracked_responsesbooleanNoIf 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:
ParameterTypeRequiredDefaultDescription
transactional_idintegerYesThe 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.
periodstringNoThe unit of time for your report.
stepsintegerNoThe 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:
ParameterTypeRequiredDefaultDescription
broadcast_idintegerYesThe ID of the broadcast that you want to trigger.
bodyobjectNoRequest body

customerio_messaging_update_newsletter_test_translation

Update a translation in a newsletter test group Parameters:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
test_group_idstringYesThe ID of the A/B test group.
languagestringYesA 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.
bodyobjectNoRequest body

customerio_messaging_update_newsletter_variant

Update a newsletter variant Parameters:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
content_idintegerYesThe 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.
bodyobjectNoRequest body

customerio_messaging_update_newsletter_variant_translation

Update a translation of a newsletter Parameters:
ParameterTypeRequiredDefaultDescription
newsletter_idintegerYesThe identifier of a newsletter.
languagestringYesA 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.
bodyobjectNoRequest body

customerio_messaging_update_transactional

Update a transactional message Parameters:
ParameterTypeRequiredDefaultDescription
transactional_idintegerYesThe 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_idintegerYesThe 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.
bccstringNoThe blind-copy address(es) for this action.
bodystringNoThe body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor.
body_ampstringNoYou 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.
createdintegerNoThe date time when the referenced ID was created.
fake_bccbooleanNoIf 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).
fromstringNoThe address that the message is from, relevant if the action type is email.
from_idintegerNoThe identifier of the from address, commonly known as the “sender”. Use List sender identities to find valid IDs.
headersobject[]NoAn 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.
idintegerNoThe identifier for an action.
languagestringNoThe 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.
namestringNoThe name of the transactional message.
preheader_textstringNoAlso known as “preview text”, this is the small block of text shown in an email inbox next to or underneath the subject line.
preprocessorstringNoBy 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.
recipientstringNoThe recipient address for an action.
reply_tostringNoThe address that receives replies for the message, if applicable.
reply_to_idintegerNoThe identifier for the reply_to address, if applicable. Use List sender identities to find valid IDs.
subjectstringNoThe subject line for an email action.
typestringNoThe type of message.
updatedintegerNoThe date time when the referenced ID was last updated.

customerio_messaging_update_transactional_variant

Update a translation of a transactional message Parameters:
ParameterTypeRequiredDefaultDescription
transactional_idintegerYesThe 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.
languagestringYesA 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.
bccstringNoThe blind-copy address(es) for this action.
bodystringNoThe body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor.
body_ampstringNoYou 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.
createdintegerNoThe date time when the referenced ID was created.
fake_bccbooleanNoIf 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).
fromstringNoThe address that the message is from, relevant if the action type is email.
from_idintegerNoThe identifier of the from address, commonly known as the “sender”. Use List sender identities to find valid IDs.
headersobject[]NoAn 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.
idintegerNoThe identifier for an action.
namestringNoThe name of the transactional message.
preheader_textstringNoAlso known as “preview text”, this is the small block of text shown in an email inbox next to or underneath the subject line.
preprocessorstringNoBy 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.
recipientstringNoThe recipient address for an action.
reply_tostringNoThe address that receives replies for the message, if applicable.
reply_to_idintegerNoThe identifier for the reply_to address, if applicable. Use List sender identities to find valid IDs.
subjectstringNoThe subject line for an email action.
typestringNoThe type of message.
updatedintegerNoThe date time when the referenced ID was last updated.