Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://api.customer.io
/v1/activities
This endpoint returns a list of "activities" for people, similar to your workspace's Activity Logs. This endpoint is guaranteed to return activity history within the past 30 days. It _might_ return data older than 30 days in some circumstances, but activites older than 30 days are not guaranteed.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| start | query | optional | string | 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. |
| type | query | optional | string | The type of activity you want to search for. Types with `_o:<object_type_id>` are for objects and types with `_r:<object_type_id>` are for relationships. |
| name | query | optional | string | The name of the event or attribute you want to return. |
| deleted | query | optional | boolean | If true, return results for deleted people. |
| customer_id | query | optional | string | The `identifier` of the person you want to look up. By default, this is a person's `id`. You can use the `id_type` parameter to look up a person by `email` or `cio_id`. If you use a person's `cio_id`, you must prefix the value value with `cio_` when using it to find or reference a person (i.e. `cio_03000010` for a `cio_id` value of 03000010). |
| id_type | query | optional | string | The type of `customer_id` you want to use to reference a person. If you don't provide this parameter, we assume that the `customer_id` in your request is a person's `id`. |
| limit | query | optional | integer | The maximum number of results you want to retrieve per page. |
GET /v1/activities
/v1/broadcast/{broadcast_id}/actions/{action_id}/metrics
Returns a list of metrics for an individual action both in total and in `steps` (days, weeks, etc) over a period of time. Stepped `series` metrics return from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/broadcast/{broadcast_id}/actions/{action_id}/metrics
/v1/broadcasts
Returns a list of your broadcasts and associated metadata.
GET /v1/broadcasts
/v1/broadcasts/{broadcast_id}
Returns metadata for an individual broadcast.
GET /v1/broadcasts/{broadcast_id}
/v1/broadcasts/{broadcast_id}/actions
Returns the actions that occur as a part of a broadcast.
GET /v1/broadcasts/{broadcast_id}/actions
/v1/broadcasts/{broadcast_id}/actions/{action_id}
Returns information about a specific action within a broadcast.
GET /v1/broadcasts/{broadcast_id}/actions/{action_id}
/v1/broadcasts/{broadcast_id}/actions/{action_id}
Update the contents of a broadcast action, including the body of messages or HTTP requests.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BroadcastsUpdateActionContentsRequest"
}
}
}
}
PUT /v1/broadcasts/{broadcast_id}/actions/{action_id}
/v1/broadcasts/{broadcast_id}/actions/{action_id}/language/{language}
Returns information about a translation of message in a broadcast. The message is identified by the `action_id`.
GET /v1/broadcasts/{broadcast_id}/actions/{action_id}/language/{language}
/v1/broadcasts/{broadcast_id}/actions/{action_id}/language/{language}
Update a translation of a specific broadcast action, including the body of messages or HTTP requests.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BroadcastsUpdateTranslationRequest"
}
}
}
}
PUT /v1/broadcasts/{broadcast_id}/actions/{action_id}/language/{language}
/v1/broadcasts/{broadcast_id}/actions/{action_id}/metrics/links
Returns link click metrics for an individual broadcast action. Unless you specify otherwise, the response contains data for the maximum period by days (45 days). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/broadcasts/{broadcast_id}/actions/{action_id}/metrics/links
/v1/broadcasts/{broadcast_id}/messages
Returns information about the deliveries (instances of messages sent to individual people) sent from an API-triggered broadcast. Provide query parameters to refine the metrics you want to return. Use the `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return results for the 1 month period after the first trigger. If your `start_ts` and `end_ts` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request.
GET /v1/broadcasts/{broadcast_id}/messages
/v1/broadcasts/{broadcast_id}/metrics
Returns a list of metrics for an individual broadcast in `steps` (days, weeks, etc). We return metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/broadcasts/{broadcast_id}/metrics
/v1/broadcasts/{broadcast_id}/metrics/links
Returns metrics for link clicks within a broadcast, both in total and in `series` periods (days, weeks, etc). `series` metrics are ordered oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/broadcasts/{broadcast_id}/metrics/links
/v1/broadcasts/{broadcast_id}/triggers
Returns a list of the `triggers` for a broadcast.
GET /v1/broadcasts/{broadcast_id}/triggers
/v1/campaigns/{broadcast_id}/triggers/{trigger_id}
After triggering a broadcast you can retrieve the status of that broadcast using a GET of the `trigger_id`. You can retrieve the `trigger_id` from [Get broadcast triggers](https://customer.io/docs/api/app/).
GET /v1/campaigns/{broadcast_id}/triggers/{trigger_id}
/v1/campaigns/{broadcast_id}/triggers/{trigger_id}/errors
If your broadcast produced validation errors, this endpoint can help you better understand what went wrong. Broadcast errors are generally issues in your broadcast audience and associated.
GET /v1/campaigns/{broadcast_id}/triggers/{trigger_id}/errors
/v1/campaigns
Returns a list of your campaigns and associated metadata.
GET /v1/campaigns
/v1/campaigns/{campaign_id}
Returns metadata for an individual campaign.
GET /v1/campaigns/{campaign_id}
/v1/campaigns/{campaign_id}/actions
Returns the operations in a campaign workflow. Each object in the response represents an action or 'tile' in the campaign builder. This endpoint returns up to 10 `actions` at a time. If there is another page of results, the response will include a `next` string. Pass this string as the `start` parameter to get the next page of results.
GET /v1/campaigns/{campaign_id}/actions
/v1/campaigns/{campaign_id}/actions/{action_id}
Returns information about a specific action in a campaign.
GET /v1/campaigns/{campaign_id}/actions/{action_id}
/v1/campaigns/{campaign_id}/actions/{action_id}
Update the contents of a campaign action, including the body of messages and HTTP requests.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CampaignsUpdateActionContentsRequest"
}
}
}
}
PUT /v1/campaigns/{campaign_id}/actions/{action_id}
/v1/campaigns/{campaign_id}/actions/{action_id}/language/{language}
Returns a translated version of a message in a campaign. The message is identified by the `action_id`.
GET /v1/campaigns/{campaign_id}/actions/{action_id}/language/{language}
/v1/campaigns/{campaign_id}/actions/{action_id}/language/{language}
Update the contents of a language variant of a campaign action, including the body of the messages and HTTP requests.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CampaignsUpdateTranslationRequest"
}
}
}
}
PUT /v1/campaigns/{campaign_id}/actions/{action_id}/language/{language}
/v1/campaigns/{campaign_id}/actions/{action_id}/metrics
Returns a list of metrics for an individual action both in total and in `steps` (days, weeks, etc) over a period of time. Stepped `series` metrics return from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/campaigns/{campaign_id}/actions/{action_id}/metrics
/v1/campaigns/{campaign_id}/actions/{action_id}/metrics/links
Returns link click metrics for an individual action. Unless you specify otherwise, the response contains data for the maximum period by days (45 days). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/campaigns/{campaign_id}/actions/{action_id}/metrics/links
/v1/campaigns/{campaign_id}/journey_metrics
Returns a list of Journey Metrics for your campaign. These metrics show how many people triggered your campaign, were messaged, etc for the time period and "resolution" you set. You must provide the `start`, `end`, and `resolution` parameters or your request will return `400`. Metrics in the response are arrays, and each index in the array corresponds to the `resolution` in your request. If you request metrics in `days`, the first result in each metric array is the first day of results and each successive increment represents another day. Each increment represents the number of journeys that started within a time period and eventually achieved a particular metric. For example, array index 0 for the `converted` metric represents the number of journeys that started on the first day/month of results that achieved a conversion.
GET /v1/campaigns/{campaign_id}/journey_metrics
/v1/campaigns/{campaign_id}/messages
Returns information about the deliveries (instances of messages sent to individual people) sent from a campaign. Provide query parameters to refine the metrics you want to return. Use the `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return the most recent 6 months of messages. If your `start_ts` and `end_ts` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request.
GET /v1/campaigns/{campaign_id}/messages
/v1/campaigns/{campaign_id}/metrics
Returns a list of metrics for an individual campaign in `steps` (days, weeks, etc). We return metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/campaigns/{campaign_id}/metrics
/v1/campaigns/{campaign_id}/metrics/links
Returns metrics for link clicks within a campaign, both in total and in `series` periods (days, weeks, etc). `series` metrics are ordered oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/campaigns/{campaign_id}/metrics/links
/v1/collections
Returns a list of all of your collections, including the `name` and `schema` for each collection.
GET /v1/collections
/v1/collections
Create a new collection and provide the `data` that you'll access from the collection or the `url` that you'll download CSV or JSON data from. **Note**: A collection cannot be more than 10 MB in size. No individual row in the collection can be more than 10 KB.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CollectionsCreateNewRequest"
},
"example": {
"data": [
{
"presents": {
"total": 2,
"something_you_need": "socks",
"something_you_want": "toys"
},
"eventDate": "2021-12-25T12:00:00.000Z",
"eventName": "christmas"
},
{
"presents": {
"total": 2,
"something_you_need": "books",
"something_you_want": "video games"
},
"eventDate": "2021-03-15T12:00:00.000Z",
"eventName": "birthday"
}
],
"name": "events"
}
}
}
}
POST /v1/collections
/v1/collections/{collection_id}
Remove a collection and associated contents. Before you delete a collection, make sure that you aren't referencing it in active campaign messages or broadcasts; references to a deleted collection will appear empty and may prevent your messages from making sense to your audience.
DELETE /v1/collections/{collection_id}
/v1/collections/{collection_id}
Retrieves details about a collection, including the `schema` and `name`. This request does not include the `content` of the collection (the values associated with keys in the schema).
GET /v1/collections/{collection_id}
/v1/collections/{collection_id}
Update the `name` or replace the contents of a collection. Updating the `data` or `url` for your collection fully replaces the contents of the collection. **Note**: * If you reference your collection by name in active campaign messages, changing the name of the collection will cause references to the previous name to return an empty data set. * A collection cannot be more than 10 MB in size. No individual row in the collection can be more than 10 KB.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CollectionsUpdateCollectionRequest"
},
"example": {
"data": [
{
"presents": {
"total": 2,
"something_you_need": "socks",
"something_you_want": "toys"
},
"eventDate": "2021-12-25T12:00:00.000Z",
"eventName": "christmas"
},
{
"presents": {
"total": 2,
"something_you_need": "books",
"something_you_want": "video games"
},
"eventDate": "2021-03-15T12:00:00.000Z",
"eventName": "birthday"
}
],
"name": "events"
}
}
}
}
PUT /v1/collections/{collection_id}
/v1/collections/{collection_id}/content
Retrieve the contents of a collection (the `data` from when you created or updated a collection). Each `row` in the collection is represented as a JSON blob in the response.
GET /v1/collections/{collection_id}/content
/v1/collections/{collection_id}/content
Replace the contents of a collection (the `data` from when you created or updated a collection). The request is a free-form object containing the keys you want to reference from the collection and the corresponding values. This request replaces the current contents of the collection entirely. If you don't want to update the contents directly—you want to change the `name` or data `url` for your collection, use the [update a collection](https://customer.io/docs/api/app/) endpoint. **Note**: A collection cannot be more than 10 MB in size. No individual row in the collection can be more than 10 KB.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CollectionsUpdateContentsRequest"
},
"example": {
"presents": {
"total": 2,
"something_you_need": "socks",
"something_you_want": "toys"
},
"eventDate": "2021-12-25T12:00:00.000Z",
"eventName": "christmas"
}
}
},
"description": "Your request is a free form object representing the contents of your collection. This request replaces the contents of the collection entirely, so include all contents that you want to remain in the collection—whether they change or not."
}
PUT /v1/collections/{collection_id}/content
/v1/customers
Return a list of people in your workspace matching an email address.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| query | required | string | The email address you want to search for. |
GET /v1/customers
/v1/customers
Provide a filter to search for people in your workspace. Your filter can filter people by segment (using the Segment ID) and attribute values; when you filter by attributes, you can use `eq` (matching an attribute value) or `exists` (matching when a person has the attribute). Use the `and` array, `or` array, and `not` object to create a complex filter. The `not` selector is an object that takes a single filter. Returns arrays of `identifiers` and `ids`. In general, you should rely on the newer `identifiers` array, which contains more complete information about each person captured by the filter in your request, than the `ids` array, which only contains `id` values. You can return up to 1000 people per request. If you want to return a larger set of people in a single request, you may want to use the [`/exports`](https://customer.io/docs/api/app/) API instead.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| start | query | optional | string | 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 | query | optional | integer | The maximum number of results you want to retrieve per page. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomersSearchFilterRequest"
},
"example": {
"filter": {
"and": [
{
"segment": {
"id": 4
}
},
{
"attribute": {
"field": "likes_pizza",
"value": true,
"operator": "eq"
}
}
]
}
}
}
}
}
POST /v1/customers
/v1/customers/attributes
Return attributes and devices for up to 100 customers by ID. If an ID in the request does not exist, the response omits it.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CustomersListAttributesDevicesRequest"
}
}
}
}
POST /v1/customers/attributes
/v1/customers/{customer_id}/activities
Return a list of activities performed by, or for, a customer. Activities are things like attribute changes and message sends.
GET /v1/customers/{customer_id}/activities
/v1/customers/{customer_id}/attributes
Return a list of attributes for a customer profile. You can use attributes to fashion segments or as liquid merge fields in your messages.
GET /v1/customers/{customer_id}/attributes
/v1/customers/{customer_id}/messages
Returns information about the deliveries sent to a person. Provide query parameters to refine the data you want to return. Use the `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return the most recent 6 months of messages. If your `start_ts` and `end_ts` range is more than 6 months, we'll return 6 months of data from the most recent timestamp in your request.
GET /v1/customers/{customer_id}/messages
/v1/customers/{customer_id}/relationships
Return a list of objects that a person is related to. You can use the `start` parameter with the `next` property in responses to return pages of results. However, it's possible that you'll see duplicate entries across pages. If you want to export objects or relationships, you may want to use the export feature in our UI to return complete results.
GET /v1/customers/{customer_id}/relationships
/v1/customers/{customer_id}/segments
Returns a list of segments that a customer profile belongs to.
GET /v1/customers/{customer_id}/segments
/v1/customers/{customer_id}/subscription_preferences
Returns a list of subscription preferences for a person, including the custom header of the subscription preferences page, topic names, and topic descriptions. Returns translated data when you send a language in the query.
GET /v1/customers/{customer_id}/subscription_preferences
/v1/esp/search_suppression/{email_address}
Look up an email address to learn if, and why, it was suppressed by the email service provider (ESP).
GET /v1/esp/search_suppression/{email_address}
/v1/esp/suppression/{suppression_type}
Find addresses suppressed by the Email Service Provider (ESP) for a particular reason—bounces, blocks, spam reports, or invalid email addresses. You can get up to 1000 addresses per request. Use the `offset` parameter to get addresses beyond the first 1000.
GET /v1/esp/suppression/{suppression_type}
/v1/esp/suppression/{suppression_type}/{email_address}
Remove an address from the ESP's suppression list.
DELETE /v1/esp/suppression/{suppression_type}/{email_address}
/v1/esp/suppression/{suppression_type}/{email_address}
Suppress an email address at the email service provider (ESP). Addresses suppressed this way are only suppressed through the ESP; these adresses are _not_ suppressed in Customer.io, so the person can remain in your workspace (though emails to the address would be blocked at the ESP).
POST /v1/esp/suppression/{suppression_type}/{email_address}
/v1/exports
Return a list of your exports. Exports are point-in-time people or campaign metrics.
GET /v1/exports
/v1/exports/customers
Provide filters and attributes describing the customers you want to export. This endpoint returns export metadata; use the `/exports/{export_id}/endpoint` to download your export.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExportsCreateCustomerExportRequest"
},
"example": {
"filters": {
"and": [
{
"segment": {
"id": 3
}
},
{
"or": [
{
"attribute": {
"field": "interest",
"value": "roadrunners",
"operator": "eq"
}
},
{
"attribute": {
"field": "state",
"value": "NM",
"operator": "eq"
}
},
{
"not": {
"attribute": {
"field": "species",
"value": "roadrunners",
"operator": "eq"
}
}
}
]
}
]
}
}
}
}
}
POST /v1/exports/customers
/v1/exports/deliveries
Provide filters for the newsletter, campaign, or action you want to return delivery information from. This endpoint starts an export, but you cannot download your export from this endpoint. Use the `/exports/{export_id}` endpoint to download your export. Use the `start` and `end` to find messages within a time range. If your request doesn't include `start` and `end` parameters, we'll return the most recent 6 months of messages. If your `start` and `end` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ExportsExportDeliveriesInfoRequest"
}
}
}
}
POST /v1/exports/deliveries
/v1/exports/{export_id}
Return information about a specific export.
GET /v1/exports/{export_id}
/v1/exports/{export_id}/download
This endpoint returns a signed link to download an export. The link expires after 15 minutes.
GET /v1/exports/{export_id}/download
/v1/imports
This endpoint lets you upload a CSV file containing people, events, objects, or relationships. It provides a handy way of adding and updating them in bulk. Uploading people, objects, or relationships is like performing an [`identify` call](https://customer.io/docs/api/app/) for each row in your CSV; uploading events is like performing a [`track` call](https://customer.io/docs/api/app/). You'll need to provide us the public URL of your CSV as a part of this operation. We recommend that you host your CSVs from short-lived URLs. Ideally, your URLs will expire 2 hours after you initiate an import so that your customers' information doesn't remain publicly available after you've uploaded it to us. Check out the CSV requirements based on what you're importing: [people](https://customer.io/docs/api/app/), [events](https://customer.io/docs/api/app/), and [objects or relationships](https://customer.io/docs/api/app/).
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImportsBulkUploadCsvRequest"
}
}
}
}
POST /v1/imports
/v1/imports/{import_id}
This endpoint returns information about an "import"—a CSV file containing a group of people or events you uploaded to using `v1/imports` endpoint. You can use this endpoint to check to status of imports, or find out how many rows you successfully imported from a CSV file.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| import_id | path | required | integer | The `id` of the import you want to lookup. This value is [returned from a successful import](https://customer.io/docs/api/app/). |
GET /v1/imports/{import_id}
/v1/info/ip_addresses
Returns a list of IP addresses that you need to allowlist if you're using a firewall or [Custom SMTP](https://customer.io/docs/api/app/) provider's IP access management settings to deny access to unknown IP addresses. These addresses apply to all message types and webhooks, except push notifications.
GET /v1/info/ip_addresses
/v1/messages
Return a list of deliveries, including metrics for each delivery, for messages in your workspace. The request body contains filters determining the deliveries you want to return information about. Use the `start_ts` and `end_ts` parameters to find messages within a time range. We limit your requests to 6 months. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return the most recent 6 months of deliveries. If `start_ts` is greater than 6-months before `end_ts`, we only send back 6 months of data. If only `end_ts` is specified, we return 6 months of data before this timestamp. If only `start_ts` is specified, we then set the `end_ts` to the current time and deliver 6 months of data prior to this timestamp.
GET /v1/messages
/v1/messages/{message_id}
Return a information about, and metrics for, a delivery—the instance of a message intended for an individual recipient person.
GET /v1/messages/{message_id}
/v1/messages/{message_id}/archived_message
Returns the archived copy of a delivery, including the message body, recipient, and metrics. This endpoint is limited to 100 requests per day.
GET /v1/messages/{message_id}/archived_message
/v1/newsletters
Returns a list of your newsletters and associated metadata.
GET /v1/newsletters
/v1/newsletters/{newsletter_id}
Returns metadata for an individual newsletter.
GET /v1/newsletters/{newsletter_id}
/v1/newsletters/{newsletter_id}/contents
Returns the content variants of a newsletter—these are either different languages in a multi-language newsletter or A/B tests.
GET /v1/newsletters/{newsletter_id}/contents
/v1/newsletters/{newsletter_id}/contents/{content_id}
Returns information about a specific variant of a newsletter, where a variant is either a language in a multi-language newsletter or a part of an A/B test.
GET /v1/newsletters/{newsletter_id}/contents/{content_id}
/v1/newsletters/{newsletter_id}/contents/{content_id}
Update the contents of a newsletter variant (a specific language of your message or a part of an A/B test), including the body of a newsletter.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NewslettersUpdateVariantContentsRequest"
}
}
}
}
PUT /v1/newsletters/{newsletter_id}/contents/{content_id}
/v1/newsletters/{newsletter_id}/contents/{content_id}/metrics
Returns a metrics for an individual newsletter variant—either an individual language in a multi-language newsletter or a message in an A/B test. This endpoint returns metrics both in total and in `steps` (days, weeks, etc) over a `period` of time. Stepped `series` metrics are arranged from oldest to newest (i.e. the 0-index for any result is the oldest period/step). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/newsletters/{newsletter_id}/contents/{content_id}/metrics
/v1/newsletters/{newsletter_id}/contents/{content_id}/metrics/links
Returns link click metrics for an individual newsletter variant—an individual language in a multi-language newsletter or a message in an A/B test. Unless you specify otherwise, the response contains data for the maximum period by days (45 days). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/newsletters/{newsletter_id}/contents/{content_id}/metrics/links
/v1/newsletters/{newsletter_id}/language/{language}
Returns information about a specific language variant of a newsletter. If your newsletter includes A/B tests, use [Get a translation in a newsletter test group](https://customer.io/docs/api/app/).
GET /v1/newsletters/{newsletter_id}/language/{language}
/v1/newsletters/{newsletter_id}/language/{language}
Update the translation of a newsletter variant. If your newsletter includes A/B tests, use [Update a translation in a newsletter test group](https://customer.io/docs/api/app/).
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NewslettersUpdateTranslationRequest"
}
}
}
}
PUT /v1/newsletters/{newsletter_id}/language/{language}
/v1/newsletters/{newsletter_id}/messages
Returns information about the deliveries (instances of messages sent to individual people) sent from a newsletter. Provide query parameters to refine the metrics you want to return. Use the `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return up to 6 months of results beginning with the first delivery generated from the newsletter. If your `start_ts` and `end_ts` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request.
GET /v1/newsletters/{newsletter_id}/messages
/v1/newsletters/{newsletter_id}/metrics
Returns a list of metrics for an individual newsletter in `steps` (days, weeks, etc). We return metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/newsletters/{newsletter_id}/metrics
/v1/newsletters/{newsletter_id}/metrics/links
Returns metrics for link clicks within a newsletter, both in total and in `series` periods (days, weeks, etc). `series` metrics are ordered oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/newsletters/{newsletter_id}/metrics/links
/v1/newsletters/{newsletter_id}/test_group/{test_group_id}/language/{language}
Returns information about a specific language variant of a newsletter in an A/B test group. You can retrieve `test_group_ids` from [Get variants in a newsletter test group](https://customer.io/docs/api/app/).
GET /v1/newsletters/{newsletter_id}/test_group/{test_group_id}/language/{language}
/v1/newsletters/{newsletter_id}/test_group/{test_group_id}/language/{language}
Update the translation of a newsletter variant in an A/B test. You can retrieve a list of `test_group_ids` from [Get variants in a newsletter test group](https://customer.io/docs/api/app/).
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NewslettersUpdateTranslationRequest1"
}
}
}
}
PUT /v1/newsletters/{newsletter_id}/test_group/{test_group_id}/language/{language}
/v1/newsletters/{newsletter_id}/test_groups
Returns information about each test group in a newsletter, including content ids for each group.
GET /v1/newsletters/{newsletter_id}/test_groups
/v1/object_types
Returns a list of object types in your system. Because each object type is an incrementing ID, you may need to use this endpoint to find the ID of the object type you want to query, create, or modify.
GET /v1/object_types
/v1/objects
Use a set of filter conditions to find objects in your workspace. Returns a list of object IDs that you can use to look up object attributes, or to create or modify objects. The list is paged if you have a large number of objects. You can set the `limit` for the number of objects returned, and use the `start` to page through the results. It's possible that you'll see duplicate entries across pages. If you want to export objects or relationships, you may want to use the export feature in our UI to return complete results.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| start | query | optional | string | 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 | query | optional | integer | The maximum number of results you want to retrieve per page. |
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectsFindObjectsFilterRequest"
}
}
},
"description": "The `object_type_id` you want to search in, and the `filter` you want to apply to find objects. Both are required. The object called `object_attribute` requires `type_id`, as well, which should match the `object_type_id`."
}
POST /v1/objects
/v1/objects/{object_type_id}/{object_id}/attributes
Get a list of attributes for an object. Attributes are things you know about an object—like an account name, billing date, etc.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| object_type_id | path | required | integer | The object type an object belongs to—like "Companies" or "Accounts". Object type IDs begin at `1` and increment for each new type. |
| object_id | path | required | string | The `object_id` or `cio_object_id` of an object, depending on the `id_type` specified in query params. `id_type` defaults to `object_id`. |
| id_type | query | optional | string |
GET /v1/objects/{object_type_id}/{object_id}/attributes
/v1/objects/{object_type_id}/{object_id}/relationships
Get a list of people people related to an object. You can use the `start` parameter with the `next` property in responses to return pages of results. However, it's possible that you'll see duplicate entries across pages. If you want to export objects or relationships, you may want to use the export feature in our UI to return complete results.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| object_type_id | path | required | integer | The object type an object belongs to—like "Companies" or "Accounts". Object type IDs begin at `1` and increment for each new type. |
| object_id | path | required | string | The `object_id` or `cio_object_id` of an object, depending on the `id_type` specified in query params. `id_type` defaults to `object_id`. |
| start | query | optional | string | 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 | query | optional | integer | The maximum number of results you want to retrieve per page. |
| id_type | query | optional | string |
GET /v1/objects/{object_type_id}/{object_id}/relationships
/v1/reporting_webhooks
Return a list of all of your reporting webhooks
GET /v1/reporting_webhooks
/v1/reporting_webhooks
Create a new webhook configuration.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReportingWebhooksCreateWebhookConfigRequest"
}
}
}
}
POST /v1/reporting_webhooks
/v1/reporting_webhooks/{webhook_id}
Delete a reporting webhook's configuration.
DELETE /v1/reporting_webhooks/{webhook_id}
/v1/reporting_webhooks/{webhook_id}
Returns information about a specific reporting webhook.
GET /v1/reporting_webhooks/{webhook_id}
/v1/reporting_webhooks/{webhook_id}
Update the configuration of a reporting webhook. Turn events on or off, change the webhook URL, etc.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReportingWebhooksUpdateConfigurationRequest"
}
}
}
}
PUT /v1/reporting_webhooks/{webhook_id}
/v1/segments
Retrieve a list of all of your segments.
GET /v1/segments
/v1/segments
Create a manual segment with a name and a description. This request creates an empty segment.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SegmentsCreateManualSegmentRequest"
}
}
}
}
POST /v1/segments
/v1/segments/{segment_id}
Delete a manual segment.
DELETE /v1/segments/{segment_id}
/v1/segments/{segment_id}
Return information about a segment.
GET /v1/segments/{segment_id}
/v1/segments/{segment_id}/customer_count
Returns the membership count for a segment.
GET /v1/segments/{segment_id}/customer_count
/v1/segments/{segment_id}/membership
Returns customers in a segment. This endpoint returns an array of `identifiers`; each object in the array represents a person and contains the identifier values allowed in your workspace. In general, we recommend that you use `identifiers` rather than `ids` to find people, because it provides more information. **If your workspace does not use email as a unique identifier** for people, `identifiers` does not contain `email` values. Go to your [Workspace Settings](https://customer.io/docs/api/app/) to find out which identifiers your workspace supports. The `ids` array only lists ID values for people in a segment; if your workspace uses both `email` and `id` as identifiers, it's possible that a member of your segment does not have an `id` value, resulting in an empty string in the `ids` array.
GET /v1/segments/{segment_id}/membership
/v1/segments/{segment_id}/used_by
Use this endpoint to find out which campaigns and newsletters use a segment.
GET /v1/segments/{segment_id}/used_by
/v1/campaigns/{broadcast_id}/triggers
Manually trigger a broadcast, and provide data to populate messages in your trigger. The shape of the request changes based on the type of audience you broadcast to: a segment, a list of emails, a list of customer IDs, a map of users, or a data file. You can reference properties in the `data` object from this request using liquid—`{{trigger.<property_in_data_obj>}}`. If your broadcast produces a `422` error, you can [get more information about the errors](https://customer.io/docs/api/app/) to see what went wrong. **This endpoint is rate-limited to one request every 10 seconds.** After exceeding this, you'll receive a status of 429. Broadcasts are optimized to send messages to a large audience and not for one-to-one interactions. Use our [transactional API](https://customer.io/docs/api/app/) or event-triggered campaigns to respond to your audience on an individual, one-to-one basis.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SendMessagesTriggerBroadcastRequest"
},
"x-rate-limit": 10
}
}
}
POST /v1/campaigns/{broadcast_id}/triggers
/v1/send/email
Send a transactional email. You can send a message using a `transactional_message_id` or send your own `body`, `subject`, and `from` values at send time. The `transactional_message_id` can be either the numerical ID for the template or the *Trigger Name* that you assigned the template. If you want to send your own `body`, `subject`, and `from` values to populate your message at send time, we recommend that you pass a `transactional_message_id` anyway; the values you pass in the request will override the template. You can find your `transactional_message_id` from the code sample in the **Overview** tab for your transactional message in the user interface, or you can look up a list of your transactional messages through the [App API](https://customer.io/docs/api/app/). Customer.io attributes metrics to a `transactional_message_id`; if you don't provide a `transactional_message_id`, we attribute metrics to `"transactional_message_id": 1`. You can create empty transactional messages in the UI and override the `body`, `subject`, and `from` values at send time. This provides flexibility in your integration and lets you organize metrics (rather than gathering metrics for all of your transactional messages against a single ID).
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SendMessagesTransactionalEmailRequest"
}
}
}
}
POST /v1/send/email
/v1/send/push
Send a transactional push. You send a message using a `transactional_message_id` for a transactional push message template composed in the user interface. You can optionally override any of the template values at send time. The `transactional_message_id` can be either the numerical ID for the template or the *Trigger Name* that you assigned the template. You can find your `transactional_message_id` from the code sample in the **Overview** tab for your transactional message in the user interface, or you can look up a list of your transactional messages through the [App API](https://customer.io/docs/api/app/).
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SendMessagesTransactionalPushRequest"
}
}
}
}
POST /v1/send/push
/v1/sender_identities
Returns a list of senders in your workspace. Senders are who your messages are "from".
GET /v1/sender_identities
/v1/sender_identities/{sender_id}
Returns information about a specific sender.
GET /v1/sender_identities/{sender_id}
/v1/sender_identities/{sender_id}/used_by
Returns lists of the campaigns and newsletters that use a sender.
GET /v1/sender_identities/{sender_id}/used_by
/v1/snippets
Returns a list of snippets in your workspace. Snippets are pieces of reusable content, like a common footer for your emails.
GET /v1/snippets
/v1/snippets
In your payload, you'll pass a `name` and `value`. Snippet names are unique. If the snippet `name` does not exist, we'll create a new snippet. If the `name` exists, we'll update the existing snippet.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SnippetsCreateOrUpdateRequest"
}
}
}
}
PUT /v1/snippets
/v1/snippets/{snippet_name}
Remove a snippet. You can only remove a snippet that is not in use. If your snippet is in use, you'll receive a `400` error.
DELETE /v1/snippets/{snippet_name}
/v1/subscription_topics
Returns a list of subscription topics in your workspace. If there are no topics, it returns an empty array.
GET /v1/subscription_topics
/v1/transactional
Returns a list of your transactional messages—the transactional IDs that you use to trigger an individual transactional delivery. This endpoint does not return information about deliveries (instances of a message sent to a person) themselves.
GET /v1/transactional
/v1/transactional/{transactional_id}
Returns information about an individual transactional message.
GET /v1/transactional/{transactional_id}
/v1/transactional/{transactional_id}/content/{content_id}
Update the body of a transactional email. This fully overwrites your existing transactional message. We'll use your updated content for any future transactional requests (`/v1/send/email`), so make sure that you test your message before you update it.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TransactionalUpdateMessageContentRequest"
}
}
}
}
PUT /v1/transactional/{transactional_id}/content/{content_id}
/v1/transactional/{transactional_id}/contents
Returns the content variants of a transactional message, where each variant represents a different language.
GET /v1/transactional/{transactional_id}/contents
/v1/transactional/{transactional_id}/language/{language}
Returns information about a translation of an individual transactional message, including the message content.
GET /v1/transactional/{transactional_id}/language/{language}
/v1/transactional/{transactional_id}/language/{language}
Update the body and other data of a specific language variant for a transactional message. This fully overwrites this specific translation of your existing transactional message.
{
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TransactionalUpdateTranslationRequest"
}
}
}
}
PUT /v1/transactional/{transactional_id}/language/{language}
/v1/transactional/{transactional_id}/messages
Returns information about the deliveries (instances of messages sent to individual people) from a transactional message. Provide query parameters to refine the metrics you want to return. Use the `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return the most recent 6 months of messages. If your `start_ts` and `end_ts` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request.
GET /v1/transactional/{transactional_id}/messages
/v1/transactional/{transactional_id}/metrics
Returns a list of metrics for a transactional message in `steps` (days, weeks, etc). We return metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/transactional/{transactional_id}/metrics
/v1/transactional/{transactional_id}/metrics/links
Returns metrics for clicked links from a transactional message, both in total and in `series` periods (days, weeks, etc). `series` metrics are ordered oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
GET /v1/transactional/{transactional_id}/metrics/links
/v1/workspaces
Returns a list of workspaces in your account.
GET /v1/workspaces
ActivitiesListResponse
{
"type": "object",
"properties": {
"next": {
"type": "string",
"description": "Indicates the next page of results. Add `?start=<next_value>` to the request to get the next page of results."
},
"activities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "01AK4N8V8G8KVA4HN8Y50CCZ59",
"description": "The identifier for the action."
},
"data": {
"oneOf": [
{
"type": "object",
"title": "Message delivery",
"example": {
"opened": null,
"delivered": null,
"delivery_id": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ=="
},
"properties": {
"opened": {
"type": "boolean",
"nullable": true,
"description": "Indicates whether or not a customer opened a message, if the message was delivered."
},
"delivered": {
"type": "integer",
"format": "unix timestamp",
"nullable": true,
"description": "The date-time when the message was delivered, if applicable."
},
"delivery_id": {
"type": "string",
"description": "The message ID."
}
}
},
{
"type": "object",
"title": "Attribute change",
"example": {
"email": {
"to": "newPerson@customer.io",
"from": "newPerson@example.com"
}
},
"description": "The name of the object is the attribute that changed.",
"additionalProperties": {
"type": "object",
"properties": {
"to": {
"type": "string",
"description": "The new attribute value."
},
"from": {
"type": "string",
"description": "The old attribute value. If empty, the customer probably didn't bear the attribute before this action."
}
},
"x-additionalPropertyName": "Attribute Name"
}
}
]
},
"type": {
"enum": [
"attempted_action",
"attribute_change",
"failed_attribute_change",
"failed_batch_update",
"skipped_update",
"failed_query_collection",
"event",
"failed_event",
"page",
"drafted_email",
"attempted_email",
"sent_email",
"delivered_email",
"opened_email",
"clicked_email",
"converted_email",
"bounced_email",
"failed_email",
"unsubscribed_email",
"topic_unsubscribed_email",
"spammed_email",
"dropped_email",
"undeliverable_email",
"drafted_action",
"delivered_action",
"bounced_action",
"sent_action",
"opened_action",
"clicked_action",
"failed_action",
"converted_action",
"device_change",
"deferred_email",
"unsubscribed_action",
"dropped_action",
"undeliverable_action",
"deferred_action",
"profile_create",
"profile_delete",
"profile_merge",
"anon_merge",
"screen",
"webhook_event",
"add_relationship",
"delete_relationship",
"_o:<object_type_id>:create",
"_o:<object_type_id>:attribute_change",
"_o:<object_type_id>:failed_attribute_change",
"_o:<object_type_id>:delete",
"_o:<object_type_id>:add_relationship",
"_o:<object_type_id>:delete_relationship",
"_r:<object_type_id>:attribute_change",
"_r:<object_type_id>:failed_attribute_change",
"failed_object_journeys"
],
"type": "string",
"example": "sent_email",
"description": "The type of activity. Types with `_o:<object_type_id>` are for objects and types with `_r:<object_type_id>` are for relationships."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1397566226,
"description": "The date and time when the action occurred."
},
"customer_id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The message ID."
},
"delivery_type": {
"enum": [
"ios",
"android",
"email",
"phone"
],
"type": "string",
"example": "email",
"description": "The recipient device, if applicable."
},
"customer_identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
}
}
}
}
}
}
BroadcastsGetActionDetailsResponse
{
"type": "object",
"properties": {
"action": {
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"readOnly": true,
"description": "The identifier for a broadcast."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
}
}
]
}
}
}
BroadcastsGetActionLinkMetricsResponse
{
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"link": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1234,
"description": "The ID of the link."
},
"href": {
"type": "string",
"example": "https://customer.io/docs",
"description": "The link destination—a URL, mailto, etc."
}
}
},
"metric": {
"type": "object",
"properties": {
"series": {
"type": "object",
"properties": {
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
1,
3,
5,
7
],
"description": "An array of results from oldest to newest, where each result indicates a period."
}
}
}
},
"description": "Contains metrics for the link."
}
}
},
"description": "Each object in the array represents a link in your broadcast variant."
}
}
}
BroadcastsGetActionMetricsResponse
{
"type": "object",
"properties": {
"metric": {
"type": "object",
"properties": {
"series": {
"allOf": [
{
"type": "object",
"properties": {
"2xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "2xx responses by period, representative of webhook performance."
},
"3xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "3xx responses by period, representative of webhook performance."
},
"4xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "4xx responses by period, representative of webhook performance."
},
"5xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "5xx responses by period, representative of webhook performance."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
},
{
"type": "object",
"properties": {
"sent": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of sent messages."
},
"failed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `failed` messages."
},
"opened": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `opened` messages."
},
"bounced": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `bounced` messages."
},
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `clicked` messages."
},
"created": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `created` messages."
},
"drafted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `drafted` messages."
},
"spammed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of spam complaints."
},
"deferred": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `deferred` messages."
},
"attempted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `attempted` messages."
},
"converted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `converted` messages."
},
"delivered": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `delivered` messages."
},
"suppressed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `suppressed` messages."
},
"unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of unsubscribes attributed to the campaign or message."
},
"undeliverable": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `undeliverable` messages."
},
"topic_unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of topic unsubscribes in a given period."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
}
]
}
}
}
}
}
BroadcastsGetActionsResponse
{
"type": "object",
"properties": {
"actions": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"readOnly": true,
"description": "The identifier for a broadcast."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
}
}
]
}
}
}
}
BroadcastsGetBroadcastErrorsResponse
{
"type": "object",
"properties": {
"next": {
"type": "string",
"description": "Indicates the next page of results. Add `?start=<next_value>` to the request to get the next page of results."
},
"errors": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of errors in the format `line <x>: <error text>` to help you troubleshoot errors associated with your audience or data file."
}
}
}
BroadcastsGetLinkMetricsResponse
{
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"link": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1234,
"description": "The ID of the link."
},
"href": {
"type": "string",
"example": "https://customer.io/docs",
"description": "The link destination—a URL, mailto, etc."
}
}
},
"metric": {
"type": "object",
"properties": {
"series": {
"type": "object",
"properties": {
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
1,
3,
5,
7
],
"description": "An array of results from oldest to newest, where each result indicates a period."
}
}
}
},
"description": "Contains metrics for the link."
}
}
}
}
}
}
BroadcastsGetMessagesResponse
{
"type": "object",
"properties": {
"messages": {
"type": "array",
"items": {
"type": "object",
"example": {
"id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=X",
"type": "email",
"created": 1619137767,
"metrics": {
"sent": 1619137768,
"delivered": 1619137768
},
"subject": "Did you get that thing I sent you?",
"action_id": 215,
"forgotten": false,
"recipient": "person@example.com",
"content_id": null,
"campaign_id": 23,
"customer_id": null,
"broadcast_id": null,
"newsletter_id": null,
"deduplicate_id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=:1619137768",
"failure_message": null,
"msg_template_id": 43,
"parent_action_id": null,
"trigger_event_id": null
},
"properties": {
"id": {
"type": "string",
"example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
"readOnly": true,
"description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"metrics": {
"type": "object",
"properties": {
"sent": {
"type": "integer",
"description": "The timestamp when the message was `sent`."
},
"failed": {
"type": "integer",
"description": "The timestamp when the message `failed`."
},
"opened": {
"type": "integer",
"description": "The timestamp when the message was `opened`."
},
"bounced": {
"type": "integer",
"description": "The timestamp when the message `bounced`."
},
"clicked": {
"type": "integer",
"description": "The timestamp when the message was `clicked`."
},
"created": {
"type": "integer",
"description": "The timestamp when the message was `created`."
},
"drafted": {
"type": "integer",
"description": "The timestamp when the message was `drafted`."
},
"dropped": {
"type": "integer",
"description": "The timestamp when the message was `dropped`."
},
"spammed": {
"type": "integer",
"description": "The timestamp when the message was marked as spam."
},
"converted": {
"type": "integer",
"description": "The timestamp when the message was `converted`."
},
"delivered": {
"type": "integer",
"description": "The timestamp when the message was `delivered`."
},
"unsubscribed": {
"type": "integer",
"description": "The timestamp when a person unsubscribed based on this message."
},
"undeliverable": {
"type": "integer",
"description": "The timestamp when the message became `undeliverable`."
}
},
"description": "Metrics for an individual instance of a message; each item in the object represents the timestamp when a message achieved a particular metric. This object only contains metrics that have been recorded."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"action_id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"forgotten": {
"type": "boolean",
"description": "If true message contents are not retained by Customer.io."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"content_id": {
"type": "integer",
"example": 1,
"nullable": true,
"readOnly": true,
"description": "The identifier for a newsletter variant."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"failure_message": {
"type": "string",
"nullable": true,
"description": "Explains why a message failed, if applicable."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
},
"message_template_id": {
"type": "integer",
"readOnly": true,
"deprecated": true,
"description": "The identifier of the message template used to create a message."
},
"customer_identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
}
},
"description": "Describes an individual message delivery. The object contains keys for all possible parents of the message (`newsletter_id`, `broadcast_id`, etc) but only the parents of the delivery are populated. Other parent IDs are null."
},
"example": [
{
"id": "dgOq6QWq6QUDAAF22PaOyFVqVxHY3rI5fsg=",
"type": "email",
"created": 1609957805,
"metrics": {
"sent": 1609957832,
"delivered": 1609957872
},
"subject": "Did you get that thing I sent you?",
"action_id": 196,
"forgotten": false,
"recipient": "person@example.com",
"content_id": null,
"campaign_id": null,
"customer_id": "1a55d8d1-b13d-4f1f-858f-a93ef21e3a7d",
"broadcast_id": 94,
"newsletter_id": null,
"deduplicate_id": "dgOq6QWq6QUDAAF22PaOyFVqVxHY3rI5fsg=:1609957872",
"failure_message": null,
"msg_template_id": 0,
"customer_identifiers": {
"id": "1a55d8d1-b13d-4f1f-858f-a93ef21e3a7d",
"email": "person@example.com",
"cio_id": 786433
}
}
]
}
}
}
BroadcastsGetMetadataResponse
{
"type": "object",
"properties": {
"broadcast": {
"type": "object",
"example": {
"id": 2,
"name": "basic",
"tags": "nil",
"type": "triggered_broadcast",
"active": true,
"actions": [
{
"id": 3,
"type": "email"
},
{
"id": 4
},
{
"type": "webhook"
}
],
"created": 1520467200,
"updated": 1520467200,
"created_by": "ExamplePerson",
"first_started": 1520467200,
"deduplicate_id": "2:1520467200"
},
"properties": {
"id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"name": {
"type": "string",
"readOnly": true,
"description": "The name of the broadcast."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of tags you set on this broadcast."
},
"active": {
"type": "boolean",
"description": "If true, the broadcast is active."
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for the action."
},
"type": {
"enum": [
"email",
"webhook",
"push",
"sms",
"slack"
],
"type": "string",
"description": "The type of action."
}
}
},
"description": "A list of actions used by the broadcast."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"msg_template_ids": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for the template."
},
"type": {
"enum": [
"email",
"webhook",
"push",
"sms",
"slack"
],
"type": "string",
"description": "The type of template."
}
}
},
"deprecated": true,
"description": "Indicates the message template(s) used in this broadcast."
}
}
}
}
}
BroadcastsGetMetricsResponse
{
"type": "object",
"properties": {
"metric": {
"type": "object",
"properties": {
"series": {
"allOf": [
{
"type": "object",
"properties": {
"2xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "2xx responses by period, representative of webhook performance."
},
"3xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "3xx responses by period, representative of webhook performance."
},
"4xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "4xx responses by period, representative of webhook performance."
},
"5xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "5xx responses by period, representative of webhook performance."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
},
{
"type": "object",
"properties": {
"sent": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of sent messages."
},
"failed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `failed` messages."
},
"opened": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `opened` messages."
},
"bounced": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `bounced` messages."
},
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `clicked` messages."
},
"created": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `created` messages."
},
"drafted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `drafted` messages."
},
"spammed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of spam complaints."
},
"deferred": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `deferred` messages."
},
"attempted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `attempted` messages."
},
"converted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `converted` messages."
},
"delivered": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `delivered` messages."
},
"suppressed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `suppressed` messages."
},
"unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of unsubscribes attributed to the campaign or message."
},
"undeliverable": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `undeliverable` messages."
},
"topic_unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of topic unsubscribes in a given period."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
}
]
}
}
}
}
}
BroadcastsGetStatusResponse
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for a broadcast trigger."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"processed_at": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when Customer.io processed the trigger."
}
},
"description": "You can get triggers to know when you triggered a broadcast and whether or not it's been processed."
}
BroadcastsGetTranslationMessageResponse
{
"type": "object",
"properties": {
"action": {
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"readOnly": true,
"description": "The identifier for a broadcast."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
}
}
]
}
}
}
BroadcastsGetTriggersResponse
{
"type": "object",
"properties": {
"triggers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for a broadcast trigger."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"processed_at": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when Customer.io processed the trigger."
}
},
"description": "You can get triggers to know when you triggered a broadcast and whether or not it's been processed."
},
"description": "Each object in the array represents a time that your broadcast was triggered/sent."
}
}
}
BroadcastsListResponse
{
"type": "object",
"properties": {
"broadcasts": {
"type": "array",
"items": {
"type": "object",
"example": {
"id": 2,
"name": "basic",
"tags": "nil",
"type": "triggered_broadcast",
"active": true,
"actions": [
{
"id": 3,
"type": "email"
},
{
"id": 4
},
{
"type": "webhook"
}
],
"created": 1520467200,
"updated": 1520467200,
"created_by": "ExamplePerson",
"first_started": 1520467200,
"deduplicate_id": "2:1520467200"
},
"properties": {
"id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"name": {
"type": "string",
"readOnly": true,
"description": "The name of the broadcast."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of tags you set on this broadcast."
},
"active": {
"type": "boolean",
"description": "If true, the broadcast is active."
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for the action."
},
"type": {
"enum": [
"email",
"webhook",
"push",
"sms",
"slack"
],
"type": "string",
"description": "The type of action."
}
}
},
"description": "A list of actions used by the broadcast."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"msg_template_ids": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for the template."
},
"type": {
"enum": [
"email",
"webhook",
"push",
"sms",
"slack"
],
"type": "string",
"description": "The type of template."
}
}
},
"deprecated": true,
"description": "Indicates the message template(s) used in this broadcast."
}
}
}
}
}
}
BroadcastsUpdateActionContentsRequest
{
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"readOnly": true,
"description": "The identifier for a broadcast."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
}
}
]
}
BroadcastsUpdateActionContentsResponse
{
"type": "object",
"properties": {
"action": {
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"readOnly": true,
"description": "The identifier for a broadcast."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
}
}
]
}
}
}
BroadcastsUpdateTranslationRequest
{
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"readOnly": true,
"description": "The identifier for a broadcast."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
}
}
]
}
BroadcastsUpdateTranslationResponse
{
"type": "object",
"properties": {
"action": {
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"readOnly": true,
"description": "The identifier for a broadcast."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
}
}
]
}
}
}
CampaignsGetActionInfoResponse
{
"type": "object",
"properties": {
"action": {
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"campaign_id": {
"type": "integer",
"example": 5,
"readOnly": true,
"description": "The identifier for a campaign."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"example": "{\"attribute\":\"cool-webhook\"}",
"description": "The payload for your webhook."
},
"name": {
"type": "string",
"example": "Set attribute",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"campaign_id": {
"type": "integer",
"example": 5,
"description": "The identifier for a campaign."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
}
]
}
}
}
CampaignsGetActionMetricsResponse
{
"type": "object",
"properties": {
"metric": {
"type": "object",
"properties": {
"series": {
"allOf": [
{
"type": "object",
"properties": {
"2xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "2xx responses by period, representative of webhook performance."
},
"3xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "3xx responses by period, representative of webhook performance."
},
"4xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "4xx responses by period, representative of webhook performance."
},
"5xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "5xx responses by period, representative of webhook performance."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
},
{
"type": "object",
"properties": {
"sent": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of sent messages."
},
"failed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `failed` messages."
},
"opened": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `opened` messages."
},
"bounced": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `bounced` messages."
},
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `clicked` messages."
},
"created": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `created` messages."
},
"drafted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `drafted` messages."
},
"spammed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of spam complaints."
},
"deferred": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `deferred` messages."
},
"attempted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `attempted` messages."
},
"converted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `converted` messages."
},
"delivered": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `delivered` messages."
},
"suppressed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `suppressed` messages."
},
"unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of unsubscribes attributed to the campaign or message."
},
"undeliverable": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `undeliverable` messages."
},
"topic_unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of topic unsubscribes in a given period."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
}
]
}
}
}
}
}
CampaignsGetJourneyMetricsResponse
{
"type": "object",
"properties": {
"journey_metric": {
"type": "object",
"properties": {
"started": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The total number of people who meet the trigger criteria for a journey. This count occurs before filters are applied."
},
"finished": {
"type": "array",
"items": {
"type": "integer"
},
"description": "People who finished the journey."
},
"messaged": {
"type": "array",
"items": {
"type": "integer"
},
"description": "People who experienced at least one non-delay action in the journey. This metric typically represents journeys in progress."
},
"activated": {
"type": "array",
"items": {
"type": "integer"
},
"description": "People who started a journey and were not filtered out before they experienced an action."
},
"converted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "People who met the conversion goal (entered a segment) for the campaign."
},
"exited_early": {
"type": "array",
"items": {
"type": "integer"
},
"description": "People who started a journey but stopped meeting the campaign trigger/filter criteria following a delay or grace period."
},
"never_activated": {
"type": "array",
"items": {
"type": "integer"
},
"description": "People who started a journey but were filtered out before they could experience any of the actions in the journey."
}
}
}
}
}
CampaignsGetLinkMetricsForActionResponse
{
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"link": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1234,
"description": "The ID of the link."
},
"href": {
"type": "string",
"example": "https://customer.io/docs",
"description": "The link destination—a URL, mailto, etc."
}
}
},
"metric": {
"type": "object",
"properties": {
"series": {
"type": "object",
"properties": {
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
1,
3,
5,
7
],
"description": "An array of results from oldest to newest, where each result indicates a period."
}
}
}
},
"description": "Contains metrics for the link."
}
}
},
"description": "Each object in the array represents a link in your action."
}
}
}
CampaignsGetLinkMetricsResponse
{
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"link": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1234,
"description": "The ID of the link."
},
"href": {
"type": "string",
"example": "https://customer.io/docs",
"description": "The link destination—a URL, mailto, etc."
}
}
},
"metric": {
"type": "object",
"properties": {
"series": {
"type": "object",
"properties": {
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
1,
3,
5,
7
],
"description": "An array of results from oldest to newest, where each result indicates a period."
}
}
}
},
"description": "Contains metrics for the link."
}
}
}
}
}
}
CampaignsGetListResponse
{
"type": "object",
"properties": {
"campaigns": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 5,
"description": "The identifier for a campaign."
},
"name": {
"type": "string",
"readOnly": true,
"description": "The name of the campaign."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"new",
"welcome"
],
"description": "An array of tags you set on this campaign."
},
"type": {
"enum": [
"segment"
],
"type": "string",
"description": "The type of campaign."
},
"active": {
"type": "boolean",
"description": "If true, the campaign is active and can still send messages."
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for the action."
},
"type": {
"enum": [
"email",
"sms",
"push",
"slack",
"webhook"
],
"type": "string",
"description": "The message type actions resulting from the campaign."
}
}
},
"description": "An array of actions contained within the campaign."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"created_by": {
"type": "string",
"format": "email",
"example": "hugh.mann@example.com",
"description": "The email address of the person who created the campaign."
},
"first_started": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"description": "The date and time when you first started the campaign and it first became eligible to be triggered."
},
"msg_templates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for the template."
},
"type": {
"enum": [
"email",
"sms",
"push",
"slack"
],
"type": "string",
"description": "The message type the template represents."
}
}
},
"deprecated": true,
"description": "Indicates the message templates used in this campaign."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"filter_segment_ids": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
21,
42
],
"description": "A list of segments used in the campaign filter, returned if the campaign audience was filtered on one or more segments."
},
"trigger_segment_ids": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
90
],
"description": "A list of segments used in the campaign trigger, returned if the campaign trigger included one or more segment conditions."
}
}
}
}
}
}
CampaignsGetMessageMetadataResponse
{
"type": "object",
"properties": {
"messages": {
"type": "array",
"items": {
"type": "object",
"example": {
"id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=X",
"type": "email",
"created": 1619137767,
"metrics": {
"sent": 1619137768,
"delivered": 1619137768
},
"subject": "Did you get that thing I sent you?",
"action_id": 215,
"forgotten": false,
"recipient": "person@example.com",
"content_id": null,
"campaign_id": 23,
"customer_id": null,
"broadcast_id": null,
"newsletter_id": null,
"deduplicate_id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=:1619137768",
"failure_message": null,
"msg_template_id": 43,
"parent_action_id": null,
"trigger_event_id": null
},
"properties": {
"id": {
"type": "string",
"example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
"readOnly": true,
"description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"metrics": {
"type": "object",
"properties": {
"sent": {
"type": "integer",
"description": "The timestamp when the message was `sent`."
},
"failed": {
"type": "integer",
"description": "The timestamp when the message `failed`."
},
"opened": {
"type": "integer",
"description": "The timestamp when the message was `opened`."
},
"bounced": {
"type": "integer",
"description": "The timestamp when the message `bounced`."
},
"clicked": {
"type": "integer",
"description": "The timestamp when the message was `clicked`."
},
"created": {
"type": "integer",
"description": "The timestamp when the message was `created`."
},
"drafted": {
"type": "integer",
"description": "The timestamp when the message was `drafted`."
},
"dropped": {
"type": "integer",
"description": "The timestamp when the message was `dropped`."
},
"spammed": {
"type": "integer",
"description": "The timestamp when the message was marked as spam."
},
"converted": {
"type": "integer",
"description": "The timestamp when the message was `converted`."
},
"delivered": {
"type": "integer",
"description": "The timestamp when the message was `delivered`."
},
"unsubscribed": {
"type": "integer",
"description": "The timestamp when a person unsubscribed based on this message."
},
"undeliverable": {
"type": "integer",
"description": "The timestamp when the message became `undeliverable`."
}
},
"description": "Metrics for an individual instance of a message; each item in the object represents the timestamp when a message achieved a particular metric. This object only contains metrics that have been recorded."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"action_id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"forgotten": {
"type": "boolean",
"description": "If true message contents are not retained by Customer.io."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"content_id": {
"type": "integer",
"example": 1,
"nullable": true,
"readOnly": true,
"description": "The identifier for a newsletter variant."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"failure_message": {
"type": "string",
"nullable": true,
"description": "Explains why a message failed, if applicable."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
},
"message_template_id": {
"type": "integer",
"readOnly": true,
"deprecated": true,
"description": "The identifier of the message template used to create a message."
},
"customer_identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
}
},
"description": "Describes an individual message delivery. The object contains keys for all possible parents of the message (`newsletter_id`, `broadcast_id`, etc) but only the parents of the delivery are populated. Other parent IDs are null."
},
"example": [
{
"id": "dgOq6QWq6QUDAAF22PaOyFVqVxHY3rI5fsg=X",
"type": "email",
"created": 1609957805,
"metrics": {
"sent": 1609957832,
"delivered": 1609957872
},
"subject": "Did you get that thing I sent you?",
"action_id": 196,
"forgotten": false,
"recipient": "person@email.com",
"content_id": null,
"campaign_id": 89,
"customer_id": "1a55d8d1-b13d-4f1f-858f-a93ef21e3a7d",
"broadcast_id": null,
"newsletter_id": null,
"deduplicate_id": "dgOq6QWq6QUDAAF22PaOyFVqVxHY3rI5fsg=:1609957872",
"failure_message": null,
"msg_template_id": 0,
"customer_identifiers": {
"id": "1a55d8d1-b13d-4f1f-858f-a93ef21e3a7dX",
"email": "person@example.com",
"cio_id": 786433
}
}
]
}
}
}
CampaignsGetMessageTranslationResponse
{
"type": "object",
"properties": {
"action": {
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"campaign_id": {
"type": "integer",
"example": 5,
"readOnly": true,
"description": "The identifier for a campaign."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"example": "{\"attribute\":\"cool-webhook\"}",
"description": "The payload for your webhook."
},
"name": {
"type": "string",
"example": "Set attribute",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"campaign_id": {
"type": "integer",
"example": 5,
"description": "The identifier for a campaign."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
}
]
}
}
}
CampaignsGetMetadataResponse
{
"type": "object",
"properties": {
"campaign": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 5,
"description": "The identifier for a campaign."
},
"name": {
"type": "string",
"readOnly": true,
"description": "The name of the campaign."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"new",
"welcome"
],
"description": "An array of tags you set on this campaign."
},
"type": {
"enum": [
"segment"
],
"type": "string",
"description": "The type of campaign."
},
"active": {
"type": "boolean",
"description": "If true, the campaign is active and can still send messages."
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for the action."
},
"type": {
"enum": [
"email",
"sms",
"push",
"slack",
"webhook"
],
"type": "string",
"description": "The message type actions resulting from the campaign."
}
}
},
"description": "An array of actions contained within the campaign."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"created_by": {
"type": "string",
"format": "email",
"example": "hugh.mann@example.com",
"description": "The email address of the person who created the campaign."
},
"first_started": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"description": "The date and time when you first started the campaign and it first became eligible to be triggered."
},
"msg_templates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for the template."
},
"type": {
"enum": [
"email",
"sms",
"push",
"slack"
],
"type": "string",
"description": "The message type the template represents."
}
}
},
"deprecated": true,
"description": "Indicates the message templates used in this campaign."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"filter_segment_ids": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
21,
42
],
"description": "A list of segments used in the campaign filter, returned if the campaign audience was filtered on one or more segments."
},
"trigger_segment_ids": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
90
],
"description": "A list of segments used in the campaign trigger, returned if the campaign trigger included one or more segment conditions."
}
}
}
}
}
CampaignsGetMetricsResponse
{
"type": "object",
"properties": {
"metric": {
"type": "object",
"properties": {
"series": {
"allOf": [
{
"type": "object",
"properties": {
"2xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "2xx responses by period, representative of webhook performance."
},
"3xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "3xx responses by period, representative of webhook performance."
},
"4xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "4xx responses by period, representative of webhook performance."
},
"5xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "5xx responses by period, representative of webhook performance."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
},
{
"type": "object",
"properties": {
"sent": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of sent messages."
},
"failed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `failed` messages."
},
"opened": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `opened` messages."
},
"bounced": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `bounced` messages."
},
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `clicked` messages."
},
"created": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `created` messages."
},
"drafted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `drafted` messages."
},
"spammed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of spam complaints."
},
"deferred": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `deferred` messages."
},
"attempted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `attempted` messages."
},
"converted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `converted` messages."
},
"delivered": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `delivered` messages."
},
"suppressed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `suppressed` messages."
},
"unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of unsubscribes attributed to the campaign or message."
},
"undeliverable": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `undeliverable` messages."
},
"topic_unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of topic unsubscribes in a given period."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
}
]
}
}
}
}
}
CampaignsListActionsResponse
{
"type": "object",
"properties": {
"next": {
"type": "string",
"description": "Indicates the next page of results. Add `?start=<next_value>` to the request to get the next page of results."
},
"actions": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"campaign_id": {
"type": "integer",
"example": 5,
"readOnly": true,
"description": "The identifier for a campaign."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"example": "{\"attribute\":\"cool-webhook\"}",
"description": "The payload for your webhook."
},
"name": {
"type": "string",
"example": "Set attribute",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"campaign_id": {
"type": "integer",
"example": 5,
"description": "The identifier for a campaign."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
}
]
},
"maxItems": 10,
"description": "Each object in the array represents an action in your campaign."
}
}
}
CampaignsUpdateActionContentsRequest
{
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"campaign_id": {
"type": "integer",
"example": 5,
"readOnly": true,
"description": "The identifier for a campaign."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"example": "{\"attribute\":\"cool-webhook\"}",
"description": "The payload for your webhook."
},
"name": {
"type": "string",
"example": "Set attribute",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"campaign_id": {
"type": "integer",
"example": 5,
"description": "The identifier for a campaign."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
}
]
}
CampaignsUpdateActionContentsResponse
{
"type": "object",
"properties": {
"action": {
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"campaign_id": {
"type": "integer",
"example": 5,
"readOnly": true,
"description": "The identifier for a campaign."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"example": "{\"attribute\":\"cool-webhook\"}",
"description": "The payload for your webhook."
},
"name": {
"type": "string",
"example": "Set attribute",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"campaign_id": {
"type": "integer",
"example": 5,
"description": "The identifier for a campaign."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
}
]
}
}
}
CampaignsUpdateTranslationRequest
{
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"campaign_id": {
"type": "integer",
"example": 5,
"readOnly": true,
"description": "The identifier for a campaign."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"example": "{\"attribute\":\"cool-webhook\"}",
"description": "The payload for your webhook."
},
"name": {
"type": "string",
"example": "Set attribute",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"campaign_id": {
"type": "integer",
"example": 5,
"description": "The identifier for a campaign."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
}
]
}
CampaignsUpdateTranslationResponse
{
"type": "object",
"properties": {
"action": {
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"campaign_id": {
"type": "integer",
"example": 5,
"readOnly": true,
"description": "The identifier for a campaign."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"example": "{\"attribute\":\"cool-webhook\"}",
"description": "The payload for your webhook."
},
"name": {
"type": "string",
"example": "Set attribute",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"campaign_id": {
"type": "integer",
"example": 5,
"description": "The identifier for a campaign."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
}
]
}
}
}
CollectionsCreateNewRequest
{
"oneOf": [
{
"type": "object",
"title": "Local data",
"required": [
"name",
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"x-additionalPropertiesName": "collection data"
}
},
"description": "An array of data objects that you want to reference in this collection."
},
"name": {
"type": "string",
"description": "The name of the collection. This is how you'll reference your collection in messages—`{{collection_name.data-property}}`."
}
}
},
{
"type": "object",
"title": "Data by URL",
"required": [
"name",
"url"
],
"properties": {
"url": {
"type": "string",
"format": "url",
"description": "The URL for your CSV or JSON data. If your URL does not return a `Content-Type`, we use the file extension; otherwise, Customer.io assumes your data is JSON.\n"
},
"name": {
"type": "string",
"description": "The name of the collection. This is how you'll reference your collection in messages—`{{collection_name.data-property}}`."
}
}
}
]
}
CollectionsCreateNewResponse
{
"type": "object",
"properties": {
"collection": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1,
"description": "The identifier for the collection. This is how you'll reference the collection from the API."
},
"name": {
"type": "string",
"example": "upcoming events",
"description": "The name of the collection. This is how you'll reference the collection in liquid, e.g. `{{collection_name.data_property}}`."
},
"rows": {
"type": "integer",
"example": 2,
"description": "Represents the number of objects in the `data` array or CSV rows in your collection schema."
},
"bytes": {
"type": "integer",
"example": 296,
"description": "The size of the collection in bytes."
},
"schema": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"eventDate",
"eventName",
"presents"
],
"description": "Lists the top-level keys that you can reference within this collection. Customer.io does not enforce any of these keys as required from your `data`."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
}
}
}
}
}
CollectionsGetContentsResponse
{
"type": "object",
"additionalProperties": {
"x-additionalPropertiesName": "collection data"
}
}
CollectionsGetDetailsResponse
{
"type": "object",
"properties": {
"collection": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1,
"description": "The identifier for the collection. This is how you'll reference the collection from the API."
},
"name": {
"type": "string",
"example": "upcoming events",
"description": "The name of the collection. This is how you'll reference the collection in liquid, e.g. `{{collection_name.data_property}}`."
},
"rows": {
"type": "integer",
"example": 2,
"description": "Represents the number of objects in the `data` array or CSV rows in your collection schema."
},
"bytes": {
"type": "integer",
"example": 296,
"description": "The size of the collection in bytes."
},
"schema": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"eventDate",
"eventName",
"presents"
],
"description": "Lists the top-level keys that you can reference within this collection. Customer.io does not enforce any of these keys as required from your `data`."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
}
}
}
}
}
CollectionsListResponse
{
"type": "object",
"properties": {
"collections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1,
"description": "The identifier for the collection. This is how you'll reference the collection from the API."
},
"name": {
"type": "string",
"example": "upcoming events",
"description": "The name of the collection. This is how you'll reference the collection in liquid, e.g. `{{collection_name.data_property}}`."
},
"rows": {
"type": "integer",
"example": 2,
"description": "Represents the number of objects in the `data` array or CSV rows in your collection schema."
},
"bytes": {
"type": "integer",
"example": 296,
"description": "The size of the collection in bytes."
},
"schema": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"eventDate",
"eventName",
"presents"
],
"description": "Lists the top-level keys that you can reference within this collection. Customer.io does not enforce any of these keys as required from your `data`."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
}
}
}
}
}
}
CollectionsUpdateCollectionRequest
{
"oneOf": [
{
"type": "object",
"title": "Local data",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"x-additionalPropertiesName": "collection data"
}
},
"description": "An array of data objects that you want to reference in this collection."
},
"name": {
"type": "string",
"description": "The name of the collection. This is how you'll reference your collection in messages—`{{collection_name.data-property}}`."
}
}
},
{
"type": "object",
"title": "Data by URL",
"properties": {
"url": {
"type": "string",
"format": "url",
"description": "The URL for your CSV or JSON data. If your URL does not return a `Content-Type`, we use the file extension; otherwise, Customer.io assumes your data is JSON.\n"
},
"name": {
"type": "string",
"description": "The name of the collection. This is how you'll reference your collection in messages—`{{collection_name.data-property}}`."
}
}
}
]
}
CollectionsUpdateCollectionResponse
{
"type": "object",
"properties": {
"collection": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1,
"description": "The identifier for the collection. This is how you'll reference the collection from the API."
},
"name": {
"type": "string",
"example": "upcoming events",
"description": "The name of the collection. This is how you'll reference the collection in liquid, e.g. `{{collection_name.data_property}}`."
},
"rows": {
"type": "integer",
"example": 2,
"description": "Represents the number of objects in the `data` array or CSV rows in your collection schema."
},
"bytes": {
"type": "integer",
"example": 296,
"description": "The size of the collection in bytes."
},
"schema": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"eventDate",
"eventName",
"presents"
],
"description": "Lists the top-level keys that you can reference within this collection. Customer.io does not enforce any of these keys as required from your `data`."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
}
}
}
}
}
CollectionsUpdateContentsRequest
{
"type": "object",
"additionalProperties": {
"x-additionalPropertiesName": "collection contents"
}
}
CollectionsUpdateContentsResponse
{
"type": "object",
"properties": {
"collection": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1,
"description": "The identifier for the collection. This is how you'll reference the collection from the API."
},
"name": {
"type": "string",
"example": "upcoming events",
"description": "The name of the collection. This is how you'll reference the collection in liquid, e.g. `{{collection_name.data_property}}`."
},
"rows": {
"type": "integer",
"example": 2,
"description": "Represents the number of objects in the `data` array or CSV rows in your collection schema."
},
"bytes": {
"type": "integer",
"example": 296,
"description": "The size of the collection in bytes."
},
"schema": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"eventDate",
"eventName",
"presents"
],
"description": "Lists the top-level keys that you can reference within this collection. Customer.io does not enforce any of these keys as required from your `data`."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
}
}
}
}
}
CustomersFindByEmailResponse
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"cio_id",
"id",
"email"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set."
},
"email": {
"type": "string",
"format": "email",
"example": "hugh.mann@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
},
"description": "A list of customers matching the email address in your query."
}
}
}
CustomersGetActivitiesResponse
{
"type": "object",
"properties": {
"activities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "01AK4N8V8G8KVA4HN8Y50CCZ59",
"description": "The identifier for the action."
},
"data": {
"oneOf": [
{
"type": "object",
"title": "Message delivery",
"example": {
"opened": null,
"delivered": null,
"delivery_id": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ=="
},
"properties": {
"opened": {
"type": "boolean",
"nullable": true,
"description": "Indicates whether or not a customer opened a message, if the message was delivered."
},
"delivered": {
"type": "integer",
"format": "unix timestamp",
"nullable": true,
"description": "The date-time when the message was delivered, if applicable."
},
"delivery_id": {
"type": "string",
"description": "The message ID."
}
}
},
{
"type": "object",
"title": "Attribute change",
"example": {
"email": {
"to": "newPerson@customer.io",
"from": "newPerson@example.com"
}
},
"description": "The name of the object is the attribute that changed.",
"additionalProperties": {
"type": "object",
"properties": {
"to": {
"type": "string",
"description": "The new attribute value."
},
"from": {
"type": "string",
"description": "The old attribute value. If empty, the customer probably didn't bear the attribute before this action."
}
},
"x-additionalPropertyName": "Attribute Name"
}
}
]
},
"type": {
"enum": [
"attempted_action",
"attribute_change",
"failed_attribute_change",
"failed_batch_update",
"skipped_update",
"failed_query_collection",
"event",
"failed_event",
"page",
"drafted_email",
"attempted_email",
"sent_email",
"delivered_email",
"opened_email",
"clicked_email",
"converted_email",
"bounced_email",
"failed_email",
"unsubscribed_email",
"topic_unsubscribed_email",
"spammed_email",
"dropped_email",
"undeliverable_email",
"drafted_action",
"delivered_action",
"bounced_action",
"sent_action",
"opened_action",
"clicked_action",
"failed_action",
"converted_action",
"device_change",
"deferred_email",
"unsubscribed_action",
"dropped_action",
"undeliverable_action",
"deferred_action",
"profile_create",
"profile_delete",
"profile_merge",
"anon_merge",
"screen",
"webhook_event",
"add_relationship",
"delete_relationship",
"_o:<object_type_id>:create",
"_o:<object_type_id>:attribute_change",
"_o:<object_type_id>:failed_attribute_change",
"_o:<object_type_id>:delete",
"_o:<object_type_id>:add_relationship",
"_o:<object_type_id>:delete_relationship",
"_r:<object_type_id>:attribute_change",
"_r:<object_type_id>:failed_attribute_change",
"failed_object_journeys"
],
"type": "string",
"example": "sent_email",
"description": "The type of activity. Types with `_o:<object_type_id>` are for objects and types with `_r:<object_type_id>` are for relationships."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1397566226,
"description": "The date and time when the action occurred."
},
"customer_id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The message ID."
},
"delivery_type": {
"enum": [
"ios",
"android",
"email",
"phone"
],
"type": "string",
"example": "email",
"description": "The recipient device, if applicable."
},
"customer_identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
}
}
}
}
}
}
CustomersGetAttributesResponse
{
"type": "object",
"example": {
"customer": {
"id": "1X",
"devices": [
{
"id": "my_android_device_idX",
"platform": "android",
"last_used": 1514764800
},
{
"id": "my_ios_device_idX",
"platform": "ios",
"last_used": 1514764800
}
],
"attributes": {
"id": "1X",
"email": "test@example.com",
"title": "tester",
"cio_id": "03000001",
"created_at": "1489014595",
"department": "qa",
"_last_emailed": "1528932553",
"cio_subscription_preferences": "{\"topics\":{\"topic_7\":false,\"topic_8\":false}}",
"_cio_subscription_preferences_computed": "{\"topics\":{\"topic_6\":false,\"topic_7\":false,\"topic_8\":false}}"
},
"timestamps": {
"id": 1489014595,
"email": 1508932553,
"title": 1508932553,
"cio_id": 1489014595,
"created_at": 1489014595,
"department": 1508932553,
"_last_emailed": 1528932553,
"cio_subscription_preferences": 1673987303,
"_cio_subscription_preferences_computed": 0
},
"unsubscribed": false
}
},
"properties": {
"customer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The customer ID referenced in the request."
},
"devices": {
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The device token."
}
}
},
{
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"enum": [
"ios",
"android"
],
"type": "string",
"description": "The device/messaging platform."
},
"last_used": {
"type": "integer",
"format": "unix timestamp",
"description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
},
"attributes": {
"type": "object",
"properties": {
"device_os": {
"type": "string",
"description": "The operating system, including the version, on the device."
},
"app_version": {
"type": "string",
"description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
},
"_last_status": {
"enum": [
"",
"bounced",
"sent",
"suppressed"
],
"type": "string",
"readOnly": true,
"description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
},
"device_model": {
"type": "string",
"description": "The model of the device a person uses."
},
"push_enabled": {
"enum": [
"true",
"false"
],
"type": "string",
"description": "If `\"true\"`, the device is opted-in and can receive push notifications."
},
"device_locale": {
"type": "string",
"description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
},
"cio_sdk_version": {
"type": "string",
"description": "The version of the Customer.io SDK in the app."
}
},
"description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
"additionalProperties": {
"type": "string",
"description": "Custom properties that you want to associate with the device.",
"x-additionalPropertiesName": "Custom Device Attributes"
}
}
},
"description": "Device information common to the v1 and v2 APIs."
}
],
"description": "The properties representing an individual device. [Our SDK's](https://customer.io/docs/api/app/) gather all the properties defined below automatically, unless you disable the `autoTrackDeviceAttributes` setting. You can reference the properties outside the `attributes` object in segments or in Liquid."
},
"description": "Lists the devices associated with the customer profile."
},
"attributes": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
},
"cio_subscription_preferences": {
"type": "string",
"description": "A person's stringified subscription preferences. These are preferences that a person set through the subscription center or attributes that you set on a person. A person who hasn't set their subscription preferences has computed preferences based on the nature of your topics (opt-in or opt-out). See the `_cio_subscription_preferences_computed` attribute for computed preferences.\n"
},
"_cio_subscription_preferences_computed": {
"type": "string",
"description": "Returns the computed subscription preferences for a person—any subscription preferences set on a person and the defaults for any subscription preferences _not_ set on a person—as stringified JSON. For example, if you have an \"opt-in\" topic that a person hasn't set a preference for, that topic would show `false`—even though a person doesn't have that attribute on their profile. [Learn more about topics](https://customer.io/docs/api/app/). \n"
}
},
"description": "Contains attributes assigned to this profile, including your workspace's people-identifiers (by default, these are `id`, `email`, and `cio_id`). Attributes are all stored as strings.",
"additionalProperties": {
"type": "string",
"description": "Non-identifier attributes assigned to this person.",
"x-additionalPropertiesName": "additional attributes"
}
},
"timestamps": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when the person's ID was generated."
},
"email": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when the person's email address was added."
},
"cio_id": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when `cio_id` was assigned."
},
"unsubscribed": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when the person unsubscribed."
},
"_last_emailed": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when you last emailed a person."
},
"additionalProperties": {
"format": "unix timestamp",
"description": "Timestamps when attributes assigned to the person were set.",
"x-additionalPropertiesName": "additional attribute timestamps"
},
"cio_subscription_preferences": {
"type": "integer",
"format": "unix timestamp",
"description": "The datetime when a person's subscription preferences were last updated."
},
"_cio_subscription_preferences_computed": {
"type": "integer",
"description": "Because this value is computed and not actually set on a person, this value is always 0"
}
},
"description": "The epoch timestamps when corresponding attributes were set on the customer profile."
},
"identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
},
"unsubscribed": {
"type": "boolean",
"description": "If true, the person is unsubscribed from messages."
}
},
"description": "The profile you referenced by ID in the request."
}
}
}
CustomersGetMessagesResponse
{
"type": "object",
"properties": {
"messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The message identifier."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"description": "The type of message."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"description": "The date and time when the message was created."
},
"metrics": {
"type": "object",
"properties": {
"sent": {
"type": "integer",
"format": "unix timestamp",
"description": "The date and time when the message was sent."
},
"delivered": {
"type": "integer",
"format": "unix timestamp",
"description": "The date and time when the customer received the message."
}
},
"description": "Contains information about the send and delivery time of the message."
},
"subject": {
"type": "string",
"description": "The subject line of the message."
},
"action_id": {
"type": "integer",
"description": "The identifier for the message action within the campaign or broadcast the message belonged to."
},
"forgotten": {
"type": "boolean",
"description": "If true, the message content was forgotten."
},
"recipient": {
"type": "string",
"description": "The address of the recipient. May be an email address, MSISDN, or a device UUID."
},
"content_id": {
"type": "integer",
"nullable": true,
"description": "The newsletter variant for the message, if applicable."
},
"campaign_id": {
"type": "integer",
"description": "The campaign the message belongs to."
},
"customer_id": {
"type": "string",
"description": "The customer the message was sent to."
},
"broadcast_id": {
"type": "integer",
"nullable": true,
"description": "The broadcast the message was sent as a part of, if applicable."
},
"newsletter_id": {
"type": "integer",
"nullable": true,
"description": "The newsletter that the message was sent as a part of, if applicable."
},
"deduplicate_id": {
"type": "string",
"description": "A group identifier to deduplicate messages (useful if a customer may have received multiple messages of the same type)."
},
"failure_message": {
"type": "string",
"nullable": true,
"description": "An error, if the message did not make it to the customer."
},
"msg_template_id": {
"type": "string",
"deprecated": true,
"description": "The message template the message was created from."
}
}
}
}
}
}
CustomersGetSubscriptionPreferences400Response
{
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"type": "string",
"description": "Error descriptions."
},
"description": "An array of errors."
}
}
}
}
}
CustomersGetSubscriptionPreferencesResponse
{
"type": "object",
"properties": {
"customer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"header": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The header of the subscription preferences page."
},
"subtitle": {
"type": "string",
"description": "The subtitle or headline beneath the header of the subscription preferences page."
}
}
},
"topics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "System-generated ID of the topic."
},
"name": {
"type": "string",
"description": "The name of the subscription topic."
},
"subscribed": {
"type": "boolean",
"description": "If true, the customer is subscribed to the topic. If false, the customer is unsubscribed from the topic."
},
"description": {
"type": "string",
"description": "The (optional) description of the topic."
}
}
},
"description": "A list of all subscription preferences for the customer."
},
"identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
},
"unsubscribed": {
"type": "boolean",
"description": "If true, the customer is unsubscribed from all messaging. If false, the customer is subscribed according to their topic preferences."
}
},
"description": "The profile you referenced by ID in the request."
}
}
}
CustomersListAttributesDevicesRequest
{
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 100,
"minItems": 1,
"description": "An array of up to 100 customer IDs."
}
}
}
CustomersListAttributesDevicesResponse
{
"type": "object",
"properties": {
"customers": {
"type": "array",
"items": {
"type": "object",
"example": {
"customer": {
"id": "1X",
"devices": [
{
"id": "my_android_device_idX",
"platform": "android",
"last_used": 1514764800
},
{
"id": "my_ios_device_idX",
"platform": "ios",
"last_used": 1514764800
}
],
"attributes": {
"id": "1X",
"email": "test@example.com",
"title": "tester",
"cio_id": "03000001",
"created_at": "1489014595",
"department": "qa",
"_last_emailed": "1528932553",
"cio_subscription_preferences": "{\"topics\":{\"topic_7\":false,\"topic_8\":false}}",
"_cio_subscription_preferences_computed": "{\"topics\":{\"topic_6\":false,\"topic_7\":false,\"topic_8\":false}}"
},
"timestamps": {
"id": 1489014595,
"email": 1508932553,
"title": 1508932553,
"cio_id": 1489014595,
"created_at": 1489014595,
"department": 1508932553,
"_last_emailed": 1528932553,
"cio_subscription_preferences": 1673987303,
"_cio_subscription_preferences_computed": 0
},
"unsubscribed": false
}
},
"properties": {
"customer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The customer ID referenced in the request."
},
"devices": {
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The device token."
}
}
},
{
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"enum": [
"ios",
"android"
],
"type": "string",
"description": "The device/messaging platform."
},
"last_used": {
"type": "integer",
"format": "unix timestamp",
"description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
},
"attributes": {
"type": "object",
"properties": {
"device_os": {
"type": "string",
"description": "The operating system, including the version, on the device."
},
"app_version": {
"type": "string",
"description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
},
"_last_status": {
"enum": [
"",
"bounced",
"sent",
"suppressed"
],
"type": "string",
"readOnly": true,
"description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
},
"device_model": {
"type": "string",
"description": "The model of the device a person uses."
},
"push_enabled": {
"enum": [
"true",
"false"
],
"type": "string",
"description": "If `\"true\"`, the device is opted-in and can receive push notifications."
},
"device_locale": {
"type": "string",
"description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
},
"cio_sdk_version": {
"type": "string",
"description": "The version of the Customer.io SDK in the app."
}
},
"description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
"additionalProperties": {
"type": "string",
"description": "Custom properties that you want to associate with the device.",
"x-additionalPropertiesName": "Custom Device Attributes"
}
}
},
"description": "Device information common to the v1 and v2 APIs."
}
],
"description": "The properties representing an individual device. [Our SDK's](https://customer.io/docs/api/app/) gather all the properties defined below automatically, unless you disable the `autoTrackDeviceAttributes` setting. You can reference the properties outside the `attributes` object in segments or in Liquid."
},
"description": "Lists the devices associated with the customer profile."
},
"attributes": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
},
"cio_subscription_preferences": {
"type": "string",
"description": "A person's stringified subscription preferences. These are preferences that a person set through the subscription center or attributes that you set on a person. A person who hasn't set their subscription preferences has computed preferences based on the nature of your topics (opt-in or opt-out). See the `_cio_subscription_preferences_computed` attribute for computed preferences.\n"
},
"_cio_subscription_preferences_computed": {
"type": "string",
"description": "Returns the computed subscription preferences for a person—any subscription preferences set on a person and the defaults for any subscription preferences _not_ set on a person—as stringified JSON. For example, if you have an \"opt-in\" topic that a person hasn't set a preference for, that topic would show `false`—even though a person doesn't have that attribute on their profile. [Learn more about topics](https://customer.io/docs/api/app/). \n"
}
},
"description": "Contains attributes assigned to this profile, including your workspace's people-identifiers (by default, these are `id`, `email`, and `cio_id`). Attributes are all stored as strings.",
"additionalProperties": {
"type": "string",
"description": "Non-identifier attributes assigned to this person.",
"x-additionalPropertiesName": "additional attributes"
}
},
"timestamps": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when the person's ID was generated."
},
"email": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when the person's email address was added."
},
"cio_id": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when `cio_id` was assigned."
},
"unsubscribed": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when the person unsubscribed."
},
"_last_emailed": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when you last emailed a person."
},
"additionalProperties": {
"format": "unix timestamp",
"description": "Timestamps when attributes assigned to the person were set.",
"x-additionalPropertiesName": "additional attribute timestamps"
},
"cio_subscription_preferences": {
"type": "integer",
"format": "unix timestamp",
"description": "The datetime when a person's subscription preferences were last updated."
},
"_cio_subscription_preferences_computed": {
"type": "integer",
"description": "Because this value is computed and not actually set on a person, this value is always 0"
}
},
"description": "The epoch timestamps when corresponding attributes were set on the customer profile."
},
"identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
},
"unsubscribed": {
"type": "boolean",
"description": "If true, the person is unsubscribed from messages."
}
},
"description": "The profile you referenced by ID in the request."
}
}
}
}
}
}
CustomersLookupRelationshipsResponse
{
"type": "object",
"properties": {
"next": {
"type": "string",
"description": "Indicates the next page of results. Add `?start=<next_value>` to the request to get the next page of results."
},
"cio_relationships": {
"type": "array",
"items": {
"type": "object",
"properties": {
"attributes": {
"type": "object",
"description": "Attributes for the relationship between the person and the object.",
"additionalProperties": {
"x-additionalPropertiesName": "Object Attributes"
}
},
"timestamps": {
"type": "object",
"description": "Unix timestamps when the object's attributes were last updated.",
"additionalProperties": {
"type": "integer",
"format": "unix timestamp",
"x-additionalPropertiesName": "Object Attribute Timestamps"
}
},
"identifiers": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"description": "The ID of the object that the customer is related to."
},
"cio_object_id": {
"type": "string",
"description": "The canonical, immutable identifier for the object that the customer is related to."
}
},
"description": "The `object_id` and `cio_object_id` that a person is related to."
},
"object_type_id": {
"type": "integer",
"description": "The type of object that the customer is related to."
}
}
},
"description": "A list of \"objects\" that the customer is related to; each JSON object in the array represents an \"object\" in Customer.io."
}
}
}
CustomersLookupSegmentsResponse
{
"type": "object",
"properties": {
"segments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The segment identifier."
},
"name": {
"type": "string",
"description": "The name of the segment."
},
"description": {
"type": "string",
"description": "The description of the segment, as entered in the UI."
}
}
}
}
}
}
CustomersSearchFilterRequest
{
"type": "object",
"required": [
"filter"
],
"properties": {
"filter": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *any* condition to return results."
}
}
},
{
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"title": "not",
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
],
"title": "Audience Filter",
"description": "Describe the customers you want to return. Use `and`, `or`, and `not` arrays to group and determine the logic for filter criteria. You can nest and, or, and not arrays to produce complex filters."
}
}
}
CustomersSearchFilterResponse
{
"type": "object",
"example": {
"ids": [
1,
2
],
"next": "MDox",
"identifiers": [
{
"id": 1,
"email": "person@example.com",
"cio_id": 3000001
},
{
"id": 2,
"email": "second.person@exapmle.com",
"cio_id": 3000002
}
]
},
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "In general, you should use the `identifiers` array. This array contains identifiers for people captured in your filter. However, as of June 2021, some workspaces let you add people without an `id`. Entries without an `id` are empty strings in this array, where the `identifiers` array contains more complete information for each person captured in the filter.\n"
},
"next": {
"type": "string",
"description": "The `start` value for the next page of results."
},
"identifiers": {
"type": "array",
"items": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set."
},
"email": {
"type": "string",
"format": "email",
"example": "hugh.mann@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
},
"description": "An array of objects, where each object represents a customer. Each object contains identifiers for a customer."
}
}
}
EspSuppressionEmailAddressResponse
{
"type": "object",
"example": {},
"properties": {}
}
EspSuppressionGetEmailsByTypeResponse
{
"type": "object",
"properties": {
"category": {
"enum": [
"bounces",
"blocks",
"spam",
"invalid"
],
"type": "string",
"example": "bounces",
"description": "The reason the addresses are suppressed."
},
"suppressions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"example": "bounced.person@example.com",
"description": "The email address that the ESP suppressed."
},
"reason": {
"type": "string",
"example": "Uploaded manually via api.customer.io",
"description": "The reason for the suppression, as [recorded by Mailgun](https://documentation.mailgun.com/en/latest/api-suppressions.html)."
},
"status": {
"type": "string",
"example": "550",
"description": "The status code for the suppression, as [recorded by mailgun](https://documentation.mailgun.com/en/latest/api-suppressions.html). This is normally `550`."
},
"created": {
"type": "integer",
"format": "Unix timestamp",
"example": 1650895738,
"description": "The timestamp (in seconds), when the ESP suppressed the address."
}
}
},
"description": "The addresses suppressed in this category."
}
}
}
EspSuppressionLookupAddressResponse
{
"type": "object",
"properties": {
"category": {
"enum": [
"bounces",
"blocks",
"spam",
"invalid"
],
"type": "string",
"example": "bounces",
"description": "The reason the addresses are suppressed."
},
"suppressions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"example": "bounced.person@example.com",
"description": "The email address that the ESP suppressed."
},
"reason": {
"type": "string",
"example": "Uploaded manually via api.customer.io",
"description": "The reason for the suppression, as [recorded by Mailgun](https://documentation.mailgun.com/en/latest/api-suppressions.html)."
},
"status": {
"type": "string",
"example": "550",
"description": "The status code for the suppression, as [recorded by mailgun](https://documentation.mailgun.com/en/latest/api-suppressions.html). This is normally `550`."
},
"created": {
"type": "integer",
"format": "Unix timestamp",
"example": 1650895738,
"description": "The timestamp (in seconds), when the ESP suppressed the address."
}
}
},
"description": "The addresses suppressed in this category."
}
}
}
ExportsCreateCustomerExportRequest
{
"type": "object",
"required": [
"filters"
],
"properties": {
"filters": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *any* condition to return results."
}
}
},
{
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"title": "not",
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
],
"title": "Audience Filter",
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for.\n\nThe top level of this object can only contain a single property, but you can nest `and` and `or` properties to produce complex filters.\n"
}
}
}
ExportsCreateCustomerExportResponse
{
"type": "object",
"properties": {
"export": {
"type": "object",
"example": {
"id": 110,
"type": "customers",
"total": 1234,
"failed": false,
"status": "done",
"user_id": 0,
"downloads": 2,
"created_at": 1530296738,
"updated_at": 1530296738,
"user_email": "person@email.com",
"description": "Customers with segment filters—in \\Purchased Flowers\\",
"deduplicate_id": "110:1530296738"
},
"properties": {
"id": {
"type": "integer",
"example": 110,
"description": "The identifier for the export."
},
"type": {
"enum": [
"customers",
"deliveries"
],
"type": "string",
"example": "customers",
"description": "The type of information contained in the export."
},
"total": {
"type": "integer",
"description": "The number of entries in the export. Exports report 0 until done."
},
"failed": {
"type": "boolean",
"example": false,
"description": "If true, the export was unsuccessful."
},
"status": {
"enum": [
"done",
"pending",
"failed"
],
"type": "string",
"description": "The state of your export where `done` indicates an export that you can download, `pending`, indicates that your export is not ready to download, and `failed` indicates an export that has failed and will not be downloadable."
},
"user_id": {
"type": "integer",
"description": "The user who created the export."
},
"downloads": {
"type": "integer",
"example": 2,
"description": "Counts the total number of times the export has been downloaded."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"user_email": {
"type": "string",
"description": "The email of the user who created the export."
},
"description": {
"type": "string",
"example": "Customers with segment filters—in Purchased Flowers",
"description": "A description of the export."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
},
"description": "Metadata about an export."
}
}
}
ExportsDownloadExportSignedLinkResponse
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "url",
"description": "A link to download your export. Expires after 15 minutes."
}
}
}
ExportsExportDeliveriesInfoRequest
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"newsletter_id"
],
"properties": {
"newsletter_id": {
"type": "integer",
"example": 999,
"description": "The ID of a newsletter you want to export information from."
}
}
},
{
"type": "object",
"properties": {
"end": {
"type": "integer",
"format": "unix timestamp",
"example": 1517702400,
"description": "The unix timestamp representing the end of the export."
},
"start": {
"type": "integer",
"format": "unix timestamp",
"example": 1517529600,
"description": "The unix timestamp representing the beginning of the export."
},
"drafts": {
"type": "boolean",
"description": "If true, your request returns both drafts and active/sent messages."
},
"metric": {
"enum": [
"created",
"attempted",
"sent",
"delivered",
"opened",
"clicked",
"converted",
"bounced",
"spammed",
"unsubscribed",
"dropped",
"failed",
"undeliverable"
],
"type": "string",
"description": "Determines the metric(s) you want to return."
},
"attributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The names of attributes you want to include in your export; each attribute name is an additional column in the export. If your message included liquid, you may add the attribute names used in your message so you can see the values populated for each delivery."
}
},
"description": "Contains properties shared by export filters."
}
],
"title": "Newsletter"
},
{
"allOf": [
{
"type": "object",
"required": [
"campaign_id"
],
"properties": {
"campaign_id": {
"type": "integer",
"example": 46,
"description": "The ID of a campaign you want to export information from."
}
}
},
{
"type": "object",
"properties": {
"end": {
"type": "integer",
"format": "unix timestamp",
"example": 1517702400,
"description": "The unix timestamp representing the end of the export."
},
"start": {
"type": "integer",
"format": "unix timestamp",
"example": 1517529600,
"description": "The unix timestamp representing the beginning of the export."
},
"drafts": {
"type": "boolean",
"description": "If true, your request returns both drafts and active/sent messages."
},
"metric": {
"enum": [
"created",
"attempted",
"sent",
"delivered",
"opened",
"clicked",
"converted",
"bounced",
"spammed",
"unsubscribed",
"dropped",
"failed",
"undeliverable"
],
"type": "string",
"description": "Determines the metric(s) you want to return."
},
"attributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The names of attributes you want to include in your export; each attribute name is an additional column in the export. If your message included liquid, you may add the attribute names used in your message so you can see the values populated for each delivery."
}
},
"description": "Contains properties shared by export filters."
}
],
"title": "Campaign"
},
{
"allOf": [
{
"type": "object",
"required": [
"transactional_message_id"
],
"properties": {
"transactional_message_id": {
"type": "integer",
"example": 22,
"description": "The ID of the transactional message you want to export information for."
}
}
},
{
"type": "object",
"properties": {
"end": {
"type": "integer",
"format": "unix timestamp",
"example": 1517702400,
"description": "The unix timestamp representing the end of the export."
},
"start": {
"type": "integer",
"format": "unix timestamp",
"example": 1517529600,
"description": "The unix timestamp representing the beginning of the export."
},
"drafts": {
"type": "boolean",
"description": "If true, your request returns both drafts and active/sent messages."
},
"metric": {
"enum": [
"created",
"attempted",
"sent",
"delivered",
"opened",
"clicked",
"converted",
"bounced",
"spammed",
"unsubscribed",
"dropped",
"failed",
"undeliverable"
],
"type": "string",
"description": "Determines the metric(s) you want to return."
},
"attributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The names of attributes you want to include in your export; each attribute name is an additional column in the export. If your message included liquid, you may add the attribute names used in your message so you can see the values populated for each delivery."
}
},
"description": "Contains properties shared by export filters."
}
],
"title": "Transactional Message"
},
{
"allOf": [
{
"type": "object",
"required": [
"action_id"
],
"properties": {
"action_id": {
"type": "integer",
"example": 77,
"description": "The ID of an action you want to export information from."
}
}
},
{
"type": "object",
"properties": {
"end": {
"type": "integer",
"format": "unix timestamp",
"example": 1517702400,
"description": "The unix timestamp representing the end of the export."
},
"start": {
"type": "integer",
"format": "unix timestamp",
"example": 1517529600,
"description": "The unix timestamp representing the beginning of the export."
},
"drafts": {
"type": "boolean",
"description": "If true, your request returns both drafts and active/sent messages."
},
"metric": {
"enum": [
"created",
"attempted",
"sent",
"delivered",
"opened",
"clicked",
"converted",
"bounced",
"spammed",
"unsubscribed",
"dropped",
"failed",
"undeliverable"
],
"type": "string",
"description": "Determines the metric(s) you want to return."
},
"attributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The names of attributes you want to include in your export; each attribute name is an additional column in the export. If your message included liquid, you may add the attribute names used in your message so you can see the values populated for each delivery."
}
},
"description": "Contains properties shared by export filters."
}
],
"title": "Action"
}
]
}
ExportsExportDeliveriesInfoResponse
{
"type": "object",
"example": {
"export": {
"id": "111,",
"type": "deliveries",
"failed": false,
"downloads": 0,
"created_at": 1530296742,
"updated_at": 1530296742,
"description": "Full deliveries export (created via the api)",
"deduplicate_id": "110:1530296738"
}
},
"properties": {
"export": {
"type": "object",
"example": {
"id": 110,
"type": "customers",
"total": 1234,
"failed": false,
"status": "done",
"user_id": 0,
"downloads": 2,
"created_at": 1530296738,
"updated_at": 1530296738,
"user_email": "person@email.com",
"description": "Customers with segment filters—in \\Purchased Flowers\\",
"deduplicate_id": "110:1530296738"
},
"properties": {
"id": {
"type": "integer",
"example": 110,
"description": "The identifier for the export."
},
"type": {
"enum": [
"customers",
"deliveries"
],
"type": "string",
"example": "customers",
"description": "The type of information contained in the export."
},
"total": {
"type": "integer",
"description": "The number of entries in the export. Exports report 0 until done."
},
"failed": {
"type": "boolean",
"example": false,
"description": "If true, the export was unsuccessful."
},
"status": {
"enum": [
"done",
"pending",
"failed"
],
"type": "string",
"description": "The state of your export where `done` indicates an export that you can download, `pending`, indicates that your export is not ready to download, and `failed` indicates an export that has failed and will not be downloadable."
},
"user_id": {
"type": "integer",
"description": "The user who created the export."
},
"downloads": {
"type": "integer",
"example": 2,
"description": "Counts the total number of times the export has been downloaded."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"user_email": {
"type": "string",
"description": "The email of the user who created the export."
},
"description": {
"type": "string",
"example": "Customers with segment filters—in Purchased Flowers",
"description": "A description of the export."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
},
"description": "Metadata about an export."
}
}
}
ExportsGetExportInfoResponse
{
"type": "object",
"properties": {
"export": {
"type": "object",
"example": {
"id": 110,
"type": "customers",
"total": 1234,
"failed": false,
"status": "done",
"user_id": 0,
"downloads": 2,
"created_at": 1530296738,
"updated_at": 1530296738,
"user_email": "person@email.com",
"description": "Customers with segment filters—in \\Purchased Flowers\\",
"deduplicate_id": "110:1530296738"
},
"properties": {
"id": {
"type": "integer",
"example": 110,
"description": "The identifier for the export."
},
"type": {
"enum": [
"customers",
"deliveries"
],
"type": "string",
"example": "customers",
"description": "The type of information contained in the export."
},
"total": {
"type": "integer",
"description": "The number of entries in the export. Exports report 0 until done."
},
"failed": {
"type": "boolean",
"example": false,
"description": "If true, the export was unsuccessful."
},
"status": {
"enum": [
"done",
"pending",
"failed"
],
"type": "string",
"description": "The state of your export where `done` indicates an export that you can download, `pending`, indicates that your export is not ready to download, and `failed` indicates an export that has failed and will not be downloadable."
},
"user_id": {
"type": "integer",
"description": "The user who created the export."
},
"downloads": {
"type": "integer",
"example": 2,
"description": "Counts the total number of times the export has been downloaded."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"user_email": {
"type": "string",
"description": "The email of the user who created the export."
},
"description": {
"type": "string",
"example": "Customers with segment filters—in Purchased Flowers",
"description": "A description of the export."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
},
"description": "Metadata about an export."
}
}
}
ExportsListMetricsResponse
{
"type": "object",
"properties": {
"exports": {
"type": "array",
"items": {
"type": "object",
"example": {
"id": 110,
"type": "customers",
"total": 1234,
"failed": false,
"status": "done",
"user_id": 0,
"downloads": 2,
"created_at": 1530296738,
"updated_at": 1530296738,
"user_email": "person@email.com",
"description": "Customers with segment filters—in \\Purchased Flowers\\",
"deduplicate_id": "110:1530296738"
},
"properties": {
"id": {
"type": "integer",
"example": 110,
"description": "The identifier for the export."
},
"type": {
"enum": [
"customers",
"deliveries"
],
"type": "string",
"example": "customers",
"description": "The type of information contained in the export."
},
"total": {
"type": "integer",
"description": "The number of entries in the export. Exports report 0 until done."
},
"failed": {
"type": "boolean",
"example": false,
"description": "If true, the export was unsuccessful."
},
"status": {
"enum": [
"done",
"pending",
"failed"
],
"type": "string",
"description": "The state of your export where `done` indicates an export that you can download, `pending`, indicates that your export is not ready to download, and `failed` indicates an export that has failed and will not be downloadable."
},
"user_id": {
"type": "integer",
"description": "The user who created the export."
},
"downloads": {
"type": "integer",
"example": 2,
"description": "Counts the total number of times the export has been downloaded."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"user_email": {
"type": "string",
"description": "The email of the user who created the export."
},
"description": {
"type": "string",
"example": "Customers with segment filters—in Purchased Flowers",
"description": "A description of the export."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
},
"description": "Metadata about an export."
}
}
}
}
ImportsBulkUploadCsvRequest
{
"type": "object",
"required": [
"import"
],
"properties": {
"import": {
"oneOf": [
{
"type": "object",
"title": "people",
"required": [
"data_file_url",
"name",
"type",
"identifier"
],
"properties": {
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"people"
],
"type": "string",
"description": "The type of import."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"data_file_url": {
"type": "string",
"description": "The URL or path to the CSV file you want to import."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
}
},
"description": "Contains your import parameters."
},
{
"type": "object",
"title": "event",
"required": [
"data_file_url",
"name",
"type",
"identifier"
],
"properties": {
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"event"
],
"type": "string",
"description": "The type of import."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"data_file_url": {
"type": "string",
"description": "The URL or path to the CSV file you want to import."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
}
},
"description": "Contains your import parameters."
},
{
"type": "object",
"title": "relationship",
"required": [
"data_file_url",
"name",
"type",
"identifier",
"object_type_id"
],
"properties": {
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"relationship"
],
"type": "string",
"description": "The type of import."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"data_file_url": {
"type": "string",
"description": "The URL or path to the CSV file you want to import."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
}
},
"description": "Contains your import parameters."
},
{
"type": "object",
"title": "object",
"required": [
"data_file_url",
"name",
"type",
"object_type_id"
],
"properties": {
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The type of import."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"data_file_url": {
"type": "string",
"description": "The URL or path to the CSV file you want to import."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
}
},
"description": "Contains your import parameters."
}
]
}
}
}
ImportsBulkUploadCsvResponse
{
"type": "object",
"required": [
"import"
],
"properties": {
"import": {
"type": "object",
"example": {
"id": 30,
"name": "account-object-import",
"type": "object",
"error": "possible error - The specified Object Type does not exist.",
"state": "imported",
"created_at": 1706081641,
"updated_at": 1706081645,
"description": "importing accounts",
"rows_imported": 3,
"object_type_id": 1,
"rows_to_import": 3,
"data_to_process": "all",
"people_to_process": "all"
},
"properties": {
"id": {
"type": "integer",
"description": "This is the `import_id` you'll use if you want to [lookup your import operation](https://customer.io/docs/api/app/)."
},
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"people",
"event",
"object",
"relationship"
],
"type": "string",
"description": "The type of import."
},
"error": {
"type": "string",
"description": "If your import fails, this helps you understand why."
},
"state": {
"enum": [
"preprocessing",
"preprocessed",
"validating",
"validated",
"importing",
"imported",
"failed",
"canceled"
],
"type": "string",
"description": "The state of the import—whether your import is being processed, fully completed (`imported`), or if it failed."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you used to identify people in your CSV. Not applicable for object imports."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"rows_imported": {
"type": "integer",
"description": "The number of rows we imported from the CSV."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Only applies to object imports."
},
"rows_to_import": {
"type": "integer",
"description": "The total number of importable rows we found in the CSV."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
},
"people_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Returned for people and event imports, even if you imported using the field `data_to_process`. This field will be deprecated soon.\n"
}
},
"description": "Represents an import operation."
}
}
}
ImportsGetBulkImportResponse
{
"type": "object",
"required": [
"import"
],
"properties": {
"import": {
"allOf": [
{
"type": "object",
"example": {
"id": 30,
"name": "account-object-import",
"type": "object",
"error": "possible error - The specified Object Type does not exist.",
"state": "imported",
"created_at": 1706081641,
"updated_at": 1706081645,
"description": "importing accounts",
"rows_imported": 3,
"object_type_id": 1,
"rows_to_import": 3,
"data_to_process": "all",
"people_to_process": "all"
},
"properties": {
"id": {
"type": "integer",
"description": "This is the `import_id` you'll use if you want to [lookup your import operation](https://customer.io/docs/api/app/)."
},
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"people",
"event",
"object",
"relationship"
],
"type": "string",
"description": "The type of import."
},
"error": {
"type": "string",
"description": "If your import fails, this helps you understand why."
},
"state": {
"enum": [
"preprocessing",
"preprocessed",
"validating",
"validated",
"importing",
"imported",
"failed",
"canceled"
],
"type": "string",
"description": "The state of the import—whether your import is being processed, fully completed (`imported`), or if it failed."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you used to identify people in your CSV. Not applicable for object imports."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"rows_imported": {
"type": "integer",
"description": "The number of rows we imported from the CSV."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Only applies to object imports."
},
"rows_to_import": {
"type": "integer",
"description": "The total number of importable rows we found in the CSV."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
},
"people_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Returned for people and event imports, even if you imported using the field `data_to_process`. This field will be deprecated soon.\n"
}
},
"description": "Represents an import operation."
}
]
}
}
}
InfoListIpAddressesResponse
{
"type": "object",
"properties": {
"ip_addresses": {
"type": "array",
"items": {
"type": "string",
"format": "ip address"
},
"example": [
"35.188.196.183",
"104.198.177.219",
"104.154.232.87",
"130.211.229.195",
"104.198.221.24",
"104.197.27.15",
"35.194.9.154",
"104.154.144.51",
"104.197.210.12",
"35.225.6.73"
]
}
}
}
MessagesGetArchivedMessageResponse
{
"type": "object",
"properties": {
"archived_message": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
"readOnly": true,
"description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"url": {
"type": "string",
"example": "http://example.com/webhook",
"description": "The URL of a webhook or action."
},
"body": {
"type": "string",
"example": "<!DOCTYPE html><html><head>\\n<meta http-equiv=\\\"Content-Type\\\" content=\\\"text/html; charset=UTF-8\\\"/><h1>Hello World</h1>\\n\\n</body></html>",
"description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"forgotten": {
"type": "boolean",
"example": false,
"description": "If true, Customer.io does not retain the message content."
},
"recipient": {
"type": "string",
"example": "person@example.com",
"description": "The recipient address for an action."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
},
"request_method": {
"enum": [
"GET",
"POST",
"PUT",
"DELETE",
"PATCH"
],
"type": "string",
"example": "POST",
"description": "The method used in conjunction with a webhook `url`."
}
},
"description": "An archived message, including a complete message body.\n"
}
},
"description": "Describes an archived message delivery."
}
MessagesGetMessageMetricsResponse
{
"type": "object",
"properties": {
"message": {
"type": "object",
"example": {
"id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=X",
"type": "email",
"created": 1619137767,
"metrics": {
"sent": 1619137768,
"delivered": 1619137768
},
"subject": "Did you get that thing I sent you?",
"action_id": 215,
"forgotten": false,
"recipient": "person@example.com",
"content_id": null,
"campaign_id": 23,
"customer_id": null,
"broadcast_id": null,
"newsletter_id": null,
"deduplicate_id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=:1619137768",
"failure_message": null,
"msg_template_id": 43,
"parent_action_id": null,
"trigger_event_id": null
},
"properties": {
"id": {
"type": "string",
"example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
"readOnly": true,
"description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"metrics": {
"type": "object",
"properties": {
"sent": {
"type": "integer",
"description": "The timestamp when the message was `sent`."
},
"failed": {
"type": "integer",
"description": "The timestamp when the message `failed`."
},
"opened": {
"type": "integer",
"description": "The timestamp when the message was `opened`."
},
"bounced": {
"type": "integer",
"description": "The timestamp when the message `bounced`."
},
"clicked": {
"type": "integer",
"description": "The timestamp when the message was `clicked`."
},
"created": {
"type": "integer",
"description": "The timestamp when the message was `created`."
},
"drafted": {
"type": "integer",
"description": "The timestamp when the message was `drafted`."
},
"dropped": {
"type": "integer",
"description": "The timestamp when the message was `dropped`."
},
"spammed": {
"type": "integer",
"description": "The timestamp when the message was marked as spam."
},
"converted": {
"type": "integer",
"description": "The timestamp when the message was `converted`."
},
"delivered": {
"type": "integer",
"description": "The timestamp when the message was `delivered`."
},
"unsubscribed": {
"type": "integer",
"description": "The timestamp when a person unsubscribed based on this message."
},
"undeliverable": {
"type": "integer",
"description": "The timestamp when the message became `undeliverable`."
}
},
"description": "Metrics for an individual instance of a message; each item in the object represents the timestamp when a message achieved a particular metric. This object only contains metrics that have been recorded."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"action_id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"forgotten": {
"type": "boolean",
"description": "If true message contents are not retained by Customer.io."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"content_id": {
"type": "integer",
"example": 1,
"nullable": true,
"readOnly": true,
"description": "The identifier for a newsletter variant."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"failure_message": {
"type": "string",
"nullable": true,
"description": "Explains why a message failed, if applicable."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
},
"message_template_id": {
"type": "integer",
"readOnly": true,
"deprecated": true,
"description": "The identifier of the message template used to create a message."
},
"customer_identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
}
},
"description": "Describes an individual message delivery. The object contains keys for all possible parents of the message (`newsletter_id`, `broadcast_id`, etc) but only the parents of the delivery are populated. Other parent IDs are null."
}
},
"description": "Describes an individual message delivery. The object contains keys for all possible parents of the message (`newsletter_id`, `broadcast_id`, etc) but only the parents of the delivery are populated. Other parent IDs are null."
}
MessagesListDeliveriesResponse
{
"type": "object",
"properties": {
"messages": {
"type": "array",
"items": {
"type": "object",
"example": {
"id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=X",
"type": "email",
"created": 1619137767,
"metrics": {
"sent": 1619137768,
"delivered": 1619137768
},
"subject": "Did you get that thing I sent you?",
"action_id": 215,
"forgotten": false,
"recipient": "person@example.com",
"content_id": null,
"campaign_id": 23,
"customer_id": null,
"broadcast_id": null,
"newsletter_id": null,
"deduplicate_id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=:1619137768",
"failure_message": null,
"msg_template_id": 43,
"parent_action_id": null,
"trigger_event_id": null
},
"properties": {
"id": {
"type": "string",
"example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
"readOnly": true,
"description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"metrics": {
"type": "object",
"properties": {
"sent": {
"type": "integer",
"description": "The timestamp when the message was `sent`."
},
"failed": {
"type": "integer",
"description": "The timestamp when the message `failed`."
},
"opened": {
"type": "integer",
"description": "The timestamp when the message was `opened`."
},
"bounced": {
"type": "integer",
"description": "The timestamp when the message `bounced`."
},
"clicked": {
"type": "integer",
"description": "The timestamp when the message was `clicked`."
},
"created": {
"type": "integer",
"description": "The timestamp when the message was `created`."
},
"drafted": {
"type": "integer",
"description": "The timestamp when the message was `drafted`."
},
"dropped": {
"type": "integer",
"description": "The timestamp when the message was `dropped`."
},
"spammed": {
"type": "integer",
"description": "The timestamp when the message was marked as spam."
},
"converted": {
"type": "integer",
"description": "The timestamp when the message was `converted`."
},
"delivered": {
"type": "integer",
"description": "The timestamp when the message was `delivered`."
},
"unsubscribed": {
"type": "integer",
"description": "The timestamp when a person unsubscribed based on this message."
},
"undeliverable": {
"type": "integer",
"description": "The timestamp when the message became `undeliverable`."
}
},
"description": "Metrics for an individual instance of a message; each item in the object represents the timestamp when a message achieved a particular metric. This object only contains metrics that have been recorded."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"action_id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"forgotten": {
"type": "boolean",
"description": "If true message contents are not retained by Customer.io."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"content_id": {
"type": "integer",
"example": 1,
"nullable": true,
"readOnly": true,
"description": "The identifier for a newsletter variant."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"failure_message": {
"type": "string",
"nullable": true,
"description": "Explains why a message failed, if applicable."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
},
"message_template_id": {
"type": "integer",
"readOnly": true,
"deprecated": true,
"description": "The identifier of the message template used to create a message."
},
"customer_identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
}
},
"description": "Describes an individual message delivery. The object contains keys for all possible parents of the message (`newsletter_id`, `broadcast_id`, etc) but only the parents of the delivery are populated. Other parent IDs are null."
},
"description": "Each object in the array describes an individual message delivery. The object contains keys for all possible parents of the message (`newsletter_id`, `broadcast_id`, etc) but only the parents of the delivery are populated. Other parent IDs are null."
}
}
}
NewslettersGetLinkMetricsResponse
{
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"link": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1234,
"description": "The ID of the link."
},
"href": {
"type": "string",
"example": "https://customer.io/docs",
"description": "The link destination—a URL, mailto, etc."
}
}
},
"metric": {
"type": "object",
"properties": {
"series": {
"type": "object",
"properties": {
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
1,
3,
5,
7
],
"description": "An array of results from oldest to newest, where each result indicates a period."
}
}
}
},
"description": "Contains metrics for the link."
}
}
}
}
}
}
NewslettersGetMessageMetadataResponse
{
"type": "object",
"properties": {
"messages": {
"type": "array",
"items": {
"type": "object",
"example": {
"id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=X",
"type": "email",
"created": 1619137767,
"metrics": {
"sent": 1619137768,
"delivered": 1619137768
},
"subject": "Did you get that thing I sent you?",
"action_id": 215,
"forgotten": false,
"recipient": "person@example.com",
"content_id": null,
"campaign_id": 23,
"customer_id": null,
"broadcast_id": null,
"newsletter_id": null,
"deduplicate_id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=:1619137768",
"failure_message": null,
"msg_template_id": 43,
"parent_action_id": null,
"trigger_event_id": null
},
"properties": {
"id": {
"type": "string",
"example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
"readOnly": true,
"description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"metrics": {
"type": "object",
"properties": {
"sent": {
"type": "integer",
"description": "The timestamp when the message was `sent`."
},
"failed": {
"type": "integer",
"description": "The timestamp when the message `failed`."
},
"opened": {
"type": "integer",
"description": "The timestamp when the message was `opened`."
},
"bounced": {
"type": "integer",
"description": "The timestamp when the message `bounced`."
},
"clicked": {
"type": "integer",
"description": "The timestamp when the message was `clicked`."
},
"created": {
"type": "integer",
"description": "The timestamp when the message was `created`."
},
"drafted": {
"type": "integer",
"description": "The timestamp when the message was `drafted`."
},
"dropped": {
"type": "integer",
"description": "The timestamp when the message was `dropped`."
},
"spammed": {
"type": "integer",
"description": "The timestamp when the message was marked as spam."
},
"converted": {
"type": "integer",
"description": "The timestamp when the message was `converted`."
},
"delivered": {
"type": "integer",
"description": "The timestamp when the message was `delivered`."
},
"unsubscribed": {
"type": "integer",
"description": "The timestamp when a person unsubscribed based on this message."
},
"undeliverable": {
"type": "integer",
"description": "The timestamp when the message became `undeliverable`."
}
},
"description": "Metrics for an individual instance of a message; each item in the object represents the timestamp when a message achieved a particular metric. This object only contains metrics that have been recorded."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"action_id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"forgotten": {
"type": "boolean",
"description": "If true message contents are not retained by Customer.io."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"content_id": {
"type": "integer",
"example": 1,
"nullable": true,
"readOnly": true,
"description": "The identifier for a newsletter variant."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"failure_message": {
"type": "string",
"nullable": true,
"description": "Explains why a message failed, if applicable."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
},
"message_template_id": {
"type": "integer",
"readOnly": true,
"deprecated": true,
"description": "The identifier of the message template used to create a message."
},
"customer_identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
}
},
"description": "Describes an individual message delivery. The object contains keys for all possible parents of the message (`newsletter_id`, `broadcast_id`, etc) but only the parents of the delivery are populated. Other parent IDs are null."
},
"example": [
{
"id": "dgOq6QWq6QUDAAF22PaOyFVqVxHY3rI5fsg=X",
"type": "email",
"created": 1609957805,
"metrics": {
"sent": 1609957832,
"delivered": 1609957872
},
"subject": "Did you get that thing I sent you?",
"action_id": null,
"forgotten": false,
"recipient": "person@email.com",
"content_id": 178,
"campaign_id": null,
"customer_id": "1a55d8d1-b13d-4f1f-858f-a93ef21e3a7d",
"broadcast_id": null,
"newsletter_id": 72,
"deduplicate_id": "dgOq6QWq6QUDAAF22PaOyFVqVxHY3rI5fsg=:1609957872",
"failure_message": null,
"msg_template_id": 178
}
]
}
}
}
NewslettersGetMetadataResponse
{
"type": "object",
"properties": {
"newsletter": {
"type": "object",
"example": {
"id": 128275,
"name": "Example Newsletter",
"tags": [
"Example Tag"
],
"type": "email",
"created": 1481653929,
"sent_at": null,
"updated": 1484870424,
"content_ids": [
45,
90
],
"deduplicate_id": "128275:1484870424",
"recipient_segment_ids": [
10
],
"subscription_topic_id": 1
},
"properties": {
"id": {
"type": "integer",
"example": 10,
"description": "The identifier for a newsletter."
},
"name": {
"type": "string",
"readOnly": true,
"description": "The name of the newsletter."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of tags you set on this newsletter."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push",
"in_app"
],
"type": "string",
"description": "The type of newsletter—`email`, `twilio`, etc."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"sent_at": {
"type": "integer",
"format": "unix timestamp",
"description": "The last time the newsletter was sent."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"content_ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of languages in a multi-language newsletter and/or A/B test variants for this message. [Look up a newsletter variant](https://customer.io/docs/api/app/) to get more information about an individual content ID."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"recipient_segment_ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of segments used in a newsletter's recipient filter, returned if newsletter recipients were filtered by one or more segments."
},
"subscription_topic_id": {
"type": "integer",
"example": 1,
"description": "The identifier of a subscription topic. Remember, subscription topics are assigned an incrementing number, starting at 1."
}
}
}
}
}
NewslettersGetMetricsResponse
{
"type": "object",
"properties": {
"metric": {
"type": "object",
"properties": {
"series": {
"allOf": [
{
"type": "object",
"properties": {
"2xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "2xx responses by period, representative of webhook performance."
},
"3xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "3xx responses by period, representative of webhook performance."
},
"4xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "4xx responses by period, representative of webhook performance."
},
"5xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "5xx responses by period, representative of webhook performance."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
},
{
"type": "object",
"properties": {
"sent": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of sent messages."
},
"failed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `failed` messages."
},
"opened": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `opened` messages."
},
"bounced": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `bounced` messages."
},
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `clicked` messages."
},
"created": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `created` messages."
},
"drafted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `drafted` messages."
},
"spammed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of spam complaints."
},
"deferred": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `deferred` messages."
},
"attempted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `attempted` messages."
},
"converted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `converted` messages."
},
"delivered": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `delivered` messages."
},
"suppressed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `suppressed` messages."
},
"unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of unsubscribes attributed to the campaign or message."
},
"undeliverable": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `undeliverable` messages."
},
"topic_unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of topic unsubscribes in a given period."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
}
]
}
}
}
}
}
NewslettersGetNewsletterVariantLinkMetricsResponse
{
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"link": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1234,
"description": "The ID of the link."
},
"href": {
"type": "string",
"example": "https://customer.io/docs",
"description": "The link destination—a URL, mailto, etc."
}
}
},
"metric": {
"type": "object",
"properties": {
"series": {
"type": "object",
"properties": {
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
1,
3,
5,
7
],
"description": "An array of results from oldest to newest, where each result indicates a period."
}
}
}
},
"description": "Contains metrics for the link."
}
}
},
"description": "Each object in the array represents a link in your newsletter variant."
}
}
}
NewslettersGetTranslationInfoResponse
{
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
}
}
NewslettersGetTranslationResponse
{
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
}
}
NewslettersGetVariantInfoResponse
{
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
}
}
NewslettersGetVariantMetricsResponse
{
"type": "object",
"properties": {
"metric": {
"type": "object",
"properties": {
"series": {
"allOf": [
{
"type": "object",
"properties": {
"2xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "2xx responses by period, representative of webhook performance."
},
"3xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "3xx responses by period, representative of webhook performance."
},
"4xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "4xx responses by period, representative of webhook performance."
},
"5xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "5xx responses by period, representative of webhook performance."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
},
{
"type": "object",
"properties": {
"sent": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of sent messages."
},
"failed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `failed` messages."
},
"opened": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `opened` messages."
},
"bounced": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `bounced` messages."
},
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `clicked` messages."
},
"created": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `created` messages."
},
"drafted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `drafted` messages."
},
"spammed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of spam complaints."
},
"deferred": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `deferred` messages."
},
"attempted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `attempted` messages."
},
"converted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `converted` messages."
},
"delivered": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `delivered` messages."
},
"suppressed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `suppressed` messages."
},
"unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of unsubscribes attributed to the campaign or message."
},
"undeliverable": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `undeliverable` messages."
},
"topic_unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of topic unsubscribes in a given period."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
}
]
}
}
}
}
}
NewslettersListNewslettersResponse
{
"type": "object",
"properties": {
"newsletters": {
"type": "array",
"items": {
"type": "object",
"example": {
"id": 128275,
"name": "Example Newsletter",
"tags": [
"Example Tag"
],
"type": "email",
"created": 1481653929,
"sent_at": null,
"updated": 1484870424,
"content_ids": [
45,
90
],
"deduplicate_id": "128275:1484870424",
"recipient_segment_ids": [
10
],
"subscription_topic_id": 1
},
"properties": {
"id": {
"type": "integer",
"example": 10,
"description": "The identifier for a newsletter."
},
"name": {
"type": "string",
"readOnly": true,
"description": "The name of the newsletter."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of tags you set on this newsletter."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push",
"in_app"
],
"type": "string",
"description": "The type of newsletter—`email`, `twilio`, etc."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"sent_at": {
"type": "integer",
"format": "unix timestamp",
"description": "The last time the newsletter was sent."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"content_ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of languages in a multi-language newsletter and/or A/B test variants for this message. [Look up a newsletter variant](https://customer.io/docs/api/app/) to get more information about an individual content ID."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"recipient_segment_ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of segments used in a newsletter's recipient filter, returned if newsletter recipients were filtered by one or more segments."
},
"subscription_topic_id": {
"type": "integer",
"example": 1,
"description": "The identifier of a subscription topic. Remember, subscription topics are assigned an incrementing number, starting at 1."
}
}
}
}
}
}
NewslettersListTestGroupsResponse
{
"type": "object",
"example": {
"test_groups": [
{
"id": 0,
"name": "A",
"label": "test 1",
"winner": false,
"content_ids": [
25,
26
]
},
{
"id": 2,
"name": "B",
"label": "test 2",
"winner": false,
"content_ids": [
27,
28
]
}
]
},
"properties": {
"test_groups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The ID of the A/B test group."
},
"name": {
"type": "string",
"description": "The name of the A/B test group."
},
"label": {
"type": "string",
"description": "The name of the variant."
},
"winner": {
"type": "boolean",
"description": "Whether this variant is the winner of the test."
},
"content_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of content_ids for each variant in the test group."
}
}
},
"description": "Each object represents one of the test groups."
}
}
}
NewslettersListVariantsResponse
{
"type": "object",
"properties": {
"contents": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
}
}
}
NewslettersUpdateTranslation200Response
{
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
}
}
NewslettersUpdateTranslationRequest
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
NewslettersUpdateTranslationRequest1
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
NewslettersUpdateTranslationResponse
{
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
}
}
NewslettersUpdateVariantContentsRequest
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
NewslettersUpdateVariantContentsResponse
{
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
}
}
ObjectsFindObjectsFilterRequest
{
"type": "object",
"required": [
"object_type_id",
"filter"
],
"properties": {
"filter": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *any* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "object attribute",
"properties": {
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "object attribute",
"properties": {
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "not",
"properties": {
"not": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *all* conditions."
},
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
},
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
}
},
"description": null
},
{
"type": "object",
"title": "object attribute",
"properties": {
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
},
"description": "A simple filter to find objects matching an attribute condition."
}
],
"title": "Object Filter",
"description": "When filtering for objects, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `object_attribute` represents the individual conditions you can filter a group of people for.\n\nThe top level of this object can only contain a single property, but you can nest `and` and `or` properties to produce complex filters.\n"
},
"object_type_id": {
"type": "string",
"example": "1",
"description": "The type of object you want to search in. Object type IDs are integers passed as strings."
}
}
}
ObjectsFindObjectsFilterResponse
{
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"acmeInc"
],
"description": "A list of object IDs matching the object_type_id and filter in the request. Items are the same as the `object_id` values under `identifiers`, but this array may be easier to search/sort through if you have a large number of objects and don't need to to use the `cio_object_id`."
},
"next": {
"$ref": "#/components/schemas/next"
},
"identifiers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"example": "acmeInc",
"description": "The ID of the object, assigned by you or your systems."
},
"cio_object_id": {
"type": "string",
"example": "ob020101",
"description": "The canonical, immutable identifier for the object, assigned by Customer.io."
}
}
}
}
}
}
ObjectsGetAllObjectTypesResponse
{
"type": "object",
"properties": {
"types": {
"type": "array",
"items": {
"type": "object",
"example": {
"id": "1X",
"icon": "calendar",
"name": "Concerts",
"slug": "concerts",
"enabled": true,
"singular_name": "Concert",
"singular_slug": "concert"
},
"properties": {
"id": {
"type": "string",
"description": "The `object_type_id` that you'll use with the Journeys Track API to create or modify objects. Object type IDs are integers passed as strings."
},
"icon": {
"type": "string",
"description": "The name of the icon or emoji that represents the object type in the Customer.io UI. Most commonly, you'll see this in the left-side navigation panel in Journeys."
},
"name": {
"type": "string",
"description": "The name of the object type."
},
"slug": {
"type": "string",
"description": "The slug of the page in the Customer.io UI for the object type."
},
"enabled": {
"type": "boolean",
"description": "If true, the object type is enabled."
},
"singular_name": {
"type": "string",
"description": "The singular name of the object type."
},
"singular_slug": {
"type": "string",
"description": "The singular slug of the page in the Customer.io UI for the object type."
}
}
}
}
}
}
ObjectsGetAttributesResponse
{
"type": "object",
"properties": {
"object": {
"type": "object",
"properties": {
"attributes": {
"type": "object",
"description": "Attributes assigned to this object.",
"additionalProperties": {
"x-additionalPropertiesName": "Object Attributes"
}
},
"timestamps": {
"type": "object",
"description": "The epoch timestamps when corresponding attributes were set on the object.",
"additionalProperties": {
"type": "integer",
"format": "unix timestamp",
"x-additionalPropertiesName": "Object Attribute Timestamps"
}
},
"identifiers": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_object_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Identifies an object."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "The object specified in the endpoint path"
}
}
}
ObjectsGetObjectRelationshipsResponse
{
"type": "object",
"properties": {
"next": {
"$ref": "#/components/schemas/next"
},
"cio_relationships": {
"type": "array",
"items": {
"identifiers": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/customer_id"
},
"email": {
"$ref": "#/components/schemas/email_address"
},
"cio_id": {
"$ref": "#/components/schemas/cio_id"
}
},
"description": "Identifies an individual person."
},
"object_type_id": {
"$ref": "#/components/schemas/object_type_id"
},
"object_type_disabled": {
"type": "boolean",
"description": "If true, the object is disabled."
}
},
"example": [
{
"identifiers": {
"id": "acmeInc",
"cio_id": "ob020101"
},
"object_type_id": "1",
"object_type_disabled": false
}
],
"description": "A list of people related to the object specified in the endpoint path."
}
}
}
ReportingWebhooksCreateWebhookConfigRequest
{
"type": "object",
"required": [
"name",
"endpoint",
"events"
],
"properties": {
"id": {
"type": "integer",
"example": 4,
"readOnly": true,
"description": "The identifier for the webhook."
},
"name": {
"type": "string",
"example": "my cool webhook",
"description": "The name of your webhook."
},
"events": {
"type": "array",
"items": {
"enum": [
"customer_subscribed",
"customer_unsubscribed",
"cio_subscription_preferences_changed",
"email_drafted",
"email_attempted",
"email_sent",
"email_delivered",
"email_opened",
"email_clicked",
"email_converted",
"email_bounced",
"email_dropped",
"email_deferred",
"email_spammed",
"email_failed",
"email_unsubscribed",
"email_undeliverable",
"push_drafted",
"push_attempted",
"push_sent",
"push_delivered",
"push_opened",
"push_clicked",
"push_converted",
"push_bounced",
"push_dropped",
"push_failed",
"push_undeliverable",
"slack_drafted",
"slack_attempted",
"slack_sent",
"slack_clicked",
"slack_converted",
"slack_failed",
"sms_drafted",
"sms_attempted",
"sms_sent",
"sms_delivered",
"sms_clicked",
"sms_converted",
"sms_bounced",
"sms_failed",
"sms_undeliverable",
"webhook_drafted",
"webhook_attempted",
"webhook_sent",
"webhook_clicked",
"webhook_converted",
"webhook_failed",
"webhook_undeliverable"
],
"type": "string"
},
"example": [
"email_failed",
"webhook_failed"
],
"minItems": 1,
"description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](https://customer.io/docs/api/app/) for more information about event types and the information they return."
},
"disabled": {
"type": "boolean",
"example": false,
"description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook."
},
"endpoint": {
"type": "string",
"format": "url",
"example": "http://example.com/webhook",
"description": "The webhook URL."
},
"with_content": {
"type": "boolean",
"example": false,
"description": "Set to `true` to include the message `body` in `_sent` events."
},
"full_resolution": {
"type": "boolean",
"default": false,
"example": true,
"description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events."
}
}
}
ReportingWebhooksCreateWebhookConfigResponse
{
"type": "object",
"required": [
"name",
"endpoint",
"events"
],
"properties": {
"id": {
"type": "integer",
"example": 4,
"readOnly": true,
"description": "The identifier for the webhook."
},
"name": {
"type": "string",
"example": "my cool webhook",
"description": "The name of your webhook."
},
"events": {
"type": "array",
"items": {
"enum": [
"customer_subscribed",
"customer_unsubscribed",
"cio_subscription_preferences_changed",
"email_drafted",
"email_attempted",
"email_sent",
"email_delivered",
"email_opened",
"email_clicked",
"email_converted",
"email_bounced",
"email_dropped",
"email_deferred",
"email_spammed",
"email_failed",
"email_unsubscribed",
"email_undeliverable",
"push_drafted",
"push_attempted",
"push_sent",
"push_delivered",
"push_opened",
"push_clicked",
"push_converted",
"push_bounced",
"push_dropped",
"push_failed",
"push_undeliverable",
"slack_drafted",
"slack_attempted",
"slack_sent",
"slack_clicked",
"slack_converted",
"slack_failed",
"sms_drafted",
"sms_attempted",
"sms_sent",
"sms_delivered",
"sms_clicked",
"sms_converted",
"sms_bounced",
"sms_failed",
"sms_undeliverable",
"webhook_drafted",
"webhook_attempted",
"webhook_sent",
"webhook_clicked",
"webhook_converted",
"webhook_failed",
"webhook_undeliverable"
],
"type": "string"
},
"example": [
"email_failed",
"webhook_failed"
],
"minItems": 1,
"description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](https://customer.io/docs/api/app/) for more information about event types and the information they return."
},
"disabled": {
"type": "boolean",
"example": false,
"description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook."
},
"endpoint": {
"type": "string",
"format": "url",
"example": "http://example.com/webhook",
"description": "The webhook URL."
},
"with_content": {
"type": "boolean",
"example": false,
"description": "Set to `true` to include the message `body` in `_sent` events."
},
"full_resolution": {
"type": "boolean",
"default": false,
"example": true,
"description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events."
}
}
}
ReportingWebhooksGetWebhookInfoResponse
{
"type": "object",
"required": [
"name",
"endpoint",
"events"
],
"properties": {
"id": {
"type": "integer",
"example": 4,
"readOnly": true,
"description": "The identifier for the webhook."
},
"name": {
"type": "string",
"example": "my cool webhook",
"description": "The name of your webhook."
},
"events": {
"type": "array",
"items": {
"enum": [
"customer_subscribed",
"customer_unsubscribed",
"cio_subscription_preferences_changed",
"email_drafted",
"email_attempted",
"email_sent",
"email_delivered",
"email_opened",
"email_clicked",
"email_converted",
"email_bounced",
"email_dropped",
"email_deferred",
"email_spammed",
"email_failed",
"email_unsubscribed",
"email_undeliverable",
"push_drafted",
"push_attempted",
"push_sent",
"push_delivered",
"push_opened",
"push_clicked",
"push_converted",
"push_bounced",
"push_dropped",
"push_failed",
"push_undeliverable",
"slack_drafted",
"slack_attempted",
"slack_sent",
"slack_clicked",
"slack_converted",
"slack_failed",
"sms_drafted",
"sms_attempted",
"sms_sent",
"sms_delivered",
"sms_clicked",
"sms_converted",
"sms_bounced",
"sms_failed",
"sms_undeliverable",
"webhook_drafted",
"webhook_attempted",
"webhook_sent",
"webhook_clicked",
"webhook_converted",
"webhook_failed",
"webhook_undeliverable"
],
"type": "string"
},
"example": [
"email_failed",
"webhook_failed"
],
"minItems": 1,
"description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](https://customer.io/docs/api/app/) for more information about event types and the information they return."
},
"disabled": {
"type": "boolean",
"example": false,
"description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook."
},
"endpoint": {
"type": "string",
"format": "url",
"example": "http://example.com/webhook",
"description": "The webhook URL."
},
"with_content": {
"type": "boolean",
"example": false,
"description": "Set to `true` to include the message `body` in `_sent` events."
},
"full_resolution": {
"type": "boolean",
"default": false,
"example": true,
"description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events."
}
}
}
ReportingWebhooksListReportingWebhooksResponse
{
"type": "object",
"properties": {
"reporting_webhooks": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"endpoint",
"events"
],
"properties": {
"id": {
"type": "integer",
"example": 4,
"readOnly": true,
"description": "The identifier for the webhook."
},
"name": {
"type": "string",
"example": "my cool webhook",
"description": "The name of your webhook."
},
"events": {
"type": "array",
"items": {
"enum": [
"customer_subscribed",
"customer_unsubscribed",
"cio_subscription_preferences_changed",
"email_drafted",
"email_attempted",
"email_sent",
"email_delivered",
"email_opened",
"email_clicked",
"email_converted",
"email_bounced",
"email_dropped",
"email_deferred",
"email_spammed",
"email_failed",
"email_unsubscribed",
"email_undeliverable",
"push_drafted",
"push_attempted",
"push_sent",
"push_delivered",
"push_opened",
"push_clicked",
"push_converted",
"push_bounced",
"push_dropped",
"push_failed",
"push_undeliverable",
"slack_drafted",
"slack_attempted",
"slack_sent",
"slack_clicked",
"slack_converted",
"slack_failed",
"sms_drafted",
"sms_attempted",
"sms_sent",
"sms_delivered",
"sms_clicked",
"sms_converted",
"sms_bounced",
"sms_failed",
"sms_undeliverable",
"webhook_drafted",
"webhook_attempted",
"webhook_sent",
"webhook_clicked",
"webhook_converted",
"webhook_failed",
"webhook_undeliverable"
],
"type": "string"
},
"example": [
"email_failed",
"webhook_failed"
],
"minItems": 1,
"description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](https://customer.io/docs/api/app/) for more information about event types and the information they return."
},
"disabled": {
"type": "boolean",
"example": false,
"description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook."
},
"endpoint": {
"type": "string",
"format": "url",
"example": "http://example.com/webhook",
"description": "The webhook URL."
},
"with_content": {
"type": "boolean",
"example": false,
"description": "Set to `true` to include the message `body` in `_sent` events."
},
"full_resolution": {
"type": "boolean",
"default": false,
"example": true,
"description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events."
}
}
}
}
}
}
ReportingWebhooksUpdateConfigurationRequest
{
"type": "object",
"required": [
"name",
"endpoint",
"events"
],
"properties": {
"id": {
"type": "integer",
"example": 4,
"readOnly": true,
"description": "The identifier for the webhook."
},
"name": {
"type": "string",
"example": "my cool webhook",
"description": "The name of your webhook."
},
"events": {
"type": "array",
"items": {
"enum": [
"customer_subscribed",
"customer_unsubscribed",
"cio_subscription_preferences_changed",
"email_drafted",
"email_attempted",
"email_sent",
"email_delivered",
"email_opened",
"email_clicked",
"email_converted",
"email_bounced",
"email_dropped",
"email_deferred",
"email_spammed",
"email_failed",
"email_unsubscribed",
"email_undeliverable",
"push_drafted",
"push_attempted",
"push_sent",
"push_delivered",
"push_opened",
"push_clicked",
"push_converted",
"push_bounced",
"push_dropped",
"push_failed",
"push_undeliverable",
"slack_drafted",
"slack_attempted",
"slack_sent",
"slack_clicked",
"slack_converted",
"slack_failed",
"sms_drafted",
"sms_attempted",
"sms_sent",
"sms_delivered",
"sms_clicked",
"sms_converted",
"sms_bounced",
"sms_failed",
"sms_undeliverable",
"webhook_drafted",
"webhook_attempted",
"webhook_sent",
"webhook_clicked",
"webhook_converted",
"webhook_failed",
"webhook_undeliverable"
],
"type": "string"
},
"example": [
"email_failed",
"webhook_failed"
],
"minItems": 1,
"description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](https://customer.io/docs/api/app/) for more information about event types and the information they return."
},
"disabled": {
"type": "boolean",
"example": false,
"description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook."
},
"endpoint": {
"type": "string",
"format": "url",
"example": "http://example.com/webhook",
"description": "The webhook URL."
},
"with_content": {
"type": "boolean",
"example": false,
"description": "Set to `true` to include the message `body` in `_sent` events."
},
"full_resolution": {
"type": "boolean",
"default": false,
"example": true,
"description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events."
}
}
}
ReportingWebhooksUpdateConfigurationResponse
{
"type": "object",
"required": [
"name",
"endpoint",
"events"
],
"properties": {
"id": {
"type": "integer",
"example": 4,
"readOnly": true,
"description": "The identifier for the webhook."
},
"name": {
"type": "string",
"example": "my cool webhook",
"description": "The name of your webhook."
},
"events": {
"type": "array",
"items": {
"enum": [
"customer_subscribed",
"customer_unsubscribed",
"cio_subscription_preferences_changed",
"email_drafted",
"email_attempted",
"email_sent",
"email_delivered",
"email_opened",
"email_clicked",
"email_converted",
"email_bounced",
"email_dropped",
"email_deferred",
"email_spammed",
"email_failed",
"email_unsubscribed",
"email_undeliverable",
"push_drafted",
"push_attempted",
"push_sent",
"push_delivered",
"push_opened",
"push_clicked",
"push_converted",
"push_bounced",
"push_dropped",
"push_failed",
"push_undeliverable",
"slack_drafted",
"slack_attempted",
"slack_sent",
"slack_clicked",
"slack_converted",
"slack_failed",
"sms_drafted",
"sms_attempted",
"sms_sent",
"sms_delivered",
"sms_clicked",
"sms_converted",
"sms_bounced",
"sms_failed",
"sms_undeliverable",
"webhook_drafted",
"webhook_attempted",
"webhook_sent",
"webhook_clicked",
"webhook_converted",
"webhook_failed",
"webhook_undeliverable"
],
"type": "string"
},
"example": [
"email_failed",
"webhook_failed"
],
"minItems": 1,
"description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](https://customer.io/docs/api/app/) for more information about event types and the information they return."
},
"disabled": {
"type": "boolean",
"example": false,
"description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook."
},
"endpoint": {
"type": "string",
"format": "url",
"example": "http://example.com/webhook",
"description": "The webhook URL."
},
"with_content": {
"type": "boolean",
"example": false,
"description": "Set to `true` to include the message `body` in `_sent` events."
},
"full_resolution": {
"type": "boolean",
"default": false,
"example": true,
"description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events."
}
}
}
SegmentsCreateManualSegmentRequest
{
"type": "object",
"required": [
"segment"
],
"properties": {
"segment": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"example": "Manual Segment 1",
"description": "The name of the segment."
},
"description": {
"type": "string",
"example": "My first manual segment",
"description": "A description for the segment. This can help you understand the purpose of the segment when you encounter it in other requests or in the UI."
}
}
}
}
}
SegmentsCreateManualSegmentResponse
{
"type": "object",
"properties": {
"segment": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 7,
"description": "The identifier for a segment."
},
"name": {
"type": "string",
"example": "Manual Segment 1",
"description": "The name of the segment."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": null,
"nullable": true,
"description": "The tags assigned to the segment, if any. Tags may help you sort through your segments."
},
"type": {
"enum": [
"dynamic",
"manual"
],
"type": "string",
"example": "manual",
"description": "The type of segment."
},
"state": {
"enum": [
"finished"
],
"type": "string",
"description": "The state of the segment. \n"
},
"progress": {
"type": "integer",
"example": null,
"nullable": true,
"description": "If Customer.io has not finished processing the segment, this indicates the percentage complete. Otherwise, this key is null."
},
"description": {
"type": "string",
"example": "My first manual segment",
"description": "A description for the segment. This can help you understand the purpose of the segment when you encounter it in other requests or in the UI."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
}
}
}
}
SegmentsGetCustomerCountResponse
{
"type": "object",
"properties": {
"count": {
"type": "integer",
"description": "The total number of customers in the segment."
}
}
}
SegmentsGetDependenciesResponse
{
"type": "object",
"properties": {
"used_by": {
"type": "object",
"properties": {
"campaigns": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The campaigns that use this segment."
},
"sent_newsletters": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The newsletters that you've sent that uses this segment."
},
"draft_newsletters": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The newsletters that are still in a draft state that reference this segment."
}
}
}
}
}
SegmentsGetSegmentInfoResponse
{
"type": "object",
"properties": {
"segment": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 7,
"description": "The identifier for a segment."
},
"name": {
"type": "string",
"example": "Manual Segment 1",
"description": "The name of the segment."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": null,
"nullable": true,
"description": "The tags assigned to the segment, if any. Tags may help you sort through your segments."
},
"type": {
"enum": [
"dynamic",
"manual"
],
"type": "string",
"example": "manual",
"description": "The type of segment."
},
"state": {
"enum": [
"finished"
],
"type": "string",
"description": "The state of the segment. \n"
},
"progress": {
"type": "integer",
"example": null,
"nullable": true,
"description": "If Customer.io has not finished processing the segment, this indicates the percentage complete. Otherwise, this key is null."
},
"description": {
"type": "string",
"example": "My first manual segment",
"description": "A description for the segment. This can help you understand the purpose of the segment when you encounter it in other requests or in the UI."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
}
}
}
}
SegmentsListMembershipResponse
{
"oneOf": [
{
"type": "object",
"title": "email or id",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The customers that belong to this segment."
},
"next": {
"type": "string",
"description": "Indicates the next page of results. Add `?start=<next_value>` to the request to get the next page of results."
},
"identifiers": {
"type": "array",
"items": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
},
"description": "The customers that belong to this segment."
}
}
},
{
"type": "object",
"title": "id only",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The customers that belong to this segment."
},
"next": {
"type": "string",
"description": "Indicates the next page of results. Add `?start=<next_value>` to the request to get the next page of results."
},
"identifiers": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"description": "A person's unique ID. This matches a value in `ids`."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains `id` and `cio_id` identifiers for a person in a workspace that doesn't use email as an identifier.\n"
},
"description": "The customers that belong to this segment."
}
}
}
]
}
SegmentsListResponse
{
"type": "object",
"properties": {
"segments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 7,
"description": "The identifier for a segment."
},
"name": {
"type": "string",
"example": "Manual Segment 1",
"description": "The name of the segment."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": null,
"nullable": true,
"description": "The tags assigned to the segment, if any. Tags may help you sort through your segments."
},
"type": {
"enum": [
"dynamic",
"manual"
],
"type": "string",
"example": "manual",
"description": "The type of segment."
},
"state": {
"enum": [
"finished"
],
"type": "string",
"description": "The state of the segment. \n"
},
"progress": {
"type": "integer",
"example": null,
"nullable": true,
"description": "If Customer.io has not finished processing the segment, this indicates the percentage complete. Otherwise, this key is null."
},
"description": {
"type": "string",
"example": "My first manual segment",
"description": "A description for the segment. This can help you understand the purpose of the segment when you encounter it in other requests or in the UI."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
}
}
}
}
}
SendMessagesTransactionalEmail400Response
{
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "Describes the error that caused your request to fail."
}
},
"description": "Contains errors."
}
}
}
SendMessagesTransactionalEmailRequest
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"transactional_message_id"
],
"properties": {
"transactional_message_id": {
"oneOf": [
{
"type": "integer",
"title": "ID (integer)",
"example": 44,
"description": "The ID of the transactional message you want to send."
},
{
"type": "string",
"title": "Trigger Name (string)",
"example": "pwdreset",
"description": "The name of trigger for the transactional message you want to send; you set the trigger name in the *Configure Settings* step when setting up your message. This is case insensitive."
}
],
"description": "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 the template (case insensitive)."
}
}
},
{
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The HTML body of your message. This overrides the body of the transactional template (referenced by `transactional_message_id`). 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."
},
"from": {
"type": "string",
"example": "support@example.com",
"description": "The address that your email is from. This address must be verified by Customer.io. This overrides the from address set within the transactional template (referenced by `transactional_message_id`). 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>`."
},
"subject": {
"type": "string",
"description": "The subject line for your message. This overrides the subject of the transactional template (referenced by `transactional_message_id`)."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"language": {
"type": "string",
"description": "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](https://customer.io/docs/api/app/)."
},
"body_plain": {
"type": "string",
"description": "The plaintext body of your message. This overrides the body of your transactional template (referenced by `transactional_message_id`)."
}
}
},
{
"type": "object",
"required": [
"to",
"identifiers"
],
"properties": {
"send_at": {
"type": "integer",
"description": "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."
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": 12345,
"description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n"
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "cool.person@example.com",
"description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": 3000001,
"description": "A unique, immutable identifier for a person, set by Customer.io when you add a person."
}
}
}
],
"description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`."
},
"queue_draft": {
"type": "boolean",
"default": false,
"description": "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."
},
"message_data": {
"type": "object",
"example": {
"account_id": "123dj",
"password_reset_token": "abcde-12345-fghij-d888"
},
"description": "An object containing the key-value pairs referenced using liquid in your message.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Liquid Data"
}
},
"send_to_unsubscribed": {
"type": "boolean",
"default": true,
"description": "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`."
},
"disable_message_retention": {
"type": "boolean",
"default": false,
"description": "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`."
}
}
},
{
"type": "object",
"properties": {
"to": {
"type": "string",
"example": "cool.person@example.com",
"description": "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.\n\nYou 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>`. \n"
},
"bcc": {
"type": "string",
"example": "bcc@example.com",
"description": "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."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"tracked": {
"type": "boolean",
"default": true,
"description": "If true, Customer.io tracks opens and link clicks in your message."
},
"fake_bcc": {
"type": "boolean",
"description": "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).\n"
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"description": "The address that recipients can reply to, if different from the `from` address."
},
"preheader": {
"type": "string",
"description": "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."
},
"body_plain": {
"type": "string",
"description": "By default, we generate a plaintext version of your message body for each delivery. Use this key to override the default plain text body."
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"type": "string",
"format": "base64",
"x-doNotRender": true,
"x-additionalPropertiesName": "Attachment Names"
}
},
"description": "A dictionary of attachments where the filename is the key and the value is the base64-encoded contents. The total size of all attachments must be less than 2 MB. Some filetype extensions are restricted.\n"
},
"disable_css_preprocessing": {
"type": "boolean",
"default": false,
"example": false,
"description": "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."
}
}
}
],
"title": "With template",
"example": {
"to": "cool.person@example.com",
"bcc": "bcc@example.com",
"from": "override-templated-address@example.com",
"subject": "Did you really login from a new location?",
"tracked": true,
"identifiers": {
"email": "cool.person@example.com"
},
"queue_draft": false,
"message_data": {
"account_id": "123dj",
"password_reset_token": "abcde-12345-fghij-d888"
},
"send_to_unsubscribed": true,
"transactional_message_id": 44,
"disable_css_preprocessing": true,
"disable_message_retention": false
},
"description": "Send a transactional message using a template that you set up in Customer.io."
},
{
"allOf": [
{
"type": "object",
"required": [
"body",
"subject",
"from"
],
"properties": {
"body": {
"type": "string",
"example": "Your temporary password is {{message_data.password_reset_token}}",
"description": "The body of your message."
},
"from": {
"type": "string",
"example": "support@example.com",
"description": "The address that your email is from. This address must be verified by Customer.io. You can include a display/friendly name in your from address in the format `Person <person@example.com>`."
},
"subject": {
"type": "string",
"example": "Reset your password!",
"description": "The subject line for your message."
}
}
},
{
"type": "object",
"required": [
"to",
"identifiers"
],
"properties": {
"send_at": {
"type": "integer",
"description": "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."
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": 12345,
"description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n"
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "cool.person@example.com",
"description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": 3000001,
"description": "A unique, immutable identifier for a person, set by Customer.io when you add a person."
}
}
}
],
"description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`."
},
"queue_draft": {
"type": "boolean",
"default": false,
"description": "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."
},
"message_data": {
"type": "object",
"example": {
"account_id": "123dj",
"password_reset_token": "abcde-12345-fghij-d888"
},
"description": "An object containing the key-value pairs referenced using liquid in your message.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Liquid Data"
}
},
"send_to_unsubscribed": {
"type": "boolean",
"default": true,
"description": "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`."
},
"disable_message_retention": {
"type": "boolean",
"default": false,
"description": "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`."
}
}
},
{
"type": "object",
"properties": {
"to": {
"type": "string",
"example": "cool.person@example.com",
"description": "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.\n\nYou 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>`. \n"
},
"bcc": {
"type": "string",
"example": "bcc@example.com",
"description": "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."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"tracked": {
"type": "boolean",
"default": true,
"description": "If true, Customer.io tracks opens and link clicks in your message."
},
"fake_bcc": {
"type": "boolean",
"description": "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).\n"
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"description": "The address that recipients can reply to, if different from the `from` address."
},
"preheader": {
"type": "string",
"description": "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."
},
"body_plain": {
"type": "string",
"description": "By default, we generate a plaintext version of your message body for each delivery. Use this key to override the default plain text body."
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"type": "string",
"format": "base64",
"x-doNotRender": true,
"x-additionalPropertiesName": "Attachment Names"
}
},
"description": "A dictionary of attachments where the filename is the key and the value is the base64-encoded contents. The total size of all attachments must be less than 2 MB. Some filetype extensions are restricted.\n"
},
"disable_css_preprocessing": {
"type": "boolean",
"default": false,
"example": false,
"description": "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."
}
}
}
],
"title": "Without template",
"example": {
"to": "cool.person@example.com",
"bcc": "bcc@example.com",
"body": "Your temporary password is {{message_data.password_reset_token}}",
"from": "Support <support@example.com>",
"subject": "Your password reset request!",
"tracked": true,
"identifiers": {
"id": 12345
},
"queue_draft": false,
"message_data": {
"account_id": "123dj",
"password_reset_token": "abcde-12345-fghij-d888"
},
"send_to_unsubscribed": true,
"disable_css_preprocessing": true,
"disable_message_retention": false
},
"description": "Create your own message from scratch."
}
],
"description": "The payload of a transactional message."
}
SendMessagesTransactionalEmailResponse
{
"type": "object",
"properties": {
"queued_at": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when the message is sent."
},
"delivery_id": {
"type": "string",
"description": "A unique identifier for the message."
}
}
}
SendMessagesTransactionalPush400Response
{
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "Describes the error that caused your request to fail."
}
},
"description": "Contains errors."
}
}
}
SendMessagesTransactionalPushRequest
{
"allOf": [
{
"type": "object",
"required": [
"transactional_message_id"
],
"properties": {
"transactional_message_id": {
"oneOf": [
{
"type": "integer",
"title": "ID (integer)",
"example": 44,
"description": "The ID of the transactional message you want to send."
},
{
"type": "string",
"title": "Trigger Name (string)",
"example": "pwdreset",
"description": "The name of trigger for the transactional message you want to send; you set the trigger name in the *Configure Settings* step when setting up your message. This is case insensitive."
}
],
"description": "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 the template (case insensitive)."
}
}
},
{
"type": "object",
"properties": {
"to": {
"enum": [
"all",
"last_used",
"$device_token"
],
"type": "string",
"default": "all",
"description": "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`)."
},
"link": {
"type": "string",
"description": "A deep link to open when the push is tapped. This overrides Link from the transactional template (referenced by `transactional_message_id`)."
},
"sound": {
"enum": [
"default",
"none"
],
"type": "string",
"default": "default",
"description": "**For iOS Only**: your notification can alert users with the device's default notification sound or play no sound at all. \n"
},
"title": {
"type": "string",
"description": "The title for your notification. This overrides the title of the transactional template (referenced by `transactional_message_id`)."
},
"message": {
"type": "string",
"description": "The message body for your notification. This overrides the notification body of the transactional template (referenced by `transactional_message_id`)."
},
"language": {
"type": "string",
"description": "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](https://customer.io/docs/api/app/)."
},
"image_url": {
"type": "string",
"description": "An image URL to show in the push. This overrides Image from the transactional template (referenced by `transactional_message_id`)."
},
"custom_data": {
"type": "object",
"description": "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": {
"allOf": [
{
"type": "object",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"description": "The device token."
}
}
},
{
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"enum": [
"ios",
"android"
],
"type": "string",
"description": "The device/messaging platform."
},
"last_used": {
"type": "integer",
"format": "unix timestamp",
"description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
},
"attributes": {
"type": "object",
"properties": {
"device_os": {
"type": "string",
"description": "The operating system, including the version, on the device."
},
"app_version": {
"type": "string",
"description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
},
"_last_status": {
"enum": [
"",
"bounced",
"sent",
"suppressed"
],
"type": "string",
"readOnly": true,
"description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
},
"device_model": {
"type": "string",
"description": "The model of the device a person uses."
},
"push_enabled": {
"enum": [
"true",
"false"
],
"type": "string",
"description": "If `\"true\"`, the device is opted-in and can receive push notifications."
},
"device_locale": {
"type": "string",
"description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
},
"cio_sdk_version": {
"type": "string",
"description": "The version of the Customer.io SDK in the app."
}
},
"description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
"additionalProperties": {
"type": "string",
"description": "Custom properties that you want to associate with the device.",
"x-additionalPropertiesName": "Custom Device Attributes"
}
}
},
"description": "Device information common to the v1 and v2 APIs."
}
],
"description": "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": {
"type": "object",
"properties": {
"ios": {
"oneOf": [
{
"type": "object",
"title": "FCM",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"required": [
"apns"
],
"properties": {
"apns": {
"type": "object",
"required": [
"payload"
],
"properties": {
"headers": {
"type": "object",
"description": "Headers defined by [Apple's payload reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) that you want to pass through FCM."
},
"payload": {
"type": "object",
"properties": {
"CIO": {
"type": "object",
"required": [
"push"
],
"properties": {
"push": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "A push payload for the iOS SDK."
}
},
"description": "Contains properties interpreted by the Customer.io iOS SDK."
},
"aps": {
"type": "object",
"properties": {
"alert": {
"oneOf": [
{
"type": "string",
"title": "Simple alert",
"description": "A simple alert message."
},
{
"type": "object",
"title": "Complex alert",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
},
"loc-key": {
"type": "string",
"description": "The key for a localized message string in your app’s Localizable.strings file."
},
"loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
},
"subtitle": {
"type": "string",
"description": "Additional information that explains the purpose of the notification."
},
"launch-image": {
"type": "string",
"description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
},
"title-loc-key": {
"type": "string",
"description": "The key for a localized title string in your app’s Localizable.strings files."
},
"title-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
},
"subtitle-loc-key": {
"type": "string",
"description": "The key for a localized subtitle string in your app’s Localizable.strings file."
},
"subtitle-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
}
}
}
]
},
"badge": {
"type": "integer",
"description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
},
"sound": {
"oneOf": [
{
"type": "string",
"title": "Regular alert",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
},
{
"type": "object",
"title": "Critical alert",
"properties": {
"name": {
"type": "string",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
},
"volume": {
"type": "number",
"description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
},
"critical": {
"type": "integer",
"description": "1 indicates critical. 0 is not critical."
}
}
}
]
},
"category": {
"type": "string",
"description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
},
"thread-id": {
"type": "string",
"description": "An identifier to group related notifications."
},
"mutable-content": {
"type": "integer",
"description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
},
"relevance-score": {
"type": "number",
"description": "A number between 0 and 1. The highest score is considered the \"most relevant\" and is featured in the notification summary."
},
"content-available": {
"type": "integer",
"description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
},
"target-content-id": {
"type": "string",
"description": "The identifier of the window brought forward."
},
"interruption-level": {
"enum": [
"passive",
"active",
"time-sensitive",
"critical"
],
"type": "string",
"description": "Indicates the importance and delivery timing of a notification."
}
},
"description": "A push payload intended for an iOS device."
}
},
"description": "Contains a push payload.",
"additionalProperties": {
"description": "Additional properties that you've set up your app to interpret outside of the Customer.io SDK.",
"x-additionalPropertiesName": "Custom key-value pairs"
}
}
},
"description": "Defines a payload for iOS devices sent through Firebase Cloud Messaging (FCM)."
}
},
"description": "The base object for all FCM payloads."
}
}
},
{
"type": "object",
"title": "APNS",
"properties": {
"CIO": {
"type": "object",
"required": [
"push"
],
"properties": {
"push": {
"type": "object",
"properties": {
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
}
},
"description": "Describes push notification options supported by the CIO SDK."
}
},
"description": "Contains options supported by the Customer.io SDK."
},
"aps": {
"type": "object",
"properties": {
"alert": {
"oneOf": [
{
"type": "string",
"title": "Simple alert",
"description": "A simple alert message."
},
{
"type": "object",
"title": "Complex alert",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
},
"loc-key": {
"type": "string",
"description": "The key for a localized message string in your app’s Localizable.strings file."
},
"loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
},
"subtitle": {
"type": "string",
"description": "Additional information that explains the purpose of the notification."
},
"launch-image": {
"type": "string",
"description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
},
"title-loc-key": {
"type": "string",
"description": "The key for a localized title string in your app’s Localizable.strings files."
},
"title-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
},
"subtitle-loc-key": {
"type": "string",
"description": "The key for a localized subtitle string in your app’s Localizable.strings file."
},
"subtitle-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
}
}
}
]
},
"badge": {
"type": "integer",
"description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
},
"sound": {
"oneOf": [
{
"type": "string",
"title": "Regular alert",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
},
{
"type": "object",
"title": "Critical alert",
"properties": {
"name": {
"type": "string",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
},
"volume": {
"type": "number",
"description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
},
"critical": {
"type": "integer",
"description": "1 indicates critical. 0 is not critical."
}
}
}
]
},
"category": {
"type": "string",
"description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
},
"thread-id": {
"type": "string",
"description": "An identifier to group related notifications."
},
"mutable-content": {
"type": "integer",
"description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
},
"relevance-score": {
"type": "number",
"description": "A number between 0 and 1. The highest score is considered the \"most relevant\" and is featured in the notification summary."
},
"content-available": {
"type": "integer",
"description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
},
"target-content-id": {
"type": "string",
"description": "The identifier of the window brought forward."
},
"interruption-level": {
"enum": [
"passive",
"active",
"time-sensitive",
"critical"
],
"type": "string",
"description": "Indicates the importance and delivery timing of a notification."
}
},
"description": "A push payload intended for an iOS device."
}
}
}
],
"description": "Your payload changes depending on whether you send to iOS devices through Google's Firebase Cloud Messaging (FCM) or Apple's Push Notification service (APNs)."
},
"android": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Contains key-value pairs that your app interprets.",
"additionalProperties": {
"type": "string",
"x-doNotRender": true,
"x-additionalPropertiesName": "Attachment Names"
}
},
"android": {
"type": "object",
"properties": {
"notification": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Identifier to replace existing notifications in the notification drawer. If empty, each request creates a new notification.\n\nIf you specify a tag, and a notification with the same tag is already being shown, the new notification replaces the existing one in the notification drawer. \n"
},
"icon": {
"type": "string",
"description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
},
"color": {
"type": "string",
"description": "The notification's icon color in `#rrggbb` format."
},
"sound": {
"type": "string",
"description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
},
"body_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
},
"body_loc_key": {
"type": "string",
"description": "The key to the body string in the app's string resources that you want to use to localize the body text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
},
"click_action": {
"type": "string",
"description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
},
"title_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
},
"title_loc_key": {
"type": "string",
"description": "The key to the title string in the app's string resources that you want to use to localize the title text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
}
},
"description": "Properties supported specifically by Android on FCM."
}
},
"description": "Contains custom push options for your notification."
},
"notification": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "Contains the push body and title."
}
},
"description": "The parent object for Android custom push payloads."
}
},
"description": "A custom push payload for Android devices."
}
},
"description": "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`)."
}
}
},
{
"type": "object",
"required": [
"to",
"identifiers"
],
"properties": {
"send_at": {
"type": "integer",
"description": "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."
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": 12345,
"description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n"
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "cool.person@example.com",
"description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": 3000001,
"description": "A unique, immutable identifier for a person, set by Customer.io when you add a person."
}
}
}
],
"description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`."
},
"queue_draft": {
"type": "boolean",
"default": false,
"description": "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."
},
"message_data": {
"type": "object",
"example": {
"account_id": "123dj",
"password_reset_token": "abcde-12345-fghij-d888"
},
"description": "An object containing the key-value pairs referenced using liquid in your message.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Liquid Data"
}
},
"send_to_unsubscribed": {
"type": "boolean",
"default": true,
"description": "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`."
},
"disable_message_retention": {
"type": "boolean",
"default": false,
"description": "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`."
}
}
}
],
"example": {
"title": "Did you really login from a new location?",
"identifiers": {
"id": 12345
},
"message_data": {
"account_id": "123dj",
"password_reset_token": "abcde-12345-fghij-d888"
},
"transactional_message_id": 44
},
"description": "The payload of a transactional push message."
}
SendMessagesTransactionalPushResponse
{
"type": "object",
"properties": {
"queued_at": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when the message is sent."
},
"delivery_id": {
"type": "string",
"description": "A unique identifier for the message."
}
}
}
SendMessagesTriggerBroadcast422Response
{
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"detail": {
"type": "string",
"example": "Errors were found while processing per user data (ids, emails or json data). More detail available from the errors endpoint for trigger 12\"",
"description": "Describes the error and provides the trigger ID you can use to look up more information."
},
"source": {
"type": "object",
"properties": {
"pointer": {
"type": "string",
"example": "/data/attributes/per_user_data",
"description": "Points to the key in your payload that contained validation errors."
}
}
},
"status": {
"enum": [
"422"
],
"type": "string",
"example": "422",
"description": "The error code."
}
}
},
"description": "Contains one or more validation errors found in your request payload."
}
}
}
SendMessagesTriggerBroadcastRequest
{
"oneOf": [
{
"type": "object",
"title": "Default audience",
"properties": {
"data": {
"type": "object",
"example": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"description": "Contains information you want to use to populate your broadcast.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Broadcast liquid data"
}
},
"id_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false, a missing customer ID is an error."
},
"email_add_duplicates": {
"type": "boolean",
"default": false,
"description": "an email address associated with more than one profile id is an error."
},
"email_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false a missing email address is an error."
}
},
"description": "Send your broadcast to the default set of recipients defined in the UI."
},
{
"allOf": [
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *any* condition to return results."
}
}
},
{
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"title": "not",
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
],
"title": "Audience Filter",
"description": "A filter defining the group of people that you want send the broadcast to."
}
}
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"example": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"description": "Contains information you want to use to populate your broadcast.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Broadcast liquid data"
}
},
"id_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false, a missing customer ID is an error."
},
"email_add_duplicates": {
"type": "boolean",
"default": false,
"description": "an email address associated with more than one profile id is an error."
},
"email_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false a missing email address is an error."
}
}
}
],
"title": "Custom recipients",
"example": {
"data": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"recipients": {
"and": [
{
"segment": {
"id": 3
}
},
{
"or": [
{
"attribute": {
"field": "interest",
"value": "roadrunners",
"operator": "eq"
}
},
{
"attribute": {
"field": "state",
"value": "NM",
"operator": "eq"
}
},
{
"not": {
"attribute": {
"field": "species",
"value": "roadrunners",
"operator": "eq"
}
}
}
]
}
]
}
},
"description": "Send your broadcast to a group of people defined by a set of filters."
},
{
"allOf": [
{
"type": "object",
"required": [
"emails"
],
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string",
"format": "email"
},
"example": [
"recipient1@example.com",
"anotherRecipient@example.com"
],
"description": "An array of email addresses you want to send the broadcast to. These addresses must already exist; your request cannot create a new person."
}
}
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"example": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"description": "Contains information you want to use to populate your broadcast.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Broadcast liquid data"
}
},
"id_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false, a missing customer ID is an error."
},
"email_add_duplicates": {
"type": "boolean",
"default": false,
"description": "an email address associated with more than one profile id is an error."
},
"email_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false a missing email address is an error."
}
}
}
],
"title": "Emails",
"description": "An array of emails you want to send the broadcast to. These addresses must already exist; your request cannot create a new person."
},
{
"allOf": [
{
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"id1",
"id4"
],
"maxItems": 10000,
"description": "An array of IDs you want to send a broadcast to. **NOTE**: If your workspace identifies people by `email`, don't use this option. Identify your audience by `emails` instead.\n"
}
}
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"example": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"description": "Contains information you want to use to populate your broadcast.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Broadcast liquid data"
}
},
"id_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false, a missing customer ID is an error."
},
"email_add_duplicates": {
"type": "boolean",
"default": false,
"description": "an email address associated with more than one profile id is an error."
},
"email_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false a missing email address is an error."
}
}
}
],
"title": "IDs",
"description": "An array of customer ids that you want to send the broadcast to. These IDs must already exist; your request cannot create a new person."
},
{
"allOf": [
{
"type": "object",
"required": [
"per_user_data"
],
"properties": {
"per_user_data": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"title": "ids",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": 1,
"description": "The ID of the recipient."
},
"data": {
"type": "object",
"example": {
"lastName": "Mann",
"purchase": "shoes",
"firstName": "Hugh"
},
"description": "Merge data associated with the recipient.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Liquid merge data"
}
}
}
},
{
"type": "object",
"title": "emails",
"required": [
"email"
],
"properties": {
"data": {
"type": "object",
"example": {
"lastName": "Mann",
"purchase": "shoes",
"firstName": "Hugh"
},
"description": "Merge data associated with the recipient.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Liquid merge data"
}
},
"email": {
"type": "string",
"example": "recipient1@example.com",
"description": "The email address of the recipient. This address must be unique in your workspace. If more than one person has the same `email` attribute, your request will produce an error."
}
}
}
]
},
"example": [
{
"id": "wiley_coyoteX",
"data": {
"voucher_code": "FESwYm"
}
},
{
"data": {
"voucher_code": "cYm6XJ"
},
"email": "road@runner.net"
}
],
"maxItems": 10000,
"description": "An array of people you want to send a broadcast to and custom data for each person. Each object in the array represents a person, with additional data you want to use to personalize their message. **When you trigger a broadcast, the people in your request must already exist in your workspace.** Requests to trigger a broadcast cannot create new people. \n\n**Remove line-breaks from `per_user_data`**. We've added line breaks in examples to make the code easy to read, but you must remove line breaks (collapsing/uglifying your payload) to prevent errors.\n"
}
}
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"example": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"description": "Contains information you want to use to populate your broadcast.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Broadcast liquid data"
}
},
"id_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false, a missing customer ID is an error."
},
"email_add_duplicates": {
"type": "boolean",
"default": false,
"description": "an email address associated with more than one profile id is an error."
},
"email_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false a missing email address is an error."
}
}
}
],
"title": "User Maps",
"description": "An array of JSON objects containing `id` or `email` keys and a `data` key. Each object represents a person you want to send the broadcast to and data you want to personalize their message with using liquid."
},
{
"allOf": [
{
"type": "object",
"required": [
"data_file_url"
],
"properties": {
"data_file_url": {
"type": "string",
"format": "url",
"example": "https://myFile.example.com",
"description": "The URL of a data file containing per-user data. Each line is a single object representing a person: either a json map of `id` and `data` or `email` and `data` keys. For example, `{\"email\":\"road@runner.net\",\"data\":{\"voucher_code\": \"coyote\"}}`.\n\nThe IDs or emails in your data file must already exist in your workspace. Your broadcast cannot add new people to your workspace and won't send messages for IDs or email addresses that don't match a person in your workspace.\n"
}
}
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"example": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"description": "Contains information you want to use to populate your broadcast.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Broadcast liquid data"
}
},
"id_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false, a missing customer ID is an error."
},
"email_add_duplicates": {
"type": "boolean",
"default": false,
"description": "an email address associated with more than one profile id is an error."
},
"email_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false a missing email address is an error."
}
}
}
],
"title": "Data file URL",
"description": "The URL of a data file containing per-user data, each line containing a json map with either `id` and `data` or `email` and `data` keys. **When you trigger a broadcast, the people represented by `id` and `email` must already exist in your workspace.** Requests to trigger a broadcast cannot create new people.\n"
}
]
}
SendMessagesTriggerBroadcastResponse
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 3,
"description": "The `trigger_id` for this operation. You can use this ID to get the status of your broadcast or [check for errors](https://customer.io/docs/api/app/)."
}
}
}
SenderIdentitiesGetSenderInfoResponse
{
"type": "object",
"properties": {
"sender_identity": {
"type": "object",
"example": {
"id": 4534,
"name": "Cher Ami",
"email": "test@example.com",
"address": "Cher Ami <test@example.com>",
"template_type": "email",
"auto_generated": false,
"deduplicate_id": "4534:1478035647"
},
"properties": {
"id": {
"type": "integer",
"description": "The identifier of a sender."
},
"name": {
"type": "string",
"description": "The name of the sender."
},
"email": {
"type": "string",
"description": "The email address of the sender."
},
"address": {
"type": "string",
"description": "The sender name and email address in the format `name <name@example.com>`."
},
"template_type": {
"enum": [
"email",
"phone"
],
"type": "string",
"description": "The type of sender."
},
"auto_generated": {
"type": "boolean",
"description": "If true, the sender is automatically generated by Customer.io."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
},
"description": "Information about a sender."
}
}
}
SenderIdentitiesGetUsageDataResponse
{
"type": "object",
"properties": {
"campaigns": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The campaigns that use the sender."
},
"sent_newsletters": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The newsletters you've sent that used the sender."
},
"draft_newsletters": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The newsletter drafts that are set up using the sender."
}
}
}
SenderIdentitiesListResponse
{
"type": "object",
"properties": {
"sender_identities": {
"type": "array",
"items": {
"type": "object",
"example": {
"id": 4534,
"name": "Cher Ami",
"email": "test@example.com",
"address": "Cher Ami <test@example.com>",
"template_type": "email",
"auto_generated": false,
"deduplicate_id": "4534:1478035647"
},
"properties": {
"id": {
"type": "integer",
"description": "The identifier of a sender."
},
"name": {
"type": "string",
"description": "The name of the sender."
},
"email": {
"type": "string",
"description": "The email address of the sender."
},
"address": {
"type": "string",
"description": "The sender name and email address in the format `name <name@example.com>`."
},
"template_type": {
"enum": [
"email",
"phone"
],
"type": "string",
"description": "The type of sender."
},
"auto_generated": {
"type": "boolean",
"description": "If true, the sender is automatically generated by Customer.io."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
},
"description": "Information about a sender."
}
}
}
}
SnippetsCreateOrUpdateRequest
{
"type": "object",
"example": {
"name": "address",
"value": "<strong>My Company</strong></br>1234 Fake St<br/>Fake,NY<br/>10111",
"updated_at": 1582500000
},
"required": [
"name",
"value"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the snippet, must be unique."
},
"value": {
"type": "string",
"description": "The contents of the snippet."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"readOnly": true,
"description": "The last date-time the snippet was updated."
}
},
"description": "describes a piece of reusable content. You must provide a name for the snippet and the `value`—the content that appears in messages that use the snippet."
}
SnippetsCreateOrUpdateResponse
{
"type": "object",
"properties": {
"snippet": {
"type": "object",
"example": {
"name": "address",
"value": "<strong>My Company</strong></br>1234 Fake St<br/>Fake,NY<br/>10111",
"updated_at": 1582500000
},
"required": [
"name",
"value"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the snippet, must be unique."
},
"value": {
"type": "string",
"description": "The contents of the snippet."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"readOnly": true,
"description": "The last date-time the snippet was updated."
}
},
"description": "describes a piece of reusable content. You must provide a name for the snippet and the `value`—the content that appears in messages that use the snippet."
}
}
}
SnippetsListResponse
{
"type": "object",
"properties": {
"snippets": {
"type": "array",
"items": {
"type": "object",
"example": {
"name": "address",
"value": "<strong>My Company</strong></br>1234 Fake St<br/>Fake,NY<br/>10111",
"updated_at": 1582500000
},
"required": [
"name",
"value"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the snippet, must be unique."
},
"value": {
"type": "string",
"description": "The contents of the snippet."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"readOnly": true,
"description": "The last date-time the snippet was updated."
}
},
"description": "describes a piece of reusable content. You must provide a name for the snippet and the `value`—the content that appears in messages that use the snippet."
}
}
}
}
SnippetsRemoveSnippetResponse
{
"type": "object",
"properties": {
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"detail": {
"type": "string",
"example": "unable to delete snippet in use",
"description": "Describes the error."
},
"status": {
"type": "string",
"example": "400",
"description": "The HTTP status code."
}
}
},
"description": "Contains an array of error objects."
}
}
}
SubscriptionCenterListTopicsResponse
{
"type": "object",
"properties": {
"topics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The system-generated id for the subscription topic. Also located on the subscription center landing page. These increment up by 1, starting with 1."
},
"name": {
"type": "string",
"example": "Product Updates",
"description": "The name of the subscription topic."
},
"identifier": {
"type": "string",
"example": "topic_4",
"description": "The key associated with the subscription topic. The format is `topic_<id>`."
},
"description": {
"type": "string",
"example": "For people who want updates on product releases.",
"description": "A description of the topic that you provided when you created the topic in the UI."
},
"subscribed_by_default": {
"type": "boolean",
"example": false,
"description": "If false, a person is opted-out by default. If true, a person is opted-in by default."
}
}
}
}
}
}
TransactionalGetMessageDeliveriesResponse
{
"type": "object",
"properties": {
"messages": {
"type": "array",
"items": {
"type": "object",
"example": {
"id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=X",
"type": "email",
"created": 1619137767,
"metrics": {
"sent": 1619137768,
"delivered": 1619137768
},
"subject": "Did you get that thing I sent you?",
"action_id": 215,
"forgotten": false,
"recipient": "person@example.com",
"content_id": null,
"campaign_id": 23,
"customer_id": null,
"broadcast_id": null,
"newsletter_id": null,
"deduplicate_id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=:1619137768",
"failure_message": null,
"msg_template_id": 43,
"parent_action_id": null,
"trigger_event_id": null
},
"properties": {
"id": {
"type": "string",
"example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
"readOnly": true,
"description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"metrics": {
"type": "object",
"properties": {
"sent": {
"type": "integer",
"description": "The timestamp when the message was `sent`."
},
"failed": {
"type": "integer",
"description": "The timestamp when the message `failed`."
},
"opened": {
"type": "integer",
"description": "The timestamp when the message was `opened`."
},
"bounced": {
"type": "integer",
"description": "The timestamp when the message `bounced`."
},
"clicked": {
"type": "integer",
"description": "The timestamp when the message was `clicked`."
},
"created": {
"type": "integer",
"description": "The timestamp when the message was `created`."
},
"drafted": {
"type": "integer",
"description": "The timestamp when the message was `drafted`."
},
"dropped": {
"type": "integer",
"description": "The timestamp when the message was `dropped`."
},
"spammed": {
"type": "integer",
"description": "The timestamp when the message was marked as spam."
},
"converted": {
"type": "integer",
"description": "The timestamp when the message was `converted`."
},
"delivered": {
"type": "integer",
"description": "The timestamp when the message was `delivered`."
},
"unsubscribed": {
"type": "integer",
"description": "The timestamp when a person unsubscribed based on this message."
},
"undeliverable": {
"type": "integer",
"description": "The timestamp when the message became `undeliverable`."
}
},
"description": "Metrics for an individual instance of a message; each item in the object represents the timestamp when a message achieved a particular metric. This object only contains metrics that have been recorded."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"action_id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"forgotten": {
"type": "boolean",
"description": "If true message contents are not retained by Customer.io."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"content_id": {
"type": "integer",
"example": 1,
"nullable": true,
"readOnly": true,
"description": "The identifier for a newsletter variant."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"failure_message": {
"type": "string",
"nullable": true,
"description": "Explains why a message failed, if applicable."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
},
"message_template_id": {
"type": "integer",
"readOnly": true,
"deprecated": true,
"description": "The identifier of the message template used to create a message."
},
"customer_identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
}
},
"description": "Describes an individual message delivery. The object contains keys for all possible parents of the message (`newsletter_id`, `broadcast_id`, etc) but only the parents of the delivery are populated. Other parent IDs are null."
},
"example": [
{
"id": "dgOq6QWq6QUDAAF22PaOyFVqVxHY3rI5fsg=X",
"type": "email|push",
"created": 1609957805,
"metrics": {
"sent": 1609957832,
"delivered": 1609957872
},
"subject": "Reset your password",
"action_id": null,
"forgotten": false,
"recipient": "person@example.com",
"content_id": null,
"campaign_id": null,
"customer_id": "1a55d8d1-b13d-4f1f-858f-a93ef21e3a7d",
"identifiers": {
"id": "1a55d8d1-b13d-4f1f-858f-a93ef21e3a7dX",
"email": "person@example.com",
"cio_id": 786433
},
"broadcast_id": null,
"newsletter_id": null,
"deduplicate_id": "dgOq6QWq6QUDAAF22PaOyFVqVxHY3rI5fsg=:1609957872",
"failure_message": null,
"msg_template_id": 589
}
]
}
}
}
TransactionalGetMessageInfoResponse
{
"type": "object",
"properties": {
"message": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 2,
"description": "The identifier Customer.io assigned to the transactional message"
},
"name": {
"type": "string",
"example": "password reset",
"description": "The name you set for the transactional message."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"description": {
"type": "string",
"example": "sends a temporary password and lets the customer reset their password.",
"description": "A description of the transactional message."
},
"queue_drafts": {
"type": "boolean",
"description": "If true, messages do not send automatically, and queue as drafts instead. You must send drafts through the *Deliveries & Drafts* page in the user interface."
},
"link_tracking": {
"type": "boolean",
"description": "If true, link tracking is enabled for this message."
},
"open_tracking": {
"type": "boolean",
"description": "If true, open-tracking is enabled for this message."
},
"hide_message_body": {
"type": "boolean",
"description": "If true, message contents are not retained in delivery history—you cannot recall the exact contents of the message."
},
"send_to_unsubscribed": {
"type": "boolean",
"description": "If true, people with an `unsubscribed` attribute set to `true` can trigger the message."
}
},
"description": "Contains information about a transactional message."
}
}
}
TransactionalGetMessageLinkMetricsResponse
{
"type": "object",
"properties": {
"links": {
"type": "array",
"items": {
"type": "object",
"properties": {
"link": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1234,
"description": "The ID of the link."
},
"href": {
"type": "string",
"example": "https://customer.io/docs",
"description": "The link destination—a URL, mailto, etc."
}
}
},
"metric": {
"type": "object",
"properties": {
"series": {
"type": "object",
"properties": {
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
1,
3,
5,
7
],
"description": "An array of results from oldest to newest, where each result indicates a period."
}
}
}
},
"description": "Contains metrics for the link."
}
}
}
}
}
}
TransactionalGetMessageMetricsResponse
{
"type": "object",
"properties": {
"metric": {
"type": "object",
"properties": {
"series": {
"type": "object",
"properties": {
"sent": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of sent messages."
},
"failed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `failed` messages."
},
"opened": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `opened` messages."
},
"bounced": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `bounced` messages."
},
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `clicked` messages."
},
"created": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `created` messages."
},
"drafted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `drafted` messages."
},
"spammed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of spam complaints."
},
"deferred": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `deferred` messages."
},
"attempted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `attempted` messages."
},
"converted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `converted` messages."
},
"delivered": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `delivered` messages."
},
"suppressed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `suppressed` messages."
},
"unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of unsubscribes attributed to the campaign or message."
},
"undeliverable": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `undeliverable` messages."
},
"topic_unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of topic unsubscribes in a given period."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
}
}
}
}
}
TransactionalGetMessageTranslationResponse
{
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Receipt",
"readOnly": true,
"description": "The name of the transactional message."
},
"type": {
"enum": [
"email",
"push"
],
"type": "string",
"readOnly": true,
"description": "The type of message."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"readOnly": true,
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
},
"description": "The object represents a variant."
}
}
}
TransactionalListContentVariants400Response
{
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "Describes the error that caused your request to fail."
}
},
"description": "Contains errors."
}
}
}
TransactionalListContentVariantsResponse
{
"type": "object",
"properties": {
"contents": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Receipt",
"readOnly": true,
"description": "The name of the transactional message."
},
"type": {
"enum": [
"email",
"push"
],
"type": "string",
"readOnly": true,
"description": "The type of message."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"readOnly": true,
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
},
"description": "Each object represents one of the variants."
}
}
}
TransactionalListMessagesResponse
{
"type": "object",
"properties": {
"messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 2,
"description": "The identifier Customer.io assigned to the transactional message"
},
"name": {
"type": "string",
"example": "password reset",
"description": "The name you set for the transactional message."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"description": {
"type": "string",
"example": "sends a temporary password and lets the customer reset their password.",
"description": "A description of the transactional message."
},
"queue_drafts": {
"type": "boolean",
"description": "If true, messages do not send automatically, and queue as drafts instead. You must send drafts through the *Deliveries & Drafts* page in the user interface."
},
"link_tracking": {
"type": "boolean",
"description": "If true, link tracking is enabled for this message."
},
"open_tracking": {
"type": "boolean",
"description": "If true, open-tracking is enabled for this message."
},
"hide_message_body": {
"type": "boolean",
"description": "If true, message contents are not retained in delivery history—you cannot recall the exact contents of the message."
},
"send_to_unsubscribed": {
"type": "boolean",
"description": "If true, people with an `unsubscribed` attribute set to `true` can trigger the message."
}
},
"description": "Contains information about a transactional message."
}
}
}
}
TransactionalUpdateMessageContent400Response
{
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "Describes the error that caused your request to fail."
}
},
"description": "Contains errors."
}
}
}
TransactionalUpdateMessageContentRequest
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Receipt",
"readOnly": true,
"description": "The name of the transactional message."
},
"type": {
"enum": [
"email",
"push"
],
"type": "string",
"readOnly": true,
"description": "The type of message."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"readOnly": true,
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
TransactionalUpdateMessageContentResponse
{
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Receipt",
"readOnly": true,
"description": "The name of the transactional message."
},
"type": {
"enum": [
"email",
"push"
],
"type": "string",
"readOnly": true,
"description": "The type of message."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"readOnly": true,
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
},
"description": "The object includes the transactional message content and metadata."
}
}
}
TransactionalUpdateTranslation400Response
{
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"error": {
"type": "string",
"description": "Describes the error that caused your request to fail."
}
},
"description": "Contains errors."
}
}
}
TransactionalUpdateTranslationRequest
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Receipt",
"readOnly": true,
"description": "The name of the transactional message."
},
"type": {
"enum": [
"email",
"push"
],
"type": "string",
"readOnly": true,
"description": "The type of message."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"readOnly": true,
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
TransactionalUpdateTranslationResponse
{
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Receipt",
"readOnly": true,
"description": "The name of the transactional message."
},
"type": {
"enum": [
"email",
"push"
],
"type": "string",
"readOnly": true,
"description": "The type of message."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"readOnly": true,
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
},
"description": "Each object represents one of the variants."
}
}
}
WorkspacesListWorkspacesResponse
{
"type": "object",
"properties": {
"workspaces": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 13,
"description": "The id of the workspace."
},
"name": {
"type": "string",
"example": "Workspace 1",
"description": "The name of the workspace."
},
"people": {
"type": "integer",
"example": 25666,
"description": "The current count of people profiles in the workspace. Updates roughly every hour."
},
"objects": {
"type": "integer",
"example": 10,
"description": "The current count of object profiles in the workspace. Updates roughly every hour."
},
"object_types": {
"type": "integer",
"example": 4,
"description": "The current count of object types in the workspace. Updates roughly every hour."
},
"messages_sent": {
"type": "integer",
"example": 100202,
"description": "The count of [messages sent](https://customer.io/docs/api/app/) via any channel (email, SMS, in-app, push, slack) in the current billing period."
},
"billable_messages_sent": {
"type": "integer",
"example": 75124,
"description": "The count of [emails sent](https://customer.io/docs/api/app/) that are considered for billing in your current billing period. Ultimately, we only bill for the overages on your plan."
}
},
"description": "Contains workspace properties including the count of messages, people, and objects. Customer.io caches these counts, so your data may be up to two hours old."
}
}
}
}
actionObject
{
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"campaign_id": {
"type": "integer",
"example": 5,
"readOnly": true,
"description": "The identifier for a campaign."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"example": "{\"attribute\":\"cool-webhook\"}",
"description": "The payload for your webhook."
},
"name": {
"type": "string",
"example": "Set attribute",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"campaign_id": {
"type": "integer",
"example": 5,
"description": "The identifier for a campaign."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
}
]
}
actionWidget
{
"type": "object",
"required": [
"type",
"component",
"action"
],
"properties": {
"type": {
"enum": [
"actionWidget"
],
"type": "string",
"description": "Defines the widget type."
},
"action": {
"type": "string",
"description": "The link or place you want to send a person. This is either a deep link in your app, a web address, a `mailto` link, or a way to close the message (`gist://close`)."
},
"behaviour": {
"enum": [
"push",
"system",
"back",
"retain"
],
"type": "string",
"description": "* `push`: pushes a new route into the navigation stack.\n* `system`: offloads the action onto the operating system. Actions like `mailto:support@bourbon.sh` will open the default email client.\n* `back`: pops the navigation stack one step back.\n* `retain`: retain replaces the current view with a new route.\n"
},
"component": {
"type": "object",
"description": "The component a person taps to perform the action defined in this widget."
}
},
"description": "An action is either a link or a way to dismiss your message. The `behaviour` property determines how your app treats the action."
}
action_id
{
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
}
action_id_webhook
{
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
}
activityObject
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "01AK4N8V8G8KVA4HN8Y50CCZ59",
"description": "The identifier for the action."
},
"data": {
"oneOf": [
{
"type": "object",
"title": "Message delivery",
"example": {
"opened": null,
"delivered": null,
"delivery_id": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ=="
},
"properties": {
"opened": {
"type": "boolean",
"nullable": true,
"description": "Indicates whether or not a customer opened a message, if the message was delivered."
},
"delivered": {
"type": "integer",
"format": "unix timestamp",
"nullable": true,
"description": "The date-time when the message was delivered, if applicable."
},
"delivery_id": {
"type": "string",
"description": "The message ID."
}
}
},
{
"type": "object",
"title": "Attribute change",
"example": {
"email": {
"to": "newPerson@customer.io",
"from": "newPerson@example.com"
}
},
"description": "The name of the object is the attribute that changed.",
"additionalProperties": {
"type": "object",
"properties": {
"to": {
"type": "string",
"description": "The new attribute value."
},
"from": {
"type": "string",
"description": "The old attribute value. If empty, the customer probably didn't bear the attribute before this action."
}
},
"x-additionalPropertyName": "Attribute Name"
}
}
]
},
"type": {
"enum": [
"attempted_action",
"attribute_change",
"failed_attribute_change",
"failed_batch_update",
"skipped_update",
"failed_query_collection",
"event",
"failed_event",
"page",
"drafted_email",
"attempted_email",
"sent_email",
"delivered_email",
"opened_email",
"clicked_email",
"converted_email",
"bounced_email",
"failed_email",
"unsubscribed_email",
"topic_unsubscribed_email",
"spammed_email",
"dropped_email",
"undeliverable_email",
"drafted_action",
"delivered_action",
"bounced_action",
"sent_action",
"opened_action",
"clicked_action",
"failed_action",
"converted_action",
"device_change",
"deferred_email",
"unsubscribed_action",
"dropped_action",
"undeliverable_action",
"deferred_action",
"profile_create",
"profile_delete",
"profile_merge",
"anon_merge",
"screen",
"webhook_event",
"add_relationship",
"delete_relationship",
"_o:<object_type_id>:create",
"_o:<object_type_id>:attribute_change",
"_o:<object_type_id>:failed_attribute_change",
"_o:<object_type_id>:delete",
"_o:<object_type_id>:add_relationship",
"_o:<object_type_id>:delete_relationship",
"_r:<object_type_id>:attribute_change",
"_r:<object_type_id>:failed_attribute_change",
"failed_object_journeys"
],
"type": "string",
"example": "sent_email",
"description": "The type of activity. Types with `_o:<object_type_id>` are for objects and types with `_r:<object_type_id>` are for relationships."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1397566226,
"description": "The date and time when the action occurred."
},
"customer_id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The message ID."
},
"delivery_type": {
"enum": [
"ios",
"android",
"email",
"phone"
],
"type": "string",
"example": "email",
"description": "The recipient device, if applicable."
},
"customer_identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
}
}
}
activityTypes
{
"enum": [
"attempted_action",
"attribute_change",
"failed_attribute_change",
"failed_batch_update",
"skipped_update",
"failed_query_collection",
"event",
"failed_event",
"page",
"drafted_email",
"attempted_email",
"sent_email",
"delivered_email",
"opened_email",
"clicked_email",
"converted_email",
"bounced_email",
"failed_email",
"unsubscribed_email",
"topic_unsubscribed_email",
"spammed_email",
"dropped_email",
"undeliverable_email",
"drafted_action",
"delivered_action",
"bounced_action",
"sent_action",
"opened_action",
"clicked_action",
"failed_action",
"converted_action",
"device_change",
"deferred_email",
"unsubscribed_action",
"dropped_action",
"undeliverable_action",
"deferred_action",
"profile_create",
"profile_delete",
"profile_merge",
"anon_merge",
"screen",
"webhook_event",
"add_relationship",
"delete_relationship",
"_o:<object_type_id>:create",
"_o:<object_type_id>:attribute_change",
"_o:<object_type_id>:failed_attribute_change",
"_o:<object_type_id>:delete",
"_o:<object_type_id>:add_relationship",
"_o:<object_type_id>:delete_relationship",
"_r:<object_type_id>:attribute_change",
"_r:<object_type_id>:failed_attribute_change",
"failed_object_journeys"
],
"type": "string",
"example": "sent_email",
"description": "The type of activity. Types with `_o:<object_type_id>` are for objects and types with `_r:<object_type_id>` are for relationships."
}
allAndroidProps
{
"allOf": [
{
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
}
},
{
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Identifier to replace existing notifications in the notification drawer. If empty, each request creates a new notification.\n\nIf you specify a tag, and a notification with the same tag is already being shown, the new notification replaces the existing one in the notification drawer. \n"
},
"icon": {
"type": "string",
"description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
},
"color": {
"type": "string",
"description": "The notification's icon color in `#rrggbb` format."
},
"sound": {
"type": "string",
"description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
},
"body_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
},
"body_loc_key": {
"type": "string",
"description": "The key to the body string in the app's string resources that you want to use to localize the body text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
},
"click_action": {
"type": "string",
"description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
},
"title_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
},
"title_loc_key": {
"type": "string",
"description": "The key to the title string in the app's string resources that you want to use to localize the title text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
}
},
"description": "Properties supported specifically by Android on FCM."
}
]
}
andAudienceFilter
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *all* conditions to return results."
}
}
}
anonymousEventsRequest
{
"oneOf": [
{
"type": "object",
"title": "Standard anonymous event",
"example": {
"data": {
"video": "intro-to-platform"
},
"name": "watched_video",
"anonymous_id": "abc123"
},
"required": [
"name"
],
"properties": {
"id": {
"type": "string",
"format": "ulid",
"description": "An identifier used to deduplicate events. This value must be a [ULID](https://github.com/ulid/spec). If an event has the same value as an event we previously received, we won't show or process the duplicate. Note - our Python and Ruby libraries do not pass this id."
},
"data": {
"type": "object",
"properties": {
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"description": "The address that receives replies for the message, if applicable."
},
"from_address": {
"type": "string",
"format": "email",
"description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
}
},
"description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`). You can include `from_address` and `reply_to`, but the event can only trigger a campaign if it is associated with a person within 72 hours of its timestamp.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person.",
"x-additionalPropertiesName": "liquid merge data"
}
},
"name": {
"type": "string",
"description": "The name of the event. This is how you'll reference the event in campaigns or segments."
},
"type": {
"enum": [
"event",
"page",
"screen"
],
"type": "string",
"description": "Sets the event type. If your event isn't a `page` or `screen` type event, we automatically set this property to `event`."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
},
"anonymous_id": {
"type": "string",
"description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
}
}
},
{
"type": "object",
"title": "Page view",
"example": {
"data": {
"first_name": "Person"
},
"name": "https://mysite.com/page",
"type": "page",
"anonymous_id": "abc123"
},
"required": [
"name",
"type"
],
"properties": {
"id": {
"type": "string",
"format": "ulid",
"description": "An identifier used to deduplicate events. This value must be a [ULID](https://github.com/ulid/spec). If an event has the same value as an event we previously received, we won't show or process the duplicate. Note - our Python and Ruby libraries do not pass this id."
},
"data": {
"type": "object",
"description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
"additionalProperties": {
"description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person.",
"x-additionalPropertiesName": "liquid merge data"
}
},
"name": {
"type": "string",
"description": "The name of the event. In general, this should be the URL of the page a person visited, making it easy to segment your audience or trigger campaigns using this event. Make sure you trim leading and trailing spaces from this field."
},
"type": {
"enum": [
"page"
],
"type": "string",
"description": "Indicates that the event represents a page view. See [\"page view\" events](https://customer.io/docs/api/app/), for more information."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
},
"anonymous_id": {
"type": "string",
"description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
}
}
},
{
"type": "object",
"title": "Mobile screen view",
"example": {
"name": "homepage",
"type": "screen",
"anonymous_id": "abc123"
},
"required": [
"name",
"type"
],
"properties": {
"id": {
"type": "string",
"format": "ulid",
"description": "An identifier used to deduplicate events. This value must be a [ULID](https://github.com/ulid/spec). If an event has the same value as an event we previously received, we won't show or process the duplicate. Note - our Python and Ruby libraries do not pass this id."
},
"data": {
"type": "object",
"description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
"additionalProperties": {
"description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person.",
"x-additionalPropertiesName": "liquid merge data"
}
},
"name": {
"type": "string",
"description": "The name of the event. In general, this should be the name of the screen or deep link path that a person viewed, making it easy to segment your audience or trigger campaigns using this event. Make sure you trim leading and trailing spaces from this field."
},
"type": {
"enum": [
"screen"
],
"type": "string",
"description": "Indicates that the event represents a mobile screen view. You can also capture screen events directly with [our iOS SDK](https://customer.io/docs/api/app/)."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
},
"anonymous_id": {
"type": "string",
"description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
}
}
}
],
"description": "An event attributed to an unknown person. If you provide an `anonymous_id` with the event, you can associate the event with a person later (using the anonymous ID)."
}
anonymous_id
{
"type": "string",
"description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
}
anyType
{
"description": "Can be any type of value."
}
apnsWithSdk
{
"type": "object",
"properties": {
"CIO": {
"type": "object",
"required": [
"push"
],
"properties": {
"push": {
"type": "object",
"properties": {
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
}
},
"description": "Describes push notification options supported by the CIO SDK."
}
},
"description": "Contains options supported by the Customer.io SDK."
},
"aps": {
"type": "object",
"properties": {
"alert": {
"oneOf": [
{
"type": "string",
"title": "Simple alert",
"description": "A simple alert message."
},
{
"type": "object",
"title": "Complex alert",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
},
"loc-key": {
"type": "string",
"description": "The key for a localized message string in your app’s Localizable.strings file."
},
"loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
},
"subtitle": {
"type": "string",
"description": "Additional information that explains the purpose of the notification."
},
"launch-image": {
"type": "string",
"description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
},
"title-loc-key": {
"type": "string",
"description": "The key for a localized title string in your app’s Localizable.strings files."
},
"title-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
},
"subtitle-loc-key": {
"type": "string",
"description": "The key for a localized subtitle string in your app’s Localizable.strings file."
},
"subtitle-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
}
}
}
]
},
"badge": {
"type": "integer",
"description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
},
"sound": {
"oneOf": [
{
"type": "string",
"title": "Regular alert",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
},
{
"type": "object",
"title": "Critical alert",
"properties": {
"name": {
"type": "string",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
},
"volume": {
"type": "number",
"description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
},
"critical": {
"type": "integer",
"description": "1 indicates critical. 0 is not critical."
}
}
}
]
},
"category": {
"type": "string",
"description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
},
"thread-id": {
"type": "string",
"description": "An identifier to group related notifications."
},
"mutable-content": {
"type": "integer",
"description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
},
"relevance-score": {
"type": "number",
"description": "A number between 0 and 1. The highest score is considered the \"most relevant\" and is featured in the notification summary."
},
"content-available": {
"type": "integer",
"description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
},
"target-content-id": {
"type": "string",
"description": "The identifier of the window brought forward."
},
"interruption-level": {
"enum": [
"passive",
"active",
"time-sensitive",
"critical"
],
"type": "string",
"description": "Indicates the importance and delivery timing of a notification."
}
},
"description": "A push payload intended for an iOS device."
}
}
}
apnsWithoutSdk
{
"type": "object",
"properties": {
"aps": {
"type": "object",
"properties": {
"alert": {
"oneOf": [
{
"type": "string",
"title": "Simple alert",
"description": "A simple alert message."
},
{
"type": "object",
"title": "Complex alert",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
},
"loc-key": {
"type": "string",
"description": "The key for a localized message string in your app’s Localizable.strings file."
},
"loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
},
"subtitle": {
"type": "string",
"description": "Additional information that explains the purpose of the notification."
},
"launch-image": {
"type": "string",
"description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
},
"title-loc-key": {
"type": "string",
"description": "The key for a localized title string in your app’s Localizable.strings files."
},
"title-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
},
"subtitle-loc-key": {
"type": "string",
"description": "The key for a localized subtitle string in your app’s Localizable.strings file."
},
"subtitle-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
}
}
}
]
},
"badge": {
"type": "integer",
"description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
},
"sound": {
"oneOf": [
{
"type": "string",
"title": "Regular alert",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
},
{
"type": "object",
"title": "Critical alert",
"properties": {
"name": {
"type": "string",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
},
"volume": {
"type": "number",
"description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
},
"critical": {
"type": "integer",
"description": "1 indicates critical. 0 is not critical."
}
}
}
]
},
"category": {
"type": "string",
"description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
},
"thread-id": {
"type": "string",
"description": "An identifier to group related notifications."
},
"mutable-content": {
"type": "integer",
"description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
},
"relevance-score": {
"type": "number",
"description": "A number between 0 and 1. The highest score is considered the \"most relevant\" and is featured in the notification summary."
},
"content-available": {
"type": "integer",
"description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
},
"target-content-id": {
"type": "string",
"description": "The identifier of the window brought forward."
},
"interruption-level": {
"enum": [
"passive",
"active",
"time-sensitive",
"critical"
],
"type": "string",
"description": "Indicates the importance and delivery timing of a notification."
}
},
"description": "A push payload intended for an iOS device."
}
}
}
apsBasicPush
{
"type": "object",
"required": [
"aps"
],
"properties": {
"CIO": {
"type": "object",
"required": [
"push"
],
"properties": {
"push": {
"type": "object",
"properties": {
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
}
},
"description": "Describes push notification options supported by the CIO SDK."
}
},
"description": "Contains options supported by the Customer.io SDK."
},
"aps": {
"type": "object",
"required": [
"alert"
],
"properties": {
"alert": {
"type": "object",
"required": [
"body"
],
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "An object containing the push title and body"
}
},
"description": "A push payload intended for an iOS device."
}
}
}
archivedMessageObject
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
"readOnly": true,
"description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"url": {
"type": "string",
"example": "http://example.com/webhook",
"description": "The URL of a webhook or action."
},
"body": {
"type": "string",
"example": "<!DOCTYPE html><html><head>\\n<meta http-equiv=\\\"Content-Type\\\" content=\\\"text/html; charset=UTF-8\\\"/><h1>Hello World</h1>\\n\\n</body></html>",
"description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"forgotten": {
"type": "boolean",
"example": false,
"description": "If true, Customer.io does not retain the message content."
},
"recipient": {
"type": "string",
"example": "person@example.com",
"description": "The recipient address for an action."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
},
"request_method": {
"enum": [
"GET",
"POST",
"PUT",
"DELETE",
"PATCH"
],
"type": "string",
"example": "POST",
"description": "The method used in conjunction with a webhook `url`."
}
},
"description": "An archived message, including a complete message body.\n"
}
attachments
{
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"type": "string",
"format": "base64",
"x-doNotRender": true,
"x-additionalPropertiesName": "Attachment Names"
}
},
"description": "A dictionary of attachments where the filename is the key and the value is the base64-encoded contents. The total size of all attachments must be less than 2 MB. Some filetype extensions are restricted.\n"
}
attributeAudienceFilter
{
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
attributeChangeAction
{
"type": "object",
"properties": {
"to": {
"type": "string",
"description": "The new attribute value."
},
"from": {
"type": "string",
"description": "The old attribute value. If empty, the customer probably didn't bear the attribute before this action."
}
}
}
audienceFilter
{
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *any* condition to return results."
}
}
},
{
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"title": "not",
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
],
"title": "Audience Filter",
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for.\n\nThe top level of this object can only contain a single property, but you can nest `and` and `or` properties to produce complex filters.\n"
}
bcc
{
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
}
blockWidget
{
"type": "object",
"properties": {
"flex": {
"type": "integer",
"description": "The single digit syntax for the CSS `flex` property. The value you use here determines the propotional amount of space the block consumes in a parent container."
},
"type": {
"enum": [
"blockWidget"
],
"type": "string",
"description": "Defines the widget type."
},
"height": {
"type": "integer",
"description": "The height of the component in pixels, if you want to constrain it. If you don't set a height or width, we'll scale your content to fit your message or container."
},
"padding": {
"type": "array",
"items": {
"type": "string",
"description": "The padding label you set under *Branding* > *Padding*."
},
"maxItems": 4,
"description": "Defines padding for the block, based on the values set under *Branding* > *Padding*. As with the CSS `padding` property, values in the array represent top, right, bottom, and left padding."
},
"components": {
"type": "array",
"items": {
"type": "object"
},
"description": "An array of child components that you want to make available inside this widget."
},
"safeInsets": {
"type": "boolean",
"default": false,
"description": "Based on the env `safe-area-inset-*` CSS properties. Set to true to ensure that the block can't overflow the defined screen or the defined area of your message. Defaults to `false`."
},
"borderColor": {
"type": "string",
"description": "The border color for your block, if you set a border width greater than 0. You must set a value defined under *Branding* > *Colors*."
},
"borderWidth": {
"type": "integer",
"description": "The width of the border for this block in pixels."
},
"borderRadius": {
"type": "integer",
"description": "Sets the radius of corners for an item in pixels, similar to the `border-radius` CSS property."
},
"backgroundColor": {
"type": "string",
"description": "The background color for your block. You must set a value defined under *Branding* > *Colors*."
},
"backgroundImage": {
"type": "string",
"example": "$user.backgroundImage,",
"description": "Set a background image for the block"
}
},
"description": "A widget that provides visual design for one or more child components."
}
body_amp
{
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
}
body_content
{
"type": "string",
"description": "If your reporting webhook includes content (the *Body Content* box is checked) and the `metric` is `sent, this contains the body of the messages. If the message is an email, this also contains email headers. For push and in-app messages, this is the stringified payload for your message."
}
body_plain
{
"type": "string",
"description": "By default, we generate a plaintext version of your message body for each delivery. Use this key to override the default plain text body."
}
broadcastActionObject
{
"oneOf": [
{
"type": "object",
"title": "Email / message",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"email",
"in_app",
"push",
"twilio",
"slack"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"readOnly": true,
"description": "The identifier for a broadcast."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
},
{
"type": "object",
"title": "Webhook",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"url": {
"type": "string",
"example": "https://my.example.com/webhook",
"description": "The URL to send a webhook to, applies to `webhook` type actions."
},
"body": {
"type": "string",
"description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
},
"name": {
"type": "string",
"example": "Opening Message",
"readOnly": true,
"description": "The name of the action, if it exists."
},
"type": {
"enum": [
"webhook"
],
"type": "string",
"readOnly": true,
"description": "The type of action."
},
"layout": {
"type": "string",
"readOnly": true,
"description": "The layout used for the action, if it exists."
},
"method": {
"enum": [
"get",
"post",
"put",
"delete",
"patch"
],
"type": "string",
"example": "post",
"description": "The HTTP method for your webhook."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"sending_state": {
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
}
}
]
}
broadcastObject
{
"type": "object",
"example": {
"id": 2,
"name": "basic",
"tags": "nil",
"type": "triggered_broadcast",
"active": true,
"actions": [
{
"id": 3,
"type": "email"
},
{
"id": 4
},
{
"type": "webhook"
}
],
"created": 1520467200,
"updated": 1520467200,
"created_by": "ExamplePerson",
"first_started": 1520467200,
"deduplicate_id": "2:1520467200"
},
"properties": {
"id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"name": {
"type": "string",
"readOnly": true,
"description": "The name of the broadcast."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of tags you set on this broadcast."
},
"active": {
"type": "boolean",
"description": "If true, the broadcast is active."
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for the action."
},
"type": {
"enum": [
"email",
"webhook",
"push",
"sms",
"slack"
],
"type": "string",
"description": "The type of action."
}
}
},
"description": "A list of actions used by the broadcast."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"msg_template_ids": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for the template."
},
"type": {
"enum": [
"email",
"webhook",
"push",
"sms",
"slack"
],
"type": "string",
"description": "The type of template."
}
}
},
"deprecated": true,
"description": "Indicates the message template(s) used in this broadcast."
}
}
}
broadcastTriggerObject
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for a broadcast trigger."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
},
"processed_at": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when Customer.io processed the trigger."
}
},
"description": "You can get triggers to know when you triggered a broadcast and whether or not it's been processed."
}
broadcast_id
{
"type": "integer",
"example": 2,
"description": "The identifier for a broadcast."
}
campaignObject
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 5,
"description": "The identifier for a campaign."
},
"name": {
"type": "string",
"readOnly": true,
"description": "The name of the campaign."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"new",
"welcome"
],
"description": "An array of tags you set on this campaign."
},
"type": {
"enum": [
"segment"
],
"type": "string",
"description": "The type of campaign."
},
"active": {
"type": "boolean",
"description": "If true, the campaign is active and can still send messages."
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for the action."
},
"type": {
"enum": [
"email",
"sms",
"push",
"slack",
"webhook"
],
"type": "string",
"description": "The message type actions resulting from the campaign."
}
}
},
"description": "An array of actions contained within the campaign."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"created_by": {
"type": "string",
"format": "email",
"example": "hugh.mann@example.com",
"description": "The email address of the person who created the campaign."
},
"first_started": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"description": "The date and time when you first started the campaign and it first became eligible to be triggered."
},
"msg_templates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for the template."
},
"type": {
"enum": [
"email",
"sms",
"push",
"slack"
],
"type": "string",
"description": "The message type the template represents."
}
}
},
"deprecated": true,
"description": "Indicates the message templates used in this campaign."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"filter_segment_ids": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
21,
42
],
"description": "A list of segments used in the campaign filter, returned if the campaign audience was filtered on one or more segments."
},
"trigger_segment_ids": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
90
],
"description": "A list of segments used in the campaign trigger, returned if the campaign trigger included one or more segment conditions."
}
}
}
campaignRequest
{
"oneOf": [
{
"type": "object",
"title": "Default audience",
"properties": {
"data": {
"type": "object",
"example": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"description": "Contains information you want to use to populate your broadcast.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Broadcast liquid data"
}
},
"id_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false, a missing customer ID is an error."
},
"email_add_duplicates": {
"type": "boolean",
"default": false,
"description": "an email address associated with more than one profile id is an error."
},
"email_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false a missing email address is an error."
}
},
"description": "Send your broadcast to the default set of recipients defined in the UI."
},
{
"allOf": [
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *any* condition to return results."
}
}
},
{
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"title": "not",
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
],
"title": "Audience Filter",
"description": "A filter defining the group of people that you want send the broadcast to."
}
}
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"example": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"description": "Contains information you want to use to populate your broadcast.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Broadcast liquid data"
}
},
"id_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false, a missing customer ID is an error."
},
"email_add_duplicates": {
"type": "boolean",
"default": false,
"description": "an email address associated with more than one profile id is an error."
},
"email_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false a missing email address is an error."
}
}
}
],
"title": "Custom recipients",
"example": {
"data": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"recipients": {
"and": [
{
"segment": {
"id": 3
}
},
{
"or": [
{
"attribute": {
"field": "interest",
"value": "roadrunners",
"operator": "eq"
}
},
{
"attribute": {
"field": "state",
"value": "NM",
"operator": "eq"
}
},
{
"not": {
"attribute": {
"field": "species",
"value": "roadrunners",
"operator": "eq"
}
}
}
]
}
]
}
},
"description": "Send your broadcast to a group of people defined by a set of filters."
},
{
"allOf": [
{
"type": "object",
"required": [
"emails"
],
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string",
"format": "email"
},
"example": [
"recipient1@example.com",
"anotherRecipient@example.com"
],
"description": "An array of email addresses you want to send the broadcast to. These addresses must already exist; your request cannot create a new person."
}
}
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"example": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"description": "Contains information you want to use to populate your broadcast.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Broadcast liquid data"
}
},
"id_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false, a missing customer ID is an error."
},
"email_add_duplicates": {
"type": "boolean",
"default": false,
"description": "an email address associated with more than one profile id is an error."
},
"email_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false a missing email address is an error."
}
}
}
],
"title": "Emails",
"description": "An array of emails you want to send the broadcast to. These addresses must already exist; your request cannot create a new person."
},
{
"allOf": [
{
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"id1",
"id4"
],
"maxItems": 10000,
"description": "An array of IDs you want to send a broadcast to. **NOTE**: If your workspace identifies people by `email`, don't use this option. Identify your audience by `emails` instead.\n"
}
}
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"example": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"description": "Contains information you want to use to populate your broadcast.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Broadcast liquid data"
}
},
"id_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false, a missing customer ID is an error."
},
"email_add_duplicates": {
"type": "boolean",
"default": false,
"description": "an email address associated with more than one profile id is an error."
},
"email_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false a missing email address is an error."
}
}
}
],
"title": "IDs",
"description": "An array of customer ids that you want to send the broadcast to. These IDs must already exist; your request cannot create a new person."
},
{
"allOf": [
{
"type": "object",
"required": [
"per_user_data"
],
"properties": {
"per_user_data": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"title": "ids",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": 1,
"description": "The ID of the recipient."
},
"data": {
"type": "object",
"example": {
"lastName": "Mann",
"purchase": "shoes",
"firstName": "Hugh"
},
"description": "Merge data associated with the recipient.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Liquid merge data"
}
}
}
},
{
"type": "object",
"title": "emails",
"required": [
"email"
],
"properties": {
"data": {
"type": "object",
"example": {
"lastName": "Mann",
"purchase": "shoes",
"firstName": "Hugh"
},
"description": "Merge data associated with the recipient.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Liquid merge data"
}
},
"email": {
"type": "string",
"example": "recipient1@example.com",
"description": "The email address of the recipient. This address must be unique in your workspace. If more than one person has the same `email` attribute, your request will produce an error."
}
}
}
]
},
"example": [
{
"id": "wiley_coyote",
"data": {
"voucher_code": "FESwYm"
}
},
{
"data": {
"voucher_code": "cYm6XJ"
},
"email": "road@runner.net"
}
],
"maxItems": 10000,
"description": "An array of people you want to send a broadcast to and custom data for each person. Each object in the array represents a person, with additional data you want to use to personalize their message. **When you trigger a broadcast, the people in your request must already exist in your workspace.** Requests to trigger a broadcast cannot create new people. \n\n**Remove line-breaks from `per_user_data`**. We've added line breaks in examples to make the code easy to read, but you must remove line breaks (collapsing/uglifying your payload) to prevent errors.\n"
}
}
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"example": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"description": "Contains information you want to use to populate your broadcast.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Broadcast liquid data"
}
},
"id_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false, a missing customer ID is an error."
},
"email_add_duplicates": {
"type": "boolean",
"default": false,
"description": "an email address associated with more than one profile id is an error."
},
"email_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false a missing email address is an error."
}
}
}
],
"title": "User Maps",
"description": "An array of JSON objects containing `id` or `email` keys and a `data` key. Each object represents a person you want to send the broadcast to and data you want to personalize their message with using liquid."
},
{
"allOf": [
{
"type": "object",
"required": [
"data_file_url"
],
"properties": {
"data_file_url": {
"type": "string",
"format": "url",
"example": "https://myFile.example.com",
"description": "The URL of a data file containing per-user data. Each line is a single object representing a person: either a json map of `id` and `data` or `email` and `data` keys. For example, `{\"email\":\"road@runner.net\",\"data\":{\"voucher_code\": \"coyote\"}}`.\n\nThe IDs or emails in your data file must already exist in your workspace. Your broadcast cannot add new people to your workspace and won't send messages for IDs or email addresses that don't match a person in your workspace.\n"
}
}
},
{
"type": "object",
"properties": {
"data": {
"type": "object",
"example": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"description": "Contains information you want to use to populate your broadcast.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Broadcast liquid data"
}
},
"id_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false, a missing customer ID is an error."
},
"email_add_duplicates": {
"type": "boolean",
"default": false,
"description": "an email address associated with more than one profile id is an error."
},
"email_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false a missing email address is an error."
}
}
}
],
"title": "Data file URL",
"description": "The URL of a data file containing per-user data, each line containing a json map with either `id` and `data` or `email` and `data` keys. **When you trigger a broadcast, the people represented by `id` and `email` must already exist in your workspace.** Requests to trigger a broadcast cannot create new people.\n"
}
]
}
campaign_id
{
"type": "integer",
"example": 5,
"description": "The identifier for a campaign."
}
cio_id
{
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
cio_subscription_preferences
{
"type": "object",
"example": {
"topic_1": true,
"topic_2": false,
"topic_3": true
},
"properties": {
"topics": {
"type": "object",
"description": "Contains active topics in your workspace, named `topic_<id>`.",
"additionalProperties": {
"type": "boolean",
"description": "Each property is a boolean named `topic_<id>`. Topic `id` values begin at `1` and increment for each new topic. You can find your topic ids in [Workspace Settings](https://fly.customer.io/workspaces/last/settings/subscription_center/topics) or by querying our [App API](https://customer.io/docs/api/app/#operation/getTopics). For each boolean, `true` means that a person is subscribed to the topic; false means they are unsubscribed. An empty or missing value reverts to the default preference for the topic (opt-in or opt-out).",
"x-additionalPropertiesName": "topic_<id>"
}
}
},
"description": "Stores your audience's subscription preferences if you enable our [subscription center](https://customer.io/docs/api/app/) feature. These items are set automatically when people use the unsubscribe link in your messages, but you can set preferences outside the subscription flow. To update select topic preferences while preserving those set for other topics, use JSON dot notation `\"cio_subscription_preferences.topics.topic_<topic ID>\":<boolean>`."
}
collectionResponse
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1,
"description": "The identifier for the collection. This is how you'll reference the collection from the API."
},
"name": {
"type": "string",
"example": "upcoming events",
"description": "The name of the collection. This is how you'll reference the collection in liquid, e.g. `{{collection_name.data_property}}`."
},
"rows": {
"type": "integer",
"example": 2,
"description": "Represents the number of objects in the `data` array or CSV rows in your collection schema."
},
"bytes": {
"type": "integer",
"example": 296,
"description": "The size of the collection in bytes."
},
"schema": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"eventDate",
"eventName",
"presents"
],
"description": "Lists the top-level keys that you can reference within this collection. Customer.io does not enforce any of these keys as required from your `data`."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
}
}
}
commonTriggerProps
{
"type": "object",
"properties": {
"data": {
"type": "object",
"example": {
"date": 1511315635,
"text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!",
"headline": "Roadrunner spotted in Albuquerque!"
},
"description": "Contains information you want to use to populate your broadcast.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Broadcast liquid data"
}
},
"id_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false, a missing customer ID is an error."
},
"email_add_duplicates": {
"type": "boolean",
"default": false,
"description": "an email address associated with more than one profile id is an error."
},
"email_ignore_missing": {
"type": "boolean",
"default": false,
"description": "If false a missing email address is an error."
}
}
}
complexAudienceFilter
{
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
}
complexObjectFilter
{
"type": "object",
"title": "Object Filter",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "object attribute",
"properties": {
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
},
"description": "When filtering for objects, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false."
}
conditionalWidget
{
"type": "object",
"properties": {
"true": {
"type": "object",
"description": "The component you want to show when your condition is true."
},
"type": {
"enum": [
"conditionalWidget"
],
"type": "string",
"description": "Defines the widget type."
},
"false": {
"type": "object",
"description": "The component you want to show when your condition is false."
},
"condition": {
"type": "string",
"description": "The condition you want to evaluate. You can evaluate a condition using `>`, `<`, `==` & `in` operators. If you don't use an operator, the condition checks if the property is null."
}
},
"description": "Set a true/false condition determining which content to show. Use a variable in your condition to populate the condition when you set up your message in Customer.io."
}
contentObject
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
content_id
{
"type": "integer",
"example": 1,
"nullable": true,
"readOnly": true,
"description": "The identifier for a newsletter variant."
}
content_id_event
{
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
}
created
{
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
}
customAndroidProps
{
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Identifier to replace existing notifications in the notification drawer. If empty, each request creates a new notification.\n\nIf you specify a tag, and a notification with the same tag is already being shown, the new notification replaces the existing one in the notification drawer. \n"
},
"icon": {
"type": "string",
"description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
},
"color": {
"type": "string",
"description": "The notification's icon color in `#rrggbb` format."
},
"sound": {
"type": "string",
"description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
},
"body_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
},
"body_loc_key": {
"type": "string",
"description": "The key to the body string in the app's string resources that you want to use to localize the body text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
},
"click_action": {
"type": "string",
"description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
},
"title_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
},
"title_loc_key": {
"type": "string",
"description": "The key to the title string in the app's string resources that you want to use to localize the title text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
}
},
"description": "Properties supported specifically by Android on FCM."
}
customerAttributesObject
{
"type": "object",
"example": {
"customer": {
"id": "1X",
"devices": [
{
"id": "my_android_device_id",
"platform": "android",
"last_used": 1514764800
},
{
"id": "my_ios_device_id",
"platform": "ios",
"last_used": 1514764800
}
],
"attributes": {
"id": "1X",
"email": "test@example.com",
"title": "tester",
"cio_id": "03000001",
"created_at": "1489014595",
"department": "qa",
"_last_emailed": "1528932553",
"cio_subscription_preferences": "{\"topics\":{\"topic_7\":false,\"topic_8\":false}}",
"_cio_subscription_preferences_computed": "{\"topics\":{\"topic_6\":false,\"topic_7\":false,\"topic_8\":false}}"
},
"timestamps": {
"id": 1489014595,
"email": 1508932553,
"title": 1508932553,
"cio_id": 1489014595,
"created_at": 1489014595,
"department": 1508932553,
"_last_emailed": 1528932553,
"cio_subscription_preferences": 1673987303,
"_cio_subscription_preferences_computed": 0
},
"unsubscribed": false
}
},
"properties": {
"customer": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The customer ID referenced in the request."
},
"devices": {
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The device token."
}
}
},
{
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"enum": [
"ios",
"android"
],
"type": "string",
"description": "The device/messaging platform."
},
"last_used": {
"type": "integer",
"format": "unix timestamp",
"description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
},
"attributes": {
"type": "object",
"properties": {
"device_os": {
"type": "string",
"description": "The operating system, including the version, on the device."
},
"app_version": {
"type": "string",
"description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
},
"_last_status": {
"enum": [
"",
"bounced",
"sent",
"suppressed"
],
"type": "string",
"readOnly": true,
"description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
},
"device_model": {
"type": "string",
"description": "The model of the device a person uses."
},
"push_enabled": {
"enum": [
"true",
"false"
],
"type": "string",
"description": "If `\"true\"`, the device is opted-in and can receive push notifications."
},
"device_locale": {
"type": "string",
"description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
},
"cio_sdk_version": {
"type": "string",
"description": "The version of the Customer.io SDK in the app."
}
},
"description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
"additionalProperties": {
"type": "string",
"description": "Custom properties that you want to associate with the device.",
"x-additionalPropertiesName": "Custom Device Attributes"
}
}
},
"description": "Device information common to the v1 and v2 APIs."
}
],
"description": "The properties representing an individual device. [Our SDK's](https://customer.io/docs/api/app/) gather all the properties defined below automatically, unless you disable the `autoTrackDeviceAttributes` setting. You can reference the properties outside the `attributes` object in segments or in Liquid."
},
"description": "Lists the devices associated with the customer profile."
},
"attributes": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
},
"cio_subscription_preferences": {
"type": "string",
"description": "A person's stringified subscription preferences. These are preferences that a person set through the subscription center or attributes that you set on a person. A person who hasn't set their subscription preferences has computed preferences based on the nature of your topics (opt-in or opt-out). See the `_cio_subscription_preferences_computed` attribute for computed preferences.\n"
},
"_cio_subscription_preferences_computed": {
"type": "string",
"description": "Returns the computed subscription preferences for a person—any subscription preferences set on a person and the defaults for any subscription preferences _not_ set on a person—as stringified JSON. For example, if you have an \"opt-in\" topic that a person hasn't set a preference for, that topic would show `false`—even though a person doesn't have that attribute on their profile. [Learn more about topics](https://customer.io/docs/api/app/). \n"
}
},
"description": "Contains attributes assigned to this profile, including your workspace's people-identifiers (by default, these are `id`, `email`, and `cio_id`). Attributes are all stored as strings.",
"additionalProperties": {
"type": "string",
"description": "Non-identifier attributes assigned to this person.",
"x-additionalPropertiesName": "additional attributes"
}
},
"timestamps": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when the person's ID was generated."
},
"email": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when the person's email address was added."
},
"cio_id": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when `cio_id` was assigned."
},
"unsubscribed": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when the person unsubscribed."
},
"_last_emailed": {
"type": "integer",
"format": "unix timestamp",
"description": "The date-time when you last emailed a person."
},
"additionalProperties": {
"format": "unix timestamp",
"description": "Timestamps when attributes assigned to the person were set.",
"x-additionalPropertiesName": "additional attribute timestamps"
},
"cio_subscription_preferences": {
"type": "integer",
"format": "unix timestamp",
"description": "The datetime when a person's subscription preferences were last updated."
},
"_cio_subscription_preferences_computed": {
"type": "integer",
"description": "Because this value is computed and not actually set on a person, this value is always 0"
}
},
"description": "The epoch timestamps when corresponding attributes were set on the customer profile."
},
"identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
},
"unsubscribed": {
"type": "boolean",
"description": "If true, the person is unsubscribed from messages."
}
},
"description": "The profile you referenced by ID in the request."
}
}
}
customer_event
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"metric"
],
"properties": {
"metric": {
"enum": [
"subscribed"
],
"type": "string",
"description": "The metric recorded by the event. For `customer` events, this is whether the customer explicitly subscribed or unsubscribed."
}
}
},
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp",
"data"
],
"properties": {
"data": {
"type": "object",
"required": [
"identifiers",
"customer_id",
"email_address"
],
"properties": {
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"email_address": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
}
},
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"customer"
],
"type": "string",
"example": "customer",
"description": "The event represents a customer subscribing, unsubscribing, or changing their subscription preferences."
}
}
}
],
"title": "subscribed",
"description": "A person subscribed to messages from you—their `unsubscribed` attribute was set to `false`."
},
{
"allOf": [
{
"type": "object",
"required": [
"metric"
],
"properties": {
"metric": {
"enum": [
"unsubscribed"
],
"type": "string",
"description": "The metric recorded by the event. For `customer` events, this is whether the customer explicitly subscribed or unsubscribed."
}
}
},
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp",
"data"
],
"properties": {
"data": {
"type": "object",
"required": [
"identifiers",
"customer_id",
"email_address"
],
"properties": {
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"email_address": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
}
},
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"customer"
],
"type": "string",
"example": "customer",
"description": "The event represents a customer subscribing, unsubscribing, or changing their subscription preferences."
}
}
}
],
"title": "unsubscribed",
"description": "A person unsubscribed to messages from you—their `unsubscribed` attribute was set to `true`."
},
{
"type": "object",
"title": "changed subscription preferences",
"required": [
"metric",
"event_id",
"data",
"timestamp"
],
"properties": {
"data": {
"allOf": [
{
"type": "object",
"required": [
"identifiers",
"customer_id",
"email_address",
"content"
],
"properties": {
"content": {
"type": "string",
"example": "{\"topics\":{\"topic_1\":true}}",
"description": "Contains the subscription preferences that a person changed in a stringified object format. The `topic_1` key refers to a topic with an ID of `1`; you can get more information about each topic from our [App API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"email_address": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
}
},
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
}
]
},
"metric": {
"enum": [
"cio_subscription_preferences_changed"
],
"type": "string",
"description": "The event we're reporting to your webhook endpoint. In this case, a person changed their subscription preferences."
},
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"delivery_type": {
"enum": [
"email",
"sms",
"push",
"in_app",
"slack",
"webhook"
],
"type": "string",
"example": "email",
"description": "The type of delivery that resulted in a change to preferences."
}
},
"description": "A person changed their subscription preferences through our subscription center or you changed their `cio_subscription_preferences` attribute values.\n\nSome fields in the `data` object change based on whether the message that resulted in the change originated from a broadcast, campaign, or newsletter.\n"
}
],
"title": "Customer",
"description": "Events that occur when a customer subscribes or unsubscribes from your messages."
}
customer_event_common
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp",
"data"
],
"properties": {
"data": {
"type": "object",
"required": [
"identifiers",
"customer_id",
"email_address"
],
"properties": {
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"email_address": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
}
},
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"customer"
],
"type": "string",
"example": "customer",
"description": "The event represents a customer subscribing, unsubscribing, or changing their subscription preferences."
}
}
}
customer_events
{
"type": "object",
"properties": {
"customer_subscribed": {
"type": "boolean",
"description": "A person's `unsubscribed` attribute was explicitly set to `false`. Set to true to report `subscribed` events."
},
"customer_unsubscribed": {
"type": "boolean",
"description": "A person's `unsubscribed` attribute was explicitly set to `true`. Set to true to report `unsubscribed` events."
},
"cio_subscription_preferences_changed": {
"type": "boolean",
"description": "A person's subscription preferences changed. [Learn more about the subscription center](https://customer.io/docs/api/app/)."
}
},
"description": "Describes the customer events reported from Customer.io to a webhook."
}
customer_id
{
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
}
customer_identifiers
{
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
}
data_to_process
{
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
}
dedupe_id
{
"type": "string",
"format": "ulid",
"description": "An identifier used to deduplicate events. This value must be a [ULID](https://github.com/ulid/spec). If an event has the same value as an event we previously received, we won't show or process the duplicate. Note - our Python and Ruby libraries do not pass this id."
}
deduplicate_id
{
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
delivery_id
{
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
}
delivery_operations
{
"type": "object",
"title": "Delivery",
"required": [
"type",
"action",
"identifiers",
"name",
"attributes"
],
"properties": {
"name": {
"enum": [
"opened",
"converted",
"delivered"
],
"type": "string",
"description": "The name of the metric you want to attribute to this \"delivery\"."
},
"type": {
"enum": [
"delivery"
],
"type": "string",
"description": "The \"delivery\" type lets you attribute metrics to messages that don't self-report back to Customer.io, like push and in-app notifications."
},
"action": {
"enum": [
"event"
],
"type": "string",
"description": "An `event` action indicates a delivery event. Use the `name` to determine the specific metric that you want to attribute to this delivery."
},
"attributes": {
"type": "object",
"required": [
"device_token"
],
"properties": {
"device_token": {
"type": "string",
"description": "The device that received the message."
}
},
"description": "Contains information about the delivery and the individual who received the message."
},
"identifiers": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The `delivery_id` for the delivery that you want to attribute metrics to."
}
},
"description": "Contains identifiers for the delivery itself."
}
},
"description": "The \"delivery\" type lets you attribute metrics to messages that don't self-report back to Customer.io, like push and in-app notifications."
}
device_id
{
"type": "string",
"description": "The identifier for a person's device—typically a device token."
}
device_object
{
"allOf": [
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The device token."
}
}
},
{
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"enum": [
"ios",
"android"
],
"type": "string",
"description": "The device/messaging platform."
},
"last_used": {
"type": "integer",
"format": "unix timestamp",
"description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
},
"attributes": {
"type": "object",
"properties": {
"device_os": {
"type": "string",
"description": "The operating system, including the version, on the device."
},
"app_version": {
"type": "string",
"description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
},
"_last_status": {
"enum": [
"",
"bounced",
"sent",
"suppressed"
],
"type": "string",
"readOnly": true,
"description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
},
"device_model": {
"type": "string",
"description": "The model of the device a person uses."
},
"push_enabled": {
"enum": [
"true",
"false"
],
"type": "string",
"description": "If `\"true\"`, the device is opted-in and can receive push notifications."
},
"device_locale": {
"type": "string",
"description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
},
"cio_sdk_version": {
"type": "string",
"description": "The version of the Customer.io SDK in the app."
}
},
"description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
"additionalProperties": {
"type": "string",
"description": "Custom properties that you want to associate with the device.",
"x-additionalPropertiesName": "Custom Device Attributes"
}
}
},
"description": "Device information common to the v1 and v2 APIs."
}
],
"description": "The properties representing an individual device. [Our SDK's](https://customer.io/docs/api/app/) gather all the properties defined below automatically, unless you disable the `autoTrackDeviceAttributes` setting. You can reference the properties outside the `attributes` object in segments or in Liquid."
}
device_object_cdp
{
"allOf": [
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The device token."
}
}
},
{
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"enum": [
"ios",
"android"
],
"type": "string",
"description": "The device/messaging platform."
},
"last_used": {
"type": "integer",
"format": "unix timestamp",
"description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
},
"attributes": {
"type": "object",
"properties": {
"timezone": {
"type": "string",
"description": "The timezone of the device."
},
"device_os": {
"type": "string",
"description": "The operating system, including the version, on the device."
},
"app_version": {
"type": "string",
"description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
},
"_last_status": {
"enum": [
"",
"bounced",
"sent",
"suppressed"
],
"type": "string",
"readOnly": true,
"description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
},
"device_model": {
"type": "string",
"description": "The model of the device a person uses."
},
"network_wifi": {
"type": "boolean",
"description": "If `true`, the device's WiFi connection is on."
},
"push_enabled": {
"enum": [
"true",
"false"
],
"type": "string",
"description": "If `\"true\"`, the device is opted-in and can receive push notifications."
},
"screen_width": {
"type": "integer",
"description": "The width of the device's screen in pixels."
},
"device_locale": {
"type": "string",
"description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
},
"screen_height": {
"type": "integer",
"description": "The height of the device's screen in pixels."
},
"cio_sdk_version": {
"type": "string",
"description": "The version of the Customer.io SDK in the app."
},
"network_cellular": {
"type": "boolean",
"description": "If `true`, the device's cellular connection is on."
},
"network_bluetooth": {
"type": "boolean",
"description": "If `true`, the device's bluetooth connection is on."
}
},
"description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
"additionalProperties": {
"type": "string",
"description": "Custom properties that you want to associate with the device.",
"x-additionalPropertiesName": "Custom Device Attributes"
}
}
},
"description": "Device information common to the v1 and v2 APIs."
}
],
"description": "The properties representing an individual device in Journeys when sent from a Customer.io SDK that natively supports Data Pipelines (like iOS 3.x or later). [Our CDP-enabled SDK's](https://customer.io/docs/api/app/) gather all the properties defined below automatically, unless you disable the `autoTrackDeviceAttributes` setting."
}
device_object_cdp_common
{
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"enum": [
"ios",
"android"
],
"type": "string",
"description": "The device/messaging platform."
},
"last_used": {
"type": "integer",
"format": "unix timestamp",
"description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
},
"attributes": {
"type": "object",
"properties": {
"timezone": {
"type": "string",
"description": "The timezone of the device."
},
"device_os": {
"type": "string",
"description": "The operating system, including the version, on the device."
},
"app_version": {
"type": "string",
"description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
},
"_last_status": {
"enum": [
"",
"bounced",
"sent",
"suppressed"
],
"type": "string",
"readOnly": true,
"description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
},
"device_model": {
"type": "string",
"description": "The model of the device a person uses."
},
"network_wifi": {
"type": "boolean",
"description": "If `true`, the device's WiFi connection is on."
},
"push_enabled": {
"enum": [
"true",
"false"
],
"type": "string",
"description": "If `\"true\"`, the device is opted-in and can receive push notifications."
},
"screen_width": {
"type": "integer",
"description": "The width of the device's screen in pixels."
},
"device_locale": {
"type": "string",
"description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
},
"screen_height": {
"type": "integer",
"description": "The height of the device's screen in pixels."
},
"cio_sdk_version": {
"type": "string",
"description": "The version of the Customer.io SDK in the app."
},
"network_cellular": {
"type": "boolean",
"description": "If `true`, the device's cellular connection is on."
},
"network_bluetooth": {
"type": "boolean",
"description": "If `true`, the device's bluetooth connection is on."
}
},
"description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
"additionalProperties": {
"type": "string",
"description": "Custom properties that you want to associate with the device.",
"x-additionalPropertiesName": "Custom Device Attributes"
}
}
},
"description": "Device information common to the v1 and v2 APIs."
}
device_object_common
{
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"enum": [
"ios",
"android"
],
"type": "string",
"description": "The device/messaging platform."
},
"last_used": {
"type": "integer",
"format": "unix timestamp",
"description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
},
"attributes": {
"type": "object",
"properties": {
"device_os": {
"type": "string",
"description": "The operating system, including the version, on the device."
},
"app_version": {
"type": "string",
"description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
},
"_last_status": {
"enum": [
"",
"bounced",
"sent",
"suppressed"
],
"type": "string",
"readOnly": true,
"description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
},
"device_model": {
"type": "string",
"description": "The model of the device a person uses."
},
"push_enabled": {
"enum": [
"true",
"false"
],
"type": "string",
"description": "If `\"true\"`, the device is opted-in and can receive push notifications."
},
"device_locale": {
"type": "string",
"description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
},
"cio_sdk_version": {
"type": "string",
"description": "The version of the Customer.io SDK in the app."
}
},
"description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
"additionalProperties": {
"type": "string",
"description": "Custom properties that you want to associate with the device.",
"x-additionalPropertiesName": "Custom Device Attributes"
}
}
},
"description": "Device information common to the v1 and v2 APIs."
}
device_platform
{
"enum": [
"android",
"ios"
],
"type": "string",
"example": "ios",
"description": "The device's operating system."
}
disable_message_retention
{
"type": "boolean",
"default": false,
"description": "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`."
}
drafts
{
"type": "boolean",
"description": "If true, your request returns both drafts and active/sent messages."
}
email_address
{
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
}
email_attempted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "An email could not be sent to the delivery provider and will be retried. The `failure_message` provides the reason for the failure."
}
}
}
],
"title": "attempted"
}
email_bounced
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"failure_message"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"bounced"
],
"type": "string",
"description": "The delivery provider could not deliver an email."
}
}
}
],
"title": "bounced"
}
email_clicked
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"href",
"link_id"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "The recipient clicked a tracked link in the email."
}
}
}
],
"title": "clicked"
}
email_converted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"converted"
],
"type": "string",
"description": "A person matched a conversion goal attributed to an email."
}
}
}
],
"title": "converted"
}
email_delivered
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"delivered"
],
"type": "string",
"description": "A message was successfully delivered to a recipient."
}
}
}
],
"title": "delivered"
}
email_drafted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "The metric recorded by the event. For `customer` events, this is whether the customer explicitly subscribed or unsubscribed."
}
}
}
],
"title": "drafted"
}
email_dropped
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"failure_message"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"dropped"
],
"type": "string",
"description": "Customer.io did not send an email because it was addressed to a person who was suppressed."
}
}
}
],
"title": "dropped"
}
email_event
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "The metric recorded by the event. For `customer` events, this is whether the customer explicitly subscribed or unsubscribed."
}
}
}
],
"title": "drafted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "An email could not be sent to the delivery provider and will be retried. The `failure_message` provides the reason for the failure."
}
}
}
],
"title": "attempted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"content": {
"type": "string",
"description": "The body content of your email. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "A message was successfully sent. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"delivered"
],
"type": "string",
"description": "A message was successfully delivered to a recipient."
}
}
}
],
"title": "delivered"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"opened"
],
"type": "string",
"description": "The recipient opened a message."
}
}
}
],
"title": "opened"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"href",
"link_id"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "The recipient clicked a tracked link in the email."
}
}
}
],
"title": "clicked"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"converted"
],
"type": "string",
"description": "A person matched a conversion goal attributed to an email."
}
}
}
],
"title": "converted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"unsubscribed"
],
"type": "string",
"description": "The recipient unsubscribed based on a particular message."
}
}
}
],
"title": "unsubscribed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"failure_message"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"bounced"
],
"type": "string",
"description": "The delivery provider could not deliver an email."
}
}
}
],
"title": "bounced"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"failure_message"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"dropped"
],
"type": "string",
"description": "Customer.io did not send an email because it was addressed to a person who was suppressed."
}
}
}
],
"title": "dropped"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"spammed"
],
"type": "string",
"description": "A recipient marked an email as spam."
}
}
}
],
"title": "spammed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"failure_message"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "An email couldn't be sent to the delivery provider."
}
}
}
],
"title": "failed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"failure_message"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "failed"
}
],
"title": "Email",
"description": "Events representing an email.",
"discriminator": {
"mapping": {
"sent": "#/components/schemas/email_sent",
"failed": "#/components/schemas/email_failed",
"opened": "#/components/schemas/email_opened",
"bounced": "#/components/schemas/email_bounced",
"clicked": "#/components/schemas/email_clicked",
"drafted": "#/components/schemas/email_drafted",
"dropped": "#/components/schemas/email_dropped",
"spammed": "#/components/schemas/email_spammed",
"attempted": "#/components/schemas/email_attempted",
"converted": "#/components/schemas/email_converted",
"delivered": "#/components/schemas/email_delivered",
"unsubscribed": "#/components/schemas/email_unsubscribed",
"undeliverable": "#/components/schemas/email_undeliverable"
},
"propertyName": "metric"
}
}
email_event_common
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
}
email_events
{
"type": "object",
"properties": {
"email_sent": {
"type": "boolean",
"description": "Reports when a message is sent from Customer.io to the delivery provider. Set to true to report this event type."
},
"email_failed": {
"type": "boolean",
"description": "Reports when an email couldn't be sent to the delivery provider. Set to true to report this event type."
},
"email_opened": {
"type": "boolean",
"description": "Reports when a recipient opens a message. Set to true to report this event type."
},
"email_bounced": {
"type": "boolean",
"description": "Reports when the delivery provider is unable to deliver a message. Set to true to report this event type."
},
"email_clicked": {
"type": "boolean",
"description": "Reports when a person clicks a tracked link in a message. Set to true to report this event type."
},
"email_drafted": {
"type": "boolean",
"description": "Reports when a message draft is created. Set to true to report this event type."
},
"email_dropped": {
"type": "boolean",
"description": "Reports when a message isn't sent because the recipient is suppressed. Set to true to report this event type."
},
"email_spammed": {
"type": "boolean",
"description": "Reports a recipient marks a message as spam. Set to true to report this even type."
},
"email_deferred": {
"type": "boolean",
"description": "Reports when the delivery provider couldn't send a message and will retry. Set to true to report this event type."
},
"email_attempted": {
"type": "boolean",
"description": "Reports when a message cannot be sent to the delivery provider and will retry. Set to true to report this event type."
},
"email_converted": {
"type": "boolean",
"description": "Reports a conversion. Set to true to report this event type."
},
"email_delivered": {
"type": "boolean",
"description": "Reports when the delivery provider reports that a message is delivered to an inbox. Set to true to report this event type."
},
"email_unsubscribed": {
"type": "boolean",
"description": "Reports when a person unsubscribes through a particular email. Set to true to report this event type."
}
},
"description": "Describes the email events reported from Customer.io to a webhook."
}
email_failed
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"failure_message"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "An email couldn't be sent to the delivery provider."
}
}
}
],
"title": "failed"
}
email_opened
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"opened"
],
"type": "string",
"description": "The recipient opened a message."
}
}
}
],
"title": "opened"
}
email_sent
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"content": {
"type": "string",
"description": "The body content of your email. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "A message was successfully sent. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
}
email_spammed
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"spammed"
],
"type": "string",
"description": "A recipient marked an email as spam."
}
}
}
],
"title": "spammed"
}
email_undeliverable
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"failure_message"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "failed"
}
email_unsubscribed
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"unsubscribed"
],
"type": "string",
"description": "The recipient unsubscribed based on a particular message."
}
}
}
],
"title": "unsubscribed"
}
end
{
"type": "integer",
"format": "unix timestamp",
"example": 1517702400,
"description": "The unix timestamp representing the end of the export."
}
errors
{
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"description": "The field containing the error."
},
"reason": {
"type": "string",
"description": "The reason for the error."
},
"message": {
"type": "string",
"description": "A detailed description of the error in the offending field."
}
}
},
"description": "An array of errors, where each object represents a different error."
}
esp_suppression
{
"type": "object",
"properties": {
"category": {
"enum": [
"bounces",
"blocks",
"spam",
"invalid"
],
"type": "string",
"example": "bounces",
"description": "The reason the addresses are suppressed."
},
"suppressions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"example": "bounced.person@example.com",
"description": "The email address that the ESP suppressed."
},
"reason": {
"type": "string",
"example": "Uploaded manually via api.customer.io",
"description": "The reason for the suppression, as [recorded by Mailgun](https://documentation.mailgun.com/en/latest/api-suppressions.html)."
},
"status": {
"type": "string",
"example": "550",
"description": "The status code for the suppression, as [recorded by mailgun](https://documentation.mailgun.com/en/latest/api-suppressions.html). This is normally `550`."
},
"created": {
"type": "integer",
"format": "Unix timestamp",
"example": 1650895738,
"description": "The timestamp (in seconds), when the ESP suppressed the address."
}
}
},
"description": "The addresses suppressed in this category."
}
}
}
event_common_data
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
}
event_id
{
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
}
eventsRequest
{
"oneOf": [
{
"type": "object",
"title": "Standard event",
"example": {
"data": {
"price": 23.45,
"product": "socks"
},
"name": "purchase"
},
"required": [
"name"
],
"properties": {
"id": {
"type": "string",
"format": "ulid",
"description": "An identifier used to deduplicate events. This value must be a [ULID](https://github.com/ulid/spec). If an event has the same value as an event we previously received, we won't show or process the duplicate. Note - our Python and Ruby libraries do not pass this id."
},
"data": {
"type": "object",
"properties": {
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"from_address": {
"type": "string",
"format": "email",
"description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
}
},
"description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "liquid merge data"
}
},
"name": {
"type": "string",
"description": "The name of the event. This is how you'll reference the event in campaigns or segments."
},
"type": {
"enum": [
"event"
],
"type": "string",
"description": "Sets the event type. If your event isn't a `page` or `screen` type event, we automatically set this property to `event`."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n\n**NOTE**: Events with a timestamp in the past 72 hours can trigger campaigns.\n"
}
}
},
{
"type": "object",
"title": "Page view",
"example": {
"data": {
"last_name": "Person",
"first_name": "Cool"
},
"name": "https://mysite.com/page",
"type": "page"
},
"required": [
"name",
"type"
],
"properties": {
"id": {
"type": "string",
"format": "ulid",
"description": "An identifier used to deduplicate events. This value must be a [ULID](https://github.com/ulid/spec). If an event has the same value as an event we previously received, we won't show or process the duplicate. Note - our Python and Ruby libraries do not pass this id."
},
"data": {
"type": "object",
"description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
"additionalProperties": {
"description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person.",
"x-additionalPropertiesName": "liquid merge data"
}
},
"name": {
"type": "string",
"description": "The name of the event. This is how you'll reference the event in campaigns or segments."
},
"type": {
"enum": [
"page"
],
"type": "string",
"description": "Indicates that the event represents a page view. See [\"page view\" events](https://customer.io/docs/api/app/), for more information."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
}
}
},
{
"type": "object",
"title": "Mobile screen view",
"example": {
"data": {
"from": "push-notification"
},
"name": "homepage",
"type": "screen"
},
"required": [
"anonymous_id",
"name",
"type"
],
"properties": {
"id": {
"type": "string",
"format": "ulid",
"description": "An identifier used to deduplicate events. This value must be a [ULID](https://github.com/ulid/spec). If an event has the same value as an event we previously received, we won't show or process the duplicate. Note - our Python and Ruby libraries do not pass this id."
},
"data": {
"type": "object",
"description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
"additionalProperties": {
"description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person.",
"x-additionalPropertiesName": "liquid merge data"
}
},
"name": {
"type": "string",
"description": "The name of the event. In general, this should be the name of the screen or deep link path that a person viewed, making it easy to segment your audience or trigger campaigns from these events. Make sure you trim leading and trailing spaces from this field."
},
"type": {
"enum": [
"screen"
],
"type": "string",
"description": "Indicates that the event represents a mobile screen view. You can also capture screen events directly with [our iOS SDK](https://customer.io/docs/api/app/)."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
},
"anonymous_id": {
"type": "string",
"description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
}
}
}
]
}
exportObject
{
"type": "object",
"example": {
"id": 110,
"type": "customers",
"total": 1234,
"failed": false,
"status": "done",
"user_id": 0,
"downloads": 2,
"created_at": 1530296738,
"updated_at": 1530296738,
"user_email": "person@email.com",
"description": "Customers with segment filters—in \\Purchased Flowers\\",
"deduplicate_id": "110:1530296738"
},
"properties": {
"id": {
"type": "integer",
"example": 110,
"description": "The identifier for the export."
},
"type": {
"enum": [
"customers",
"deliveries"
],
"type": "string",
"example": "customers",
"description": "The type of information contained in the export."
},
"total": {
"type": "integer",
"description": "The number of entries in the export. Exports report 0 until done."
},
"failed": {
"type": "boolean",
"example": false,
"description": "If true, the export was unsuccessful."
},
"status": {
"enum": [
"done",
"pending",
"failed"
],
"type": "string",
"description": "The state of your export where `done` indicates an export that you can download, `pending`, indicates that your export is not ready to download, and `failed` indicates an export that has failed and will not be downloadable."
},
"user_id": {
"type": "integer",
"description": "The user who created the export."
},
"downloads": {
"type": "integer",
"example": 2,
"description": "Counts the total number of times the export has been downloaded."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"user_email": {
"type": "string",
"description": "The email of the user who created the export."
},
"description": {
"type": "string",
"example": "Customers with segment filters—in Purchased Flowers",
"description": "A description of the export."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
},
"description": "Metadata about an export."
}
exportSharedProps
{
"type": "object",
"properties": {
"end": {
"type": "integer",
"format": "unix timestamp",
"example": 1517702400,
"description": "The unix timestamp representing the end of the export."
},
"start": {
"type": "integer",
"format": "unix timestamp",
"example": 1517529600,
"description": "The unix timestamp representing the beginning of the export."
},
"drafts": {
"type": "boolean",
"description": "If true, your request returns both drafts and active/sent messages."
},
"metric": {
"enum": [
"created",
"attempted",
"sent",
"delivered",
"opened",
"clicked",
"converted",
"bounced",
"spammed",
"unsubscribed",
"dropped",
"failed",
"undeliverable"
],
"type": "string",
"description": "Determines the metric(s) you want to return."
},
"attributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The names of attributes you want to include in your export; each attribute name is an additional column in the export. If your message included liquid, you may add the attribute names used in your message so you can see the values populated for each delivery."
}
},
"description": "Contains properties shared by export filters."
}
export_description
{
"type": "string",
"example": "Customers with segment filters—in Purchased Flowers",
"description": "A description of the export."
}
export_downloads
{
"type": "integer",
"example": 2,
"description": "Counts the total number of times the export has been downloaded."
}
export_failed
{
"type": "boolean",
"example": false,
"description": "If true, the export was unsuccessful."
}
export_id
{
"type": "integer",
"example": 110,
"description": "The identifier for the export."
}
export_type
{
"enum": [
"customers",
"deliveries"
],
"type": "string",
"example": "customers",
"description": "The type of information contained in the export."
}
failure_message
{
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
fake_bcc
{
"type": "boolean",
"readOnly": true,
"description": "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).\n"
}
fcmAndroid
{
"oneOf": [
{
"type": "object",
"title": "SDK Integration",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"oneOf": [
{
"type": "object",
"title": "Data object only",
"required": [
"data"
],
"properties": {
"data": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "Contains all properties interpreted by the SDK."
},
"android": {
"type": "object",
"properties": {
"notification": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Identifier to replace existing notifications in the notification drawer. If empty, each request creates a new notification.\n\nIf you specify a tag, and a notification with the same tag is already being shown, the new notification replaces the existing one in the notification drawer. \n"
},
"icon": {
"type": "string",
"description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
},
"color": {
"type": "string",
"description": "The notification's icon color in `#rrggbb` format."
},
"sound": {
"type": "string",
"description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
},
"body_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
},
"body_loc_key": {
"type": "string",
"description": "The key to the body string in the app's string resources that you want to use to localize the body text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
},
"click_action": {
"type": "string",
"description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
},
"title_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
},
"title_loc_key": {
"type": "string",
"description": "The key to the title string in the app's string resources that you want to use to localize the title text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
}
},
"description": "Properties supported specifically by Android on FCM."
}
},
"description": "Contains properties that are **not** interpreted by the SDK but are defined by FCM. You need to write your own code to handle these Android push features."
}
}
},
{
"type": "object",
"title": "Notification and data object",
"required": [
"notification"
],
"properties": {
"data": {
"type": "object",
"properties": {
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
}
},
"description": "Contains the `link` property (interpreted by the SDK) and additional properties that you want to pass to your app."
},
"android": {
"type": "object",
"properties": {
"notification": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Identifier to replace existing notifications in the notification drawer. If empty, each request creates a new notification.\n\nIf you specify a tag, and a notification with the same tag is already being shown, the new notification replaces the existing one in the notification drawer. \n"
},
"icon": {
"type": "string",
"description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
},
"color": {
"type": "string",
"description": "The notification's icon color in `#rrggbb` format."
},
"sound": {
"type": "string",
"description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
},
"body_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
},
"body_loc_key": {
"type": "string",
"description": "The key to the body string in the app's string resources that you want to use to localize the body text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
},
"click_action": {
"type": "string",
"description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
},
"title_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
},
"title_loc_key": {
"type": "string",
"description": "The key to the title string in the app's string resources that you want to use to localize the title text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
}
},
"description": "Properties supported specifically by Android on FCM."
}
},
"description": "Contains properties that are **not** interpreted by the SDK but are defined by FCM. You need to write your own code to handle these Android push features."
},
"notification": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "Contains properties interpreted by the SDK except for the `link`."
}
}
}
],
"description": "The parent object for all push payloads."
}
}
}
}
},
{
"type": "object",
"title": "Custom Integration",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Contains key-value pairs that your app interprets.",
"additionalProperties": {
"type": "string",
"x-doNotRender": true,
"x-additionalPropertiesName": "Attachment Names"
}
},
"android": {
"type": "object",
"properties": {
"notification": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Identifier to replace existing notifications in the notification drawer. If empty, each request creates a new notification.\n\nIf you specify a tag, and a notification with the same tag is already being shown, the new notification replaces the existing one in the notification drawer. \n"
},
"icon": {
"type": "string",
"description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
},
"color": {
"type": "string",
"description": "The notification's icon color in `#rrggbb` format."
},
"sound": {
"type": "string",
"description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
},
"body_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
},
"body_loc_key": {
"type": "string",
"description": "The key to the body string in the app's string resources that you want to use to localize the body text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
},
"click_action": {
"type": "string",
"description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
},
"title_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
},
"title_loc_key": {
"type": "string",
"description": "The key to the title string in the app's string resources that you want to use to localize the title text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
}
},
"description": "Properties supported specifically by Android on FCM."
}
},
"description": "Contains custom push options for your notification."
},
"notification": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "Contains the push body and title."
}
},
"description": "The parent object for Android custom push payloads."
}
},
"description": "A custom push payload for Android devices."
}
}
}
]
}
fcmAndroidWithSdk
{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"oneOf": [
{
"type": "object",
"title": "Data object only",
"required": [
"data"
],
"properties": {
"data": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "Contains all properties interpreted by the SDK."
},
"android": {
"type": "object",
"properties": {
"notification": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Identifier to replace existing notifications in the notification drawer. If empty, each request creates a new notification.\n\nIf you specify a tag, and a notification with the same tag is already being shown, the new notification replaces the existing one in the notification drawer. \n"
},
"icon": {
"type": "string",
"description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
},
"color": {
"type": "string",
"description": "The notification's icon color in `#rrggbb` format."
},
"sound": {
"type": "string",
"description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
},
"body_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
},
"body_loc_key": {
"type": "string",
"description": "The key to the body string in the app's string resources that you want to use to localize the body text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
},
"click_action": {
"type": "string",
"description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
},
"title_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
},
"title_loc_key": {
"type": "string",
"description": "The key to the title string in the app's string resources that you want to use to localize the title text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
}
},
"description": "Properties supported specifically by Android on FCM."
}
},
"description": "Contains properties that are **not** interpreted by the SDK but are defined by FCM. You need to write your own code to handle these Android push features."
}
}
},
{
"type": "object",
"title": "Notification and data object",
"required": [
"notification"
],
"properties": {
"data": {
"type": "object",
"properties": {
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
}
},
"description": "Contains the `link` property (interpreted by the SDK) and additional properties that you want to pass to your app."
},
"android": {
"type": "object",
"properties": {
"notification": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Identifier to replace existing notifications in the notification drawer. If empty, each request creates a new notification.\n\nIf you specify a tag, and a notification with the same tag is already being shown, the new notification replaces the existing one in the notification drawer. \n"
},
"icon": {
"type": "string",
"description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
},
"color": {
"type": "string",
"description": "The notification's icon color in `#rrggbb` format."
},
"sound": {
"type": "string",
"description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
},
"body_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
},
"body_loc_key": {
"type": "string",
"description": "The key to the body string in the app's string resources that you want to use to localize the body text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
},
"click_action": {
"type": "string",
"description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
},
"title_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
},
"title_loc_key": {
"type": "string",
"description": "The key to the title string in the app's string resources that you want to use to localize the title text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
}
},
"description": "Properties supported specifically by Android on FCM."
}
},
"description": "Contains properties that are **not** interpreted by the SDK but are defined by FCM. You need to write your own code to handle these Android push features."
},
"notification": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "Contains properties interpreted by the SDK except for the `link`."
}
}
}
],
"description": "The parent object for all push payloads."
}
}
}
fcmAndroidWithoutSdk
{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Contains key-value pairs that your app interprets.",
"additionalProperties": {
"type": "string",
"x-doNotRender": true,
"x-additionalPropertiesName": "Attachment Names"
}
},
"android": {
"type": "object",
"properties": {
"notification": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Identifier to replace existing notifications in the notification drawer. If empty, each request creates a new notification.\n\nIf you specify a tag, and a notification with the same tag is already being shown, the new notification replaces the existing one in the notification drawer. \n"
},
"icon": {
"type": "string",
"description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
},
"color": {
"type": "string",
"description": "The notification's icon color in `#rrggbb` format."
},
"sound": {
"type": "string",
"description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
},
"body_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
},
"body_loc_key": {
"type": "string",
"description": "The key to the body string in the app's string resources that you want to use to localize the body text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
},
"click_action": {
"type": "string",
"description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
},
"title_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
},
"title_loc_key": {
"type": "string",
"description": "The key to the title string in the app's string resources that you want to use to localize the title text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
}
},
"description": "Properties supported specifically by Android on FCM."
}
},
"description": "Contains custom push options for your notification."
},
"notification": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "Contains the push body and title."
}
},
"description": "The parent object for Android custom push payloads."
}
},
"description": "A custom push payload for Android devices."
}
fcmBasicPush
{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"required": [
"notification"
],
"properties": {
"data": {
"type": "object",
"properties": {
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
}
},
"description": "Contains the `link` property (interpreted by the SDK) and additional properties that you want to pass to your app."
},
"notification": {
"type": "object",
"required": [
"body"
],
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "Contains properties interpreted by the SDK except for the `link`."
}
},
"description": "The parent object for all custom push payloads."
}
}
}
fcmIosWithSdk
{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"required": [
"apns"
],
"properties": {
"apns": {
"type": "object",
"required": [
"payload"
],
"properties": {
"headers": {
"type": "object",
"description": "Headers defined by [Apple's payload reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) that you want to pass through FCM."
},
"payload": {
"type": "object",
"properties": {
"CIO": {
"type": "object",
"required": [
"push"
],
"properties": {
"push": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "A push payload for the iOS SDK."
}
},
"description": "Contains properties interpreted by the Customer.io iOS SDK."
},
"aps": {
"type": "object",
"properties": {
"alert": {
"oneOf": [
{
"type": "string",
"title": "Simple alert",
"description": "A simple alert message."
},
{
"type": "object",
"title": "Complex alert",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
},
"loc-key": {
"type": "string",
"description": "The key for a localized message string in your app’s Localizable.strings file."
},
"loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
},
"subtitle": {
"type": "string",
"description": "Additional information that explains the purpose of the notification."
},
"launch-image": {
"type": "string",
"description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
},
"title-loc-key": {
"type": "string",
"description": "The key for a localized title string in your app’s Localizable.strings files."
},
"title-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
},
"subtitle-loc-key": {
"type": "string",
"description": "The key for a localized subtitle string in your app’s Localizable.strings file."
},
"subtitle-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
}
}
}
]
},
"badge": {
"type": "integer",
"description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
},
"sound": {
"oneOf": [
{
"type": "string",
"title": "Regular alert",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
},
{
"type": "object",
"title": "Critical alert",
"properties": {
"name": {
"type": "string",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
},
"volume": {
"type": "number",
"description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
},
"critical": {
"type": "integer",
"description": "1 indicates critical. 0 is not critical."
}
}
}
]
},
"category": {
"type": "string",
"description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
},
"thread-id": {
"type": "string",
"description": "An identifier to group related notifications."
},
"mutable-content": {
"type": "integer",
"description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
},
"relevance-score": {
"type": "number",
"description": "A number between 0 and 1. The highest score is considered the \"most relevant\" and is featured in the notification summary."
},
"content-available": {
"type": "integer",
"description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
},
"target-content-id": {
"type": "string",
"description": "The identifier of the window brought forward."
},
"interruption-level": {
"enum": [
"passive",
"active",
"time-sensitive",
"critical"
],
"type": "string",
"description": "Indicates the importance and delivery timing of a notification."
}
},
"description": "A push payload intended for an iOS device."
}
},
"description": "Contains a push payload.",
"additionalProperties": {
"description": "Additional properties that you've set up your app to interpret outside of the Customer.io SDK.",
"x-additionalPropertiesName": "Custom key-value pairs"
}
}
},
"description": "Defines a payload for iOS devices sent through Firebase Cloud Messaging (FCM)."
}
},
"description": "The base object for all FCM payloads."
}
}
}
fcmIosWithoutSdk
{
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"required": [
"apns"
],
"properties": {
"apns": {
"type": "object",
"required": [
"payload"
],
"properties": {
"headers": {
"type": "object",
"description": "Headers defined by [Apple's payload reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) that you want to pass through FCM."
},
"payload": {
"type": "object",
"properties": {
"aps": {
"type": "object",
"properties": {
"alert": {
"oneOf": [
{
"type": "string",
"title": "Simple alert",
"description": "A simple alert message."
},
{
"type": "object",
"title": "Complex alert",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
},
"loc-key": {
"type": "string",
"description": "The key for a localized message string in your app’s Localizable.strings file."
},
"loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
},
"subtitle": {
"type": "string",
"description": "Additional information that explains the purpose of the notification."
},
"launch-image": {
"type": "string",
"description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
},
"title-loc-key": {
"type": "string",
"description": "The key for a localized title string in your app’s Localizable.strings files."
},
"title-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
},
"subtitle-loc-key": {
"type": "string",
"description": "The key for a localized subtitle string in your app’s Localizable.strings file."
},
"subtitle-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
}
}
}
]
},
"badge": {
"type": "integer",
"description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
},
"sound": {
"oneOf": [
{
"type": "string",
"title": "Regular alert",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
},
{
"type": "object",
"title": "Critical alert",
"properties": {
"name": {
"type": "string",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
},
"volume": {
"type": "number",
"description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
},
"critical": {
"type": "integer",
"description": "1 indicates critical. 0 is not critical."
}
}
}
]
},
"category": {
"type": "string",
"description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
},
"thread-id": {
"type": "string",
"description": "An identifier to group related notifications."
},
"mutable-content": {
"type": "integer",
"description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
},
"relevance-score": {
"type": "number",
"description": "A number between 0 and 1. The highest score is considered the \"most relevant\" and is featured in the notification summary."
},
"content-available": {
"type": "integer",
"description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
},
"target-content-id": {
"type": "string",
"description": "The identifier of the window brought forward."
},
"interruption-level": {
"enum": [
"passive",
"active",
"time-sensitive",
"critical"
],
"type": "string",
"description": "Indicates the importance and delivery timing of a notification."
}
},
"description": "A push payload intended for an iOS device."
}
}
}
},
"description": "Defines a push notification for iOS devices."
}
},
"description": "The base object for all Firebase payloads."
}
}
}
fixedGridWidget
{
"type": "object",
"required": [
"type",
"components",
"columns"
],
"properties": {
"type": {
"enum": [
"fixedGridWidget"
],
"type": "string",
"description": "Defines the widget type."
},
"columns": {
"type": "integer",
"description": "The number of columns in your grid."
},
"components": {
"type": "array",
"items": {
"type": "object"
},
"description": "An array of child components that you want to make available inside this widget."
},
"itemPadding": {
"type": "string",
"description": "The padding between items in your grid."
},
"childAspectRatio": {
"type": "number",
"description": "The aspect ratio for items in the grid. Defaults to 1.0"
}
},
"description": "Used to layout an in-app message in a fixed grid."
}
fixedHorizontalListWidget
{
"type": "object",
"properties": {
"type": {
"enum": [
"fixedHorizontalListWidget"
],
"type": "string",
"description": "Defines the widget type."
},
"components": {
"type": "array",
"items": {
"type": "object"
},
"description": "An array of child components that you want to make available inside this widget."
},
"mainAxisAlignment": {
"enum": [
"start",
"end",
"spaceBetween",
"spaceAround",
"spaceEvenly"
],
"type": "string",
"description": "The mainAxisAlignment property supports the following options."
},
"crossAxisAlignment": {
"enum": [
"center",
"start",
"end",
"stretch",
"baseline"
],
"type": "string",
"description": "The crossAxisAlignment property supports the following options"
}
},
"description": "Displays a series of components in a horizontal list, like if you want to put an image and text next to each other."
}
fixedHorizontalScrollWidget
{
"type": "object",
"properties": {
"type": {
"enum": [
"fixedHorizontalListScrollWidget"
],
"type": "string",
"description": "Defines the widget type"
},
"height": {
"type": "integer",
"description": "The height of the widget in pixels."
},
"components": {
"type": "array",
"items": {
"type": "object"
},
"description": "An array of child components that you want to make available inside this widget."
}
},
"description": "A series of components that you can scroll through, like a carousel."
}
fixedListWidget
{
"type": "object",
"properties": {
"type": {
"enum": [
"fixedListWidget"
],
"type": "string",
"description": "Defines the widget type."
},
"components": {
"type": "array",
"items": {
"type": "object"
},
"description": "An array of child components that you want to make available inside this widget."
},
"mainAxisAlignment": {
"enum": [
"start",
"end",
"spaceBetween",
"spaceAround",
"spaceEvenly"
],
"type": "string",
"description": "The mainAxisAlignment property supports the following options."
},
"crossAxisAlignment": {
"enum": [
"center",
"start",
"end",
"stretch",
"baseline"
],
"type": "string",
"description": "The crossAxisAlignment property supports the following options"
}
},
"description": "Displays a series of components in a vertical list."
}
forgotten
{
"type": "boolean",
"example": false,
"description": "If true, Customer.io does not retain the message content."
}
from
{
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
}
from_address
{
"type": "string",
"format": "email",
"description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
}
from_id
{
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
}
headers
{
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
}
href
{
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
}
iconWidget
{
"type": "object",
"required": [
"type",
"color",
"value"
],
"properties": {
"font": {
"description": "The icon font you want to use."
},
"size": {
"type": "integer",
"description": "The pixel size of the icon."
},
"type": {
"enum": [
"iconWidget"
],
"type": "string",
"description": "Defines the widget type."
},
"color": {
"type": "string",
"description": "The color you want to use for this content. You can only set values here that are defined under [**Content** > **In-App Messages**](https://fly.customer.io/env/last/in-app-messages)."
},
"value": {
"type": "string",
"description": "The value of the icon that you want to use. For example, for font-awesome, you'd use the name of the icon."
}
},
"description": "Displays an icon from an icon font that you've loaded into your app or project. You must load your icon font in the assets section of your app configuration."
}
identify_person
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"identify"
],
"type": "string",
"description": "Indicates that the operation will `identify` the the item of the specified `type`."
},
"attributes": {
"type": "object",
"properties": {
"cio_subscription_preferences": {
"type": "object",
"example": {
"topic_1": true,
"topic_2": false,
"topic_3": true
},
"properties": {
"topics": {
"type": "object",
"description": "Contains active topics in your workspace, named `topic_<id>`.",
"additionalProperties": {
"type": "boolean",
"description": "Each property is a boolean named `topic_<id>`. Topic `id` values begin at `1` and increment for each new topic. You can find your topic ids in [Workspace Settings](https://fly.customer.io/workspaces/last/settings/subscription_center/topics) or by querying our [App API](https://customer.io/docs/api/app/#operation/getTopics). For each boolean, `true` means that a person is subscribed to the topic; false means they are unsubscribed. An empty or missing value reverts to the default preference for the topic (opt-in or opt-out).",
"x-additionalPropertiesName": "topic_<id>"
}
}
},
"description": "Stores your audience's subscription preferences if you enable our [subscription center](https://customer.io/docs/api/app/) feature. These items are set automatically when people use the unsubscribe link in your messages, but you can set preferences outside the subscription flow. To update select topic preferences while preserving those set for other topics, use JSON dot notation `\"cio_subscription_preferences.topics.topic_<topic ID>\":<boolean>`."
}
},
"description": "Attributes that you want to add or update for this person."
},
"cio_relationships": {
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"properties": {
"relationship_attributes": {
"type": "object",
"example": {
"role": "admin"
},
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
}
]
},
"description": "Each object in the array represents a relationship you want to add to, or remove from, a person."
}
}
}
],
"title": "identify",
"description": "Add or update a person."
}
imageWidget
{
"type": "object",
"required": [
"type",
"image"
],
"properties": {
"fit": {
"enum": [
"none",
"fitWidth",
"cover",
"contain",
"scaleDown",
"fill",
"fitHeight"
],
"type": "string",
"description": "Determines how the image fits your message. Defaults to `cover`."
},
"type": {
"enum": [
"imageWidget"
],
"type": "string",
"description": "Defines the widget type."
},
"image": {
"example": "$person.imageUrl",
"description": "The URL of the image that you want ot use in your message."
},
"width": {
"type": "integer",
"description": "The width of the component in pixels, if you want to constrain it. If you don't set a height or width, we'll scale your content to fit your message or container."
},
"height": {
"type": "integer",
"description": "The height of the component in pixels, if you want to constrain it. If you don't set a height or width, we'll scale your content to fit your message or container."
},
"cornerRadius": {
"type": "integer",
"description": "Sets the radius of corners for an item in pixels, similar to the `border-radius` CSS property."
},
"fadeInDuration": {
"type": "integer",
"description": "The durration for the image to fade in, in milliseconds, similar to the `fadeIn` CSS transition property."
}
},
"description": "Displays an image. You can provide the URL of an image. Or, if you use the template designer, you can upload an image and host it directly."
}
import_description
{
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
}
import_identifier
{
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
}
import_name
{
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
}
import_object
{
"type": "object",
"example": {
"id": 30,
"name": "account-object-import",
"type": "object",
"error": "possible error - The specified Object Type does not exist.",
"state": "imported",
"created_at": 1706081641,
"updated_at": 1706081645,
"description": "importing accounts",
"rows_imported": 3,
"object_type_id": 1,
"rows_to_import": 3,
"data_to_process": "all",
"people_to_process": "all"
},
"properties": {
"id": {
"type": "integer",
"description": "This is the `import_id` you'll use if you want to [lookup your import operation](https://customer.io/docs/api/app/)."
},
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"people",
"event",
"object",
"relationship"
],
"type": "string",
"description": "The type of import."
},
"error": {
"type": "string",
"description": "If your import fails, this helps you understand why."
},
"state": {
"enum": [
"preprocessing",
"preprocessed",
"validating",
"validated",
"importing",
"imported",
"failed",
"canceled"
],
"type": "string",
"description": "The state of the import—whether your import is being processed, fully completed (`imported`), or if it failed."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you used to identify people in your CSV. Not applicable for object imports."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"rows_imported": {
"type": "integer",
"description": "The number of rows we imported from the CSV."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Only applies to object imports."
},
"rows_to_import": {
"type": "integer",
"description": "The total number of importable rows we found in the CSV."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
},
"people_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Returned for people and event imports, even if you imported using the field `data_to_process`. This field will be deprecated soon.\n"
}
},
"description": "Represents an import operation."
}
import_request
{
"oneOf": [
{
"type": "object",
"title": "people",
"required": [
"data_file_url",
"name",
"type",
"identifier"
],
"properties": {
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"people"
],
"type": "string",
"description": "The type of import."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"data_file_url": {
"type": "string",
"description": "The URL or path to the CSV file you want to import."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
}
},
"description": "Contains your import parameters."
},
{
"type": "object",
"title": "event",
"required": [
"data_file_url",
"name",
"type",
"identifier"
],
"properties": {
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"event"
],
"type": "string",
"description": "The type of import."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"data_file_url": {
"type": "string",
"description": "The URL or path to the CSV file you want to import."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
}
},
"description": "Contains your import parameters."
},
{
"type": "object",
"title": "relationship",
"required": [
"data_file_url",
"name",
"type",
"identifier",
"object_type_id"
],
"properties": {
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"relationship"
],
"type": "string",
"description": "The type of import."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"data_file_url": {
"type": "string",
"description": "The URL or path to the CSV file you want to import."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
}
},
"description": "Contains your import parameters."
},
{
"type": "object",
"title": "object",
"required": [
"data_file_url",
"name",
"type",
"object_type_id"
],
"properties": {
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The type of import."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"data_file_url": {
"type": "string",
"description": "The URL or path to the CSV file you want to import."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
}
},
"description": "Contains your import parameters."
}
]
}
import_state
{
"enum": [
"preprocessing",
"preprocessed",
"validating",
"validated",
"importing",
"imported",
"failed",
"canceled"
],
"type": "string",
"description": "The state of the import—whether your import is being processed, fully completed (`imported`), or if it failed."
}
import_type
{
"enum": [
"people",
"event",
"object",
"relationship"
],
"type": "string",
"description": "The type of import."
}
inAppMessageActionEvent
{
"type": "object",
"properties": {
"type": {
"enum": [
"in-app:message-action"
],
"type": "string",
"description": "Defines the event type."
},
"detail": {
"type": "object",
"properties": {
"messageId": {
"type": "string",
"description": "Identifier string of the in-app message."
},
"actionName": {
"type": "string",
"description": "The name of the action specified when building the in-app message."
},
"deliveryId": {
"type": "string",
"description": "Delivery Id for the corresponding in-app message (not present in test message)."
},
"actionValue": {
"type": "string",
"description": "The type of action that triggered the event."
}
}
}
},
"description": "Event object passed to the listener function when user performs an action in the in-app message."
}
inAppMessageDismissedEvent
{
"type": "object",
"properties": {
"type": {
"enum": [
"in-app:message-dismissed"
],
"type": "string",
"description": "Defines the event type."
},
"detail": {
"type": "object",
"properties": {
"messageId": {
"type": "string",
"description": "Identifier string of the in-app message."
},
"deliveryId": {
"type": "string",
"description": "Delivery Id for the corresponding in-app message (not present in test message)."
}
},
"description": "An object containing message specific data depending on the event type."
}
},
"description": "Event object passed to the listener function when user dismisses an in-app message."
}
inAppMessageErrorEvent
{
"type": "object",
"properties": {
"type": {
"enum": [
"in-app:message-error"
],
"type": "string",
"description": "Defines the event type."
},
"detail": {
"type": "object",
"properties": {
"messageId": {
"type": "string",
"description": "Identifier string of the in-app message."
},
"deliveryId": {
"type": "string",
"description": "Delivery Id for the corresponding in-app message (not present in test message)."
}
},
"description": "An object containing message specific data depending on the event type."
}
},
"description": "Event object passed to the listener function when an error occurs."
}
inAppMessageEventDetail
{
"type": "object",
"properties": {
"messageId": {
"type": "string",
"description": "Identifier string of the in-app message."
},
"deliveryId": {
"type": "string",
"description": "Delivery Id for the corresponding in-app message (not present in test message)."
}
},
"description": "An object containing message specific data depending on the event type."
}
inAppMessageOpenedEvent
{
"type": "object",
"properties": {
"type": {
"enum": [
"in-app:message-opened"
],
"type": "string",
"description": "Defines the event type."
},
"detail": {
"type": "object",
"properties": {
"messageId": {
"type": "string",
"description": "Identifier string of the in-app message."
},
"deliveryId": {
"type": "string",
"description": "Delivery Id for the corresponding in-app message (not present in test message)."
}
},
"description": "An object containing message specific data depending on the event type."
}
},
"description": "Event object passed to the listener function when user is shown an in-app message."
}
in_app_attempted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "An in-app message failed to send, but will be retried."
}
}
}
],
"title": "attempted"
}
in_app_clicked
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"link_id",
"href"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipient": {
"type": "string",
"description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
},
"tracked_response": {
"type": "string",
"description": "The *Action Name* of the action a person clicked/tapped in the message. [Learn more about tracked responses and action names](https://customer.io/docs/api/app/)."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "The in-app message recipient clicked/tapped a component in a message with **Track Clicks** enabled. The *Track Clicks* setting is enabled by default for in-app messages. The payload includes a `tracked_response` key containing the *Action Name* of the component the person clicked/tapped. [Learn more about tracked responses and action names](https://customer.io/docs/api/app/)."
}
}
}
],
"title": "clicked"
}
in_app_converted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"recipient": {
"type": "string",
"description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"converted"
],
"type": "string",
"description": "A person matched a conversion goal attributed to an in-app notification."
}
}
}
],
"title": "converted"
}
in_app_drafted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "An in-app message draft was created."
}
}
}
],
"title": "drafted"
}
in_app_event
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "An in-app message draft was created."
}
}
}
],
"title": "drafted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "An in-app message failed to send, but will be retried."
}
}
}
],
"title": "attempted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"content": {
"type": "string",
"description": "The body of your message. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipient": {
"type": "string",
"description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "An in-app message was sent from Customer.io. Because in-app messages are only delivered when a person's app is open, there may be a significant delay between when a message is sent and when it's \"opened\". If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"opened"
],
"type": "string",
"description": "A device opened an in-app message. Because messages appear automatically when a person opens your app (to the right page if using page rules), \"opened\" is essentially an \"impression\"—a person saw your message."
}
}
}
],
"title": "opened"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"link_id",
"href"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipient": {
"type": "string",
"description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
},
"tracked_response": {
"type": "string",
"description": "The *Action Name* of the action a person clicked/tapped in the message. [Learn more about tracked responses and action names](https://customer.io/docs/api/app/)."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "The in-app message recipient clicked/tapped a component in a message with **Track Clicks** enabled. The *Track Clicks* setting is enabled by default for in-app messages. The payload includes a `tracked_response` key containing the *Action Name* of the component the person clicked/tapped. [Learn more about tracked responses and action names](https://customer.io/docs/api/app/)."
}
}
}
],
"title": "clicked"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"recipient": {
"type": "string",
"description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"converted"
],
"type": "string",
"description": "A person matched a conversion goal attributed to an in-app notification."
}
}
}
],
"title": "converted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "An in-app message failed to send."
}
}
}
],
"title": "failed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "undeliverable"
}
],
"title": "In-App Messages",
"description": "Events pertaining to in-app messages.",
"discriminator": {
"mapping": {
"sent": "#/components/schemas/in_app_sent",
"failed": "#/components/schemas/in_app_failed",
"opened": "#/components/schemas/in_app_opened",
"clicked": "#/components/schemas/in_app_clicked",
"drafted": "#/components/schemas/in_app_drafted",
"attempted": "#/components/schemas/in_app_attempted",
"converted": "#/components/schemas/in_app_converted",
"undeliverable": "#/components/schemas/in_app_undeliverable"
},
"propertyName": "metric"
}
}
in_app_event_common
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
}
in_app_failed
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "An in-app message failed to send."
}
}
}
],
"title": "failed"
}
in_app_opened
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"opened"
],
"type": "string",
"description": "A device opened an in-app message. Because messages appear automatically when a person opens your app (to the right page if using page rules), \"opened\" is essentially an \"impression\"—a person saw your message."
}
}
}
],
"title": "opened"
}
in_app_sent
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"content": {
"type": "string",
"description": "The body of your message. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipient": {
"type": "string",
"description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "An in-app message was sent from Customer.io. Because in-app messages are only delivered when a person's app is open, there may be a significant delay between when a message is sent and when it's \"opened\". If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
}
in_app_undeliverable
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "undeliverable"
}
iosFcmAndApns
{
"oneOf": [
{
"type": "object",
"title": "FCM",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"required": [
"apns"
],
"properties": {
"apns": {
"type": "object",
"required": [
"payload"
],
"properties": {
"headers": {
"type": "object",
"description": "Headers defined by [Apple's payload reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) that you want to pass through FCM."
},
"payload": {
"type": "object",
"properties": {
"CIO": {
"type": "object",
"required": [
"push"
],
"properties": {
"push": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "A push payload for the iOS SDK."
}
},
"description": "Contains properties interpreted by the Customer.io iOS SDK."
},
"aps": {
"type": "object",
"properties": {
"alert": {
"oneOf": [
{
"type": "string",
"title": "Simple alert",
"description": "A simple alert message."
},
{
"type": "object",
"title": "Complex alert",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
},
"loc-key": {
"type": "string",
"description": "The key for a localized message string in your app’s Localizable.strings file."
},
"loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
},
"subtitle": {
"type": "string",
"description": "Additional information that explains the purpose of the notification."
},
"launch-image": {
"type": "string",
"description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
},
"title-loc-key": {
"type": "string",
"description": "The key for a localized title string in your app’s Localizable.strings files."
},
"title-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
},
"subtitle-loc-key": {
"type": "string",
"description": "The key for a localized subtitle string in your app’s Localizable.strings file."
},
"subtitle-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
}
}
}
]
},
"badge": {
"type": "integer",
"description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
},
"sound": {
"oneOf": [
{
"type": "string",
"title": "Regular alert",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
},
{
"type": "object",
"title": "Critical alert",
"properties": {
"name": {
"type": "string",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
},
"volume": {
"type": "number",
"description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
},
"critical": {
"type": "integer",
"description": "1 indicates critical. 0 is not critical."
}
}
}
]
},
"category": {
"type": "string",
"description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
},
"thread-id": {
"type": "string",
"description": "An identifier to group related notifications."
},
"mutable-content": {
"type": "integer",
"description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
},
"relevance-score": {
"type": "number",
"description": "A number between 0 and 1. The highest score is considered the \"most relevant\" and is featured in the notification summary."
},
"content-available": {
"type": "integer",
"description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
},
"target-content-id": {
"type": "string",
"description": "The identifier of the window brought forward."
},
"interruption-level": {
"enum": [
"passive",
"active",
"time-sensitive",
"critical"
],
"type": "string",
"description": "Indicates the importance and delivery timing of a notification."
}
},
"description": "A push payload intended for an iOS device."
}
},
"description": "Contains a push payload.",
"additionalProperties": {
"description": "Additional properties that you've set up your app to interpret outside of the Customer.io SDK.",
"x-additionalPropertiesName": "Custom key-value pairs"
}
}
},
"description": "Defines a payload for iOS devices sent through Firebase Cloud Messaging (FCM)."
}
},
"description": "The base object for all FCM payloads."
}
}
},
{
"type": "object",
"title": "APNS",
"properties": {
"CIO": {
"type": "object",
"required": [
"push"
],
"properties": {
"push": {
"type": "object",
"properties": {
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
}
},
"description": "Describes push notification options supported by the CIO SDK."
}
},
"description": "Contains options supported by the Customer.io SDK."
},
"aps": {
"type": "object",
"properties": {
"alert": {
"oneOf": [
{
"type": "string",
"title": "Simple alert",
"description": "A simple alert message."
},
{
"type": "object",
"title": "Complex alert",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
},
"loc-key": {
"type": "string",
"description": "The key for a localized message string in your app’s Localizable.strings file."
},
"loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
},
"subtitle": {
"type": "string",
"description": "Additional information that explains the purpose of the notification."
},
"launch-image": {
"type": "string",
"description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
},
"title-loc-key": {
"type": "string",
"description": "The key for a localized title string in your app’s Localizable.strings files."
},
"title-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
},
"subtitle-loc-key": {
"type": "string",
"description": "The key for a localized subtitle string in your app’s Localizable.strings file."
},
"subtitle-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
}
}
}
]
},
"badge": {
"type": "integer",
"description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
},
"sound": {
"oneOf": [
{
"type": "string",
"title": "Regular alert",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
},
{
"type": "object",
"title": "Critical alert",
"properties": {
"name": {
"type": "string",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
},
"volume": {
"type": "number",
"description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
},
"critical": {
"type": "integer",
"description": "1 indicates critical. 0 is not critical."
}
}
}
]
},
"category": {
"type": "string",
"description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
},
"thread-id": {
"type": "string",
"description": "An identifier to group related notifications."
},
"mutable-content": {
"type": "integer",
"description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
},
"relevance-score": {
"type": "number",
"description": "A number between 0 and 1. The highest score is considered the \"most relevant\" and is featured in the notification summary."
},
"content-available": {
"type": "integer",
"description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
},
"target-content-id": {
"type": "string",
"description": "The identifier of the window brought forward."
},
"interruption-level": {
"enum": [
"passive",
"active",
"time-sensitive",
"critical"
],
"type": "string",
"description": "Indicates the importance and delivery timing of a notification."
}
},
"description": "A push payload intended for an iOS device."
}
}
}
],
"description": "Your payload changes depending on whether you send to iOS devices through Google's Firebase Cloud Messaging (FCM) or Apple's Push Notification service (APNs)."
}
iosSharedOptions
{
"type": "object",
"properties": {
"alert": {
"oneOf": [
{
"type": "string",
"title": "Simple alert",
"description": "A simple alert message."
},
{
"type": "object",
"title": "Complex alert",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
},
"loc-key": {
"type": "string",
"description": "The key for a localized message string in your app’s Localizable.strings file."
},
"loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
},
"subtitle": {
"type": "string",
"description": "Additional information that explains the purpose of the notification."
},
"launch-image": {
"type": "string",
"description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
},
"title-loc-key": {
"type": "string",
"description": "The key for a localized title string in your app’s Localizable.strings files."
},
"title-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
},
"subtitle-loc-key": {
"type": "string",
"description": "The key for a localized subtitle string in your app’s Localizable.strings file."
},
"subtitle-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
}
}
}
]
},
"badge": {
"type": "integer",
"description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
},
"sound": {
"oneOf": [
{
"type": "string",
"title": "Regular alert",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
},
{
"type": "object",
"title": "Critical alert",
"properties": {
"name": {
"type": "string",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
},
"volume": {
"type": "number",
"description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
},
"critical": {
"type": "integer",
"description": "1 indicates critical. 0 is not critical."
}
}
}
]
},
"category": {
"type": "string",
"description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
},
"thread-id": {
"type": "string",
"description": "An identifier to group related notifications."
},
"mutable-content": {
"type": "integer",
"description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
},
"relevance-score": {
"type": "number",
"description": "A number between 0 and 1. The highest score is considered the \"most relevant\" and is featured in the notification summary."
},
"content-available": {
"type": "integer",
"description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
},
"target-content-id": {
"type": "string",
"description": "The identifier of the window brought forward."
},
"interruption-level": {
"enum": [
"passive",
"active",
"time-sensitive",
"critical"
],
"type": "string",
"description": "Indicates the importance and delivery timing of a notification."
}
},
"description": "A push payload intended for an iOS device."
}
journey_id
{
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
}
language
{
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
}
linkMetrics
{
"type": "object",
"properties": {
"link": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1234,
"description": "The ID of the link."
},
"href": {
"type": "string",
"example": "https://customer.io/docs",
"description": "The link destination—a URL, mailto, etc."
}
}
},
"metric": {
"type": "object",
"properties": {
"series": {
"type": "object",
"properties": {
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"example": [
1,
3,
5,
7
],
"description": "An array of results from oldest to newest, where each result indicates a period."
}
}
}
},
"description": "Contains metrics for the link."
}
}
}
link_id
{
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
}
messageMetrics
{
"type": "object",
"properties": {
"sent": {
"type": "integer",
"description": "The timestamp when the message was `sent`."
},
"failed": {
"type": "integer",
"description": "The timestamp when the message `failed`."
},
"opened": {
"type": "integer",
"description": "The timestamp when the message was `opened`."
},
"bounced": {
"type": "integer",
"description": "The timestamp when the message `bounced`."
},
"clicked": {
"type": "integer",
"description": "The timestamp when the message was `clicked`."
},
"created": {
"type": "integer",
"description": "The timestamp when the message was `created`."
},
"drafted": {
"type": "integer",
"description": "The timestamp when the message was `drafted`."
},
"dropped": {
"type": "integer",
"description": "The timestamp when the message was `dropped`."
},
"spammed": {
"type": "integer",
"description": "The timestamp when the message was marked as spam."
},
"converted": {
"type": "integer",
"description": "The timestamp when the message was `converted`."
},
"delivered": {
"type": "integer",
"description": "The timestamp when the message was `delivered`."
},
"unsubscribed": {
"type": "integer",
"description": "The timestamp when a person unsubscribed based on this message."
},
"undeliverable": {
"type": "integer",
"description": "The timestamp when the message became `undeliverable`."
}
},
"description": "Metrics for an individual instance of a message; each item in the object represents the timestamp when a message achieved a particular metric. This object only contains metrics that have been recorded."
}
messageObject
{
"type": "object",
"example": {
"id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
"type": "email",
"created": 1619137767,
"metrics": {
"sent": 1619137768,
"delivered": 1619137768
},
"subject": "Did you get that thing I sent you?",
"action_id": 215,
"forgotten": false,
"recipient": "person@example.com",
"content_id": null,
"campaign_id": 23,
"customer_id": null,
"broadcast_id": null,
"newsletter_id": null,
"deduplicate_id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=:1619137768",
"failure_message": null,
"msg_template_id": 43,
"parent_action_id": null,
"trigger_event_id": null
},
"properties": {
"id": {
"type": "string",
"example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
"readOnly": true,
"description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"metrics": {
"type": "object",
"properties": {
"sent": {
"type": "integer",
"description": "The timestamp when the message was `sent`."
},
"failed": {
"type": "integer",
"description": "The timestamp when the message `failed`."
},
"opened": {
"type": "integer",
"description": "The timestamp when the message was `opened`."
},
"bounced": {
"type": "integer",
"description": "The timestamp when the message `bounced`."
},
"clicked": {
"type": "integer",
"description": "The timestamp when the message was `clicked`."
},
"created": {
"type": "integer",
"description": "The timestamp when the message was `created`."
},
"drafted": {
"type": "integer",
"description": "The timestamp when the message was `drafted`."
},
"dropped": {
"type": "integer",
"description": "The timestamp when the message was `dropped`."
},
"spammed": {
"type": "integer",
"description": "The timestamp when the message was marked as spam."
},
"converted": {
"type": "integer",
"description": "The timestamp when the message was `converted`."
},
"delivered": {
"type": "integer",
"description": "The timestamp when the message was `delivered`."
},
"unsubscribed": {
"type": "integer",
"description": "The timestamp when a person unsubscribed based on this message."
},
"undeliverable": {
"type": "integer",
"description": "The timestamp when the message became `undeliverable`."
}
},
"description": "Metrics for an individual instance of a message; each item in the object represents the timestamp when a message achieved a particular metric. This object only contains metrics that have been recorded."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"action_id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"forgotten": {
"type": "boolean",
"description": "If true message contents are not retained by Customer.io."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
},
"content_id": {
"type": "integer",
"example": 1,
"nullable": true,
"readOnly": true,
"description": "The identifier for a newsletter variant."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"failure_message": {
"type": "string",
"nullable": true,
"description": "Explains why a message failed, if applicable."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
},
"message_template_id": {
"type": "integer",
"readOnly": true,
"deprecated": true,
"description": "The identifier of the message template used to create a message."
},
"customer_identifiers": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"properties": {
"id": {
"type": "string",
"example": 2,
"nullable": true,
"description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
},
"email": {
"type": "string",
"format": "email",
"example": "test@example.com",
"nullable": true,
"description": "A person's email address, if set."
},
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
},
"description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
}
},
"description": "Describes an individual message delivery. The object contains keys for all possible parents of the message (`newsletter_id`, `broadcast_id`, etc) but only the parents of the delivery are populated. Other parent IDs are null."
}
messageTotalMetrics
{
"type": "object",
"properties": {
"sent": {
"type": "integer",
"description": "The number of `sent` messages"
},
"failed": {
"type": "integer",
"description": "The number of `failed` messages."
},
"opened": {
"type": "integer",
"description": "The number of `opened` messages"
},
"bounced": {
"type": "integer",
"description": "The number of `bounced` messages."
},
"clicked": {
"type": "integer",
"description": "The number of `clicked` messages."
},
"created": {
"type": "integer",
"description": "The number of `created` messages."
},
"drafted": {
"type": "integer",
"description": "The number of `drafted` messages."
},
"dropped": {
"type": "integer",
"description": "The number of `dropped` messages."
},
"spammed": {
"type": "integer",
"description": "The number of messages marked as spam."
},
"converted": {
"type": "integer",
"description": "The number of `converted` messages."
},
"delivered": {
"type": "integer",
"description": "The number of `delivered` messages."
},
"unsubscribed": {
"type": "integer",
"description": "The number of unsubscribes attributed to messages."
},
"undeliverable": {
"type": "integer",
"description": "The number of `undeliverable` messages."
}
},
"description": "Total metrics over the lifespan of the requested item."
}
messageType
{
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
}
message_id
{
"type": "string",
"example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
"readOnly": true,
"description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
}
message_template_id
{
"type": "integer",
"readOnly": true,
"deprecated": true,
"description": "The identifier of the message template used to create a message."
}
metric
{
"enum": [
"created",
"attempted",
"sent",
"delivered",
"opened",
"clicked",
"converted",
"bounced",
"spammed",
"unsubscribed",
"dropped",
"failed",
"undeliverable"
],
"type": "string",
"description": "Determines the metric(s) you want to return."
}
msg_template_ids
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The identifier for the template."
},
"type": {
"enum": [
"email",
"webhook",
"push",
"sms",
"slack"
],
"type": "string",
"description": "The type of template."
}
}
},
"deprecated": true,
"description": "Indicates the message template(s) used in this broadcast."
}
newsletterObject
{
"type": "object",
"example": {
"id": 128275,
"name": "Example Newsletter",
"tags": [
"Example Tag"
],
"type": "email",
"created": 1481653929,
"sent_at": null,
"updated": 1484870424,
"content_ids": [
45,
90
],
"deduplicate_id": "128275:1484870424",
"recipient_segment_ids": [
10
],
"subscription_topic_id": 1
},
"properties": {
"id": {
"type": "integer",
"example": 10,
"description": "The identifier for a newsletter."
},
"name": {
"type": "string",
"readOnly": true,
"description": "The name of the newsletter."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of tags you set on this newsletter."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push",
"in_app"
],
"type": "string",
"description": "The type of newsletter—`email`, `twilio`, etc."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"sent_at": {
"type": "integer",
"format": "unix timestamp",
"description": "The last time the newsletter was sent."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"content_ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of languages in a multi-language newsletter and/or A/B test variants for this message. [Look up a newsletter variant](https://customer.io/docs/api/app/) to get more information about an individual content ID."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"recipient_segment_ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of segments used in a newsletter's recipient filter, returned if newsletter recipients were filtered by one or more segments."
},
"subscription_topic_id": {
"type": "integer",
"example": 1,
"description": "The identifier of a subscription topic. Remember, subscription topics are assigned an incrementing number, starting at 1."
}
}
}
newsletter_id
{
"type": "integer",
"example": 10,
"description": "The identifier for a newsletter."
}
next
{
"type": "string",
"description": "Indicates the next page of results. Add `?start=<next_value>` to the request to get the next page of results."
}
notAudienceFilter
{
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"title": "not",
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
}
not_nullable_customer_id
{
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
not_nullable_email_address
{
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
objectFilter
{
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *any* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "object attribute",
"properties": {
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "object attribute",
"properties": {
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "not",
"properties": {
"not": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *all* conditions."
},
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
},
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
}
},
"description": null
},
{
"type": "object",
"title": "object attribute",
"properties": {
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
},
"description": "A simple filter to find objects matching an attribute condition."
}
],
"title": "Object Filter",
"description": "When filtering for objects, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `object_attribute` represents the individual conditions you can filter a group of people for.\n\nThe top level of this object can only contain a single property, but you can nest `and` and `or` properties to produce complex filters.\n"
}
objectFilter-2
{
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
objectFilterAnd
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *any* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "object attribute",
"properties": {
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
},
"description": "Match *all* conditions to return results."
}
}
}
objectFilterNot
{
"type": "object",
"title": "not",
"properties": {
"not": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *all* conditions."
},
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
},
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
}
},
"description": null
}
objectFilterOr
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "object attribute",
"properties": {
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
},
"description": "Match *any* condition to return results."
}
}
}
object_add_relationships
{
"allOf": [
{
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The operation modifies a single object—non person data."
}
}
}
]
},
{
"type": "object",
"required": [
"action",
"cio_relationships"
],
"properties": {
"action": {
"enum": [
"add_relationships"
],
"type": "string",
"description": "This operation associates an object with one or more people."
},
"cio_relationships": {
"type": "array",
"items": {
"type": "object",
"example": {
"identifiers": {
"id": "42X"
},
"relationship_attributes": {
"role": "admin",
"date_created": 1702480414
}
},
"properties": {
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
]
},
"relationship_attributes": {
"type": "object",
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
},
"description": "The people you want to associate with an object. Each object in the array represents a person."
}
}
}
],
"title": "add_relationships",
"description": "Add relationships between an object and one or more people."
}
object_attributes
{
"type": "object",
"description": "The data that belongs to the object. This is information you might want to associate with people later (through `cio_relationships`). Passing `null` or an empty string removes the attribute from the object."
}
object_common
{
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The operation modifies a single object—non person data."
}
}
}
]
}
object_delete
{
"allOf": [
{
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The operation modifies a single object—non person data."
}
}
}
]
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"delete"
],
"type": "string",
"description": "Indicates that the operation will `delete` the the item of the specified `type`."
}
}
}
],
"title": "delete",
"description": "Delete an object. This also removes relationships from people.\n"
}
object_delete_relationships
{
"allOf": [
{
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The operation modifies a single object—non person data."
}
}
}
]
},
{
"type": "object",
"required": [
"action",
"cio_relationships"
],
"properties": {
"action": {
"enum": [
"delete_relationships"
],
"type": "string",
"description": "This operation deletes an object relationship from one or more people."
},
"cio_relationships": {
"type": "array",
"items": {
"type": "object",
"example": {
"identifiers": {
"id": "42X"
},
"relationship_attributes": {
"role": "admin",
"date_created": 1702480414
}
},
"properties": {
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
]
},
"relationship_attributes": {
"type": "object",
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
},
"description": "The people you want to associate with an object. Each object in the array represents a person."
}
}
}
],
"title": "delete_relationships",
"description": "Delete relationships between an object and one or more people."
}
object_identifiers
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
}
object_identify
{
"type": "object",
"allOf": [
{
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The operation modifies a single object—non person data."
}
}
}
]
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"identify"
],
"type": "string",
"description": "Indicates that the operation will `identify` the the item of the specified `type`."
},
"attributes": {
"type": "object",
"description": "The data that belongs to the object. This is information you might want to associate with people later (through `cio_relationships`). Passing `null` or an empty string removes the attribute from the object."
},
"cio_relationships": {
"type": "array",
"items": {
"type": "object",
"example": {
"identifiers": {
"id": "42X"
},
"relationship_attributes": {
"role": "admin",
"date_created": 1702480414
}
},
"properties": {
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
]
},
"relationship_attributes": {
"type": "object",
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
},
"description": "The people you want to associate with an object. Each object in the array represents a person."
}
}
}
],
"title": "identify",
"description": "The `action` determines the type of operation you want to perform with an object. If `identifiers.object_id` does not exist, we'll create a new object; if it exists, we'll update the object accordingly.\n"
}
object_identify_anonymous
{
"allOf": [
{
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The operation modifies a single object—non person data."
}
}
}
]
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"identify_anonymous"
],
"type": "string",
"description": "Indicates that the operation will `identify` the item of the specified `type` and relate it to an `anonymous_id`."
},
"attributes": {
"type": "object",
"description": "The data that belongs to the object. This is information you might want to associate with people later (through `cio_relationships`). Passing `null` or an empty string removes the attribute from the object."
},
"cio_relationships": {
"type": "array",
"items": {
"type": "object",
"properties": {
"identifiers": {
"type": "object",
"properties": {
"anonymous_id": {
"type": "string",
"description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
}
}
},
"relationship_attributes": {
"type": "object",
"description": "Coming October 2023 - The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship."
}
}
},
"description": "The anonymous people you want to associate with an object. Each object in the array contains an `anonymous_id` representing a person you haven't yet identified by `id` or `email`."
}
}
}
],
"title": "identify_anonymous",
"description": "The `identify_anonymous` action lets you relate an object to a person who hasn't yet identified themselves by anonymous_id. When you identify the person, their anonymous relationship will carry over to the identified profile."
}
object_operations
{
"oneOf": [
{
"type": "object",
"allOf": [
{
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The operation modifies a single object—non person data."
}
}
}
]
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"identify"
],
"type": "string",
"description": "Indicates that the operation will `identify` the the item of the specified `type`."
},
"attributes": {
"type": "object",
"description": "The data that belongs to the object. This is information you might want to associate with people later (through `cio_relationships`). Passing `null` or an empty string removes the attribute from the object."
},
"cio_relationships": {
"type": "array",
"items": {
"type": "object",
"example": {
"identifiers": {
"id": "42"
},
"relationship_attributes": {
"role": "admin",
"date_created": 1702480414
}
},
"properties": {
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
]
},
"relationship_attributes": {
"type": "object",
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
},
"description": "The people you want to associate with an object. Each object in the array represents a person."
}
}
}
],
"title": "identify",
"description": "The `action` determines the type of operation you want to perform with an object. If `identifiers.object_id` does not exist, we'll create a new object; if it exists, we'll update the object accordingly.\n"
},
{
"allOf": [
{
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The operation modifies a single object—non person data."
}
}
}
]
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"identify_anonymous"
],
"type": "string",
"description": "Indicates that the operation will `identify` the item of the specified `type` and relate it to an `anonymous_id`."
},
"attributes": {
"type": "object",
"description": "The data that belongs to the object. This is information you might want to associate with people later (through `cio_relationships`). Passing `null` or an empty string removes the attribute from the object."
},
"cio_relationships": {
"type": "array",
"items": {
"type": "object",
"properties": {
"identifiers": {
"type": "object",
"properties": {
"anonymous_id": {
"type": "string",
"description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
}
}
},
"relationship_attributes": {
"type": "object",
"description": "Coming October 2023 - The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship."
}
}
},
"description": "The anonymous people you want to associate with an object. Each object in the array contains an `anonymous_id` representing a person you haven't yet identified by `id` or `email`."
}
}
}
],
"title": "identify_anonymous",
"description": "The `identify_anonymous` action lets you relate an object to a person who hasn't yet identified themselves by anonymous_id. When you identify the person, their anonymous relationship will carry over to the identified profile."
},
{
"allOf": [
{
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The operation modifies a single object—non person data."
}
}
}
]
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"delete"
],
"type": "string",
"description": "Indicates that the operation will `delete` the the item of the specified `type`."
}
}
}
],
"title": "delete",
"description": "Delete an object. This also removes relationships from people.\n"
},
{
"allOf": [
{
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The operation modifies a single object—non person data."
}
}
}
]
},
{
"type": "object",
"required": [
"action",
"cio_relationships"
],
"properties": {
"action": {
"enum": [
"add_relationships"
],
"type": "string",
"description": "This operation associates an object with one or more people."
},
"cio_relationships": {
"type": "array",
"items": {
"type": "object",
"example": {
"identifiers": {
"id": "42X"
},
"relationship_attributes": {
"role": "admin",
"date_created": 1702480414
}
},
"properties": {
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
]
},
"relationship_attributes": {
"type": "object",
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
},
"description": "The people you want to associate with an object. Each object in the array represents a person."
}
}
}
],
"title": "add_relationships",
"description": "Add relationships between an object and one or more people."
},
{
"allOf": [
{
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The operation modifies a single object—non person data."
}
}
}
]
},
{
"type": "object",
"required": [
"action",
"cio_relationships"
],
"properties": {
"action": {
"enum": [
"delete_relationships"
],
"type": "string",
"description": "This operation deletes an object relationship from one or more people."
},
"cio_relationships": {
"type": "array",
"items": {
"type": "object",
"example": {
"identifiers": {
"id": "42X"
},
"relationship_attributes": {
"role": "admin",
"date_created": 1702480414
}
},
"properties": {
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
]
},
"relationship_attributes": {
"type": "object",
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
},
"description": "The people you want to associate with an object. Each object in the array represents a person."
}
}
}
],
"title": "delete_relationships",
"description": "Delete relationships between an object and one or more people."
}
],
"title": "Object",
"discriminator": {
"mapping": {
"delete": "#/components/schemas/object_delete",
"identify": "#/components/schemas/object_identify",
"add_relationships": "#/components/schemas/object_add_relationships",
"identify_anonymous": "#/components/schemas/object_identify_anonymous",
"delete_relationships": "#/components/schemas/object_delete_relationships"
},
"propertyName": "action"
}
}
object_relationships
{
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"properties": {
"relationship_attributes": {
"type": "object",
"example": {
"role": "admin"
},
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
}
]
},
"description": "Each object in the array represents a relationship you want to add to, or remove from, a person."
}
object_type_id
{
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
objectattributeFilter
{
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
orAudienceFilter
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *any* condition to return results."
}
}
}
parent_action_id
{
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
periodMessageMetrics
{
"type": "object",
"properties": {
"sent": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of sent messages."
},
"failed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `failed` messages."
},
"opened": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `opened` messages."
},
"bounced": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `bounced` messages."
},
"clicked": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `clicked` messages."
},
"created": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `created` messages."
},
"drafted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `drafted` messages."
},
"spammed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of spam complaints."
},
"deferred": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `deferred` messages."
},
"attempted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `attempted` messages."
},
"converted": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `converted` messages."
},
"delivered": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `delivered` messages."
},
"suppressed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `suppressed` messages."
},
"unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of unsubscribes attributed to the campaign or message."
},
"undeliverable": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of `undeliverable` messages."
},
"topic_unsubscribed": {
"type": "array",
"items": {
"type": "integer"
},
"description": "The number of topic unsubscribes in a given period."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
}
periodWebhookMetrics
{
"type": "object",
"properties": {
"2xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "2xx responses by period, representative of webhook performance."
},
"3xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "3xx responses by period, representative of webhook performance."
},
"4xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "4xx responses by period, representative of webhook performance."
},
"5xx": {
"type": "array",
"items": {
"type": "integer"
},
"description": "5xx responses by period, representative of webhook performance."
}
},
"description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
}
person_add_device
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"device"
],
"properties": {
"action": {
"enum": [
"add_device"
],
"type": "string",
"description": "Add a mobile device to a person's profile."
},
"device": {
"allOf": [
{
"type": "object",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"description": "The device token."
}
}
},
{
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"enum": [
"ios",
"android"
],
"type": "string",
"description": "The device/messaging platform."
},
"last_used": {
"type": "integer",
"format": "unix timestamp",
"description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
},
"attributes": {
"type": "object",
"properties": {
"device_os": {
"type": "string",
"description": "The operating system, including the version, on the device."
},
"app_version": {
"type": "string",
"description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
},
"_last_status": {
"enum": [
"",
"bounced",
"sent",
"suppressed"
],
"type": "string",
"readOnly": true,
"description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
},
"device_model": {
"type": "string",
"description": "The model of the device a person uses."
},
"push_enabled": {
"enum": [
"true",
"false"
],
"type": "string",
"description": "If `\"true\"`, the device is opted-in and can receive push notifications."
},
"device_locale": {
"type": "string",
"description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
},
"cio_sdk_version": {
"type": "string",
"description": "The version of the Customer.io SDK in the app."
}
},
"description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
"additionalProperties": {
"type": "string",
"description": "Custom properties that you want to associate with the device.",
"x-additionalPropertiesName": "Custom Device Attributes"
}
}
},
"description": "Device information common to the v1 and v2 APIs."
}
],
"description": "The properties representing an individual device. [Our SDK's](https://customer.io/docs/api/app/) gather all the properties defined below automatically, unless you disable the `autoTrackDeviceAttributes` setting. You can reference the properties outside the `attributes` object in segments."
}
}
}
],
"title": "add_device",
"description": "Assign devices to a person."
}
person_add_relationships
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"cio_relationships"
],
"properties": {
"action": {
"enum": [
"add_relationships"
],
"type": "string",
"description": "This operation associates a person with one or more objects."
},
"cio_relationships": {
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"properties": {
"relationship_attributes": {
"type": "object",
"example": {
"role": "admin"
},
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
}
]
},
"description": "Each object in the array represents a relationship you want to add to, or remove from, a person."
}
}
}
],
"title": "add_relationships",
"description": "Associate multiple objects with a person."
}
person_attributes
{
"type": "object",
"properties": {
"cio_subscription_preferences": {
"type": "object",
"example": {
"topic_1": true,
"topic_2": false,
"topic_3": true
},
"properties": {
"topics": {
"type": "object",
"description": "Contains active topics in your workspace, named `topic_<id>`.",
"additionalProperties": {
"type": "boolean",
"description": "Each property is a boolean named `topic_<id>`. Topic `id` values begin at `1` and increment for each new topic. You can find your topic ids in [Workspace Settings](https://fly.customer.io/workspaces/last/settings/subscription_center/topics) or by querying our [App API](https://customer.io/docs/api/app/#operation/getTopics). For each boolean, `true` means that a person is subscribed to the topic; false means they are unsubscribed. An empty or missing value reverts to the default preference for the topic (opt-in or opt-out).",
"x-additionalPropertiesName": "topic_<id>"
}
}
},
"description": "Stores your audience's subscription preferences if you enable our [subscription center](https://customer.io/docs/api/app/) feature. These items are set automatically when people use the unsubscribe link in your messages, but you can set preferences outside the subscription flow. To update select topic preferences while preserving those set for other topics, use JSON dot notation `\"cio_subscription_preferences.topics.topic_<topic ID>\":<boolean>`."
}
},
"description": "Attributes that you want to add or update for this person."
}
person_cio_subscription_preferences_changed
{
"type": "object",
"title": "changed subscription preferences",
"required": [
"metric",
"event_id",
"data",
"timestamp"
],
"properties": {
"data": {
"allOf": [
{
"type": "object",
"required": [
"identifiers",
"customer_id",
"email_address",
"content"
],
"properties": {
"content": {
"type": "string",
"example": "{\"topics\":{\"topic_1\":true}}",
"description": "Contains the subscription preferences that a person changed in a stringified object format. The `topic_1` key refers to a topic with an ID of `1`; you can get more information about each topic from our [App API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"email_address": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
}
},
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
}
]
},
"metric": {
"enum": [
"cio_subscription_preferences_changed"
],
"type": "string",
"description": "The event we're reporting to your webhook endpoint. In this case, a person changed their subscription preferences."
},
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"delivery_type": {
"enum": [
"email",
"sms",
"push",
"in_app",
"slack",
"webhook"
],
"type": "string",
"example": "email",
"description": "The type of delivery that resulted in a change to preferences."
}
},
"description": "A person changed their subscription preferences through our subscription center or you changed their `cio_subscription_preferences` attribute values.\n\nSome fields in the `data` object change based on whether the message that resulted in the change originated from a broadcast, campaign, or newsletter.\n"
}
person_cio_subscription_preferences_common
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
}
person_common
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
}
person_delete
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"delete"
],
"type": "string",
"description": "Indicates that the operation will `delete` the the item of the specified `type`."
}
}
}
],
"title": "delete",
"description": "Delete a person from your workspace."
}
person_delete_device
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"device"
],
"properties": {
"action": {
"enum": [
"delete_device"
],
"type": "string",
"description": "Delete a device from a person's profile."
},
"device": {
"type": "object",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"description": "The token of the device you want to remove."
}
},
"description": "The device you want to remove."
}
}
}
],
"title": "delete_device",
"description": "Delete devices that belong to a person."
}
person_delete_relationships
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"cio_relationships"
],
"properties": {
"action": {
"enum": [
"delete_relationships"
],
"type": "string",
"description": "This operation deletes an object relationship from one or more people."
},
"cio_relationships": {
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"properties": {
"relationship_attributes": {
"type": "object",
"example": {
"role": "admin"
},
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
}
]
},
"description": "Each object in the array represents a relationship you want to add to, or remove from, a person."
}
}
}
],
"title": "delete_relationships",
"description": "Remove multiple object relationships from a person."
}
person_event
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "ULID",
"description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
},
"name": {
"type": "string",
"description": "The name of the event. This is how you'll find your event in Customer.io or select it when using events as campaign triggers."
},
"action": {
"enum": [
"event"
],
"type": "string",
"description": "A custom event attributed to the specified person."
},
"timestamp": {
"type": "integer",
"description": "The Unix timestamp when the event happened."
},
"attributes": {
"type": "object",
"properties": {
"reply_to": {
"type": "string",
"format": "email",
"description": "The address you want to receive replies to, overriding the `reply to` field for emails triggered by the event."
},
"recipient": {
"type": "string",
"format": "email",
"description": "The email address of the person associated with the event, overriding the `to` field in emails triggered by the event."
},
"from_address": {
"type": "string",
"format": "email",
"description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
}
},
"description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.\n",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "liquid merge data"
}
}
}
}
],
"description": "A custom event attributed to a person. You can use events to trigger campaigns, or reference event information using liquid in your messages."
}
person_merge
{
"type": "object",
"required": [
"type",
"primary",
"secondary",
"action"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"action": {
"enum": [
"merge"
],
"type": "string",
"description": "Merge two people. You'll merge the `secondary` person into the `primary`. The primary profile remains after the merge and the secondary is deleted. This operation is _not_ reversible. See our page on [merging duplicate people](https://customer.io/docs/api/app/) for more information.\n"
},
"primary": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person that you want to remain after the merge, identified by one of `id`, `email`, or `cio_id`. This person receives information from the secondary person in the merge."
},
"secondary": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person that you want to delete after the merge, identified by one of `id`, `email`, or `cio_id`. This person's information is merged into the primary person's profile and then it is deleted."
}
},
"description": "Merge two people. You'll merge the `secondary` person into the `primary`. The primary profile remains after the merge and the secondary is deleted. This operation is _not_ reversible. See our page on [merging duplicate people](https://customer.io/docs/api/app/) for more information.\n"
}
person_operations
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"identify"
],
"type": "string",
"description": "Indicates that the operation will `identify` the the item of the specified `type`."
},
"attributes": {
"type": "object",
"properties": {
"cio_subscription_preferences": {
"type": "object",
"example": {
"topic_1": true,
"topic_2": false,
"topic_3": true
},
"properties": {
"topics": {
"type": "object",
"description": "Contains active topics in your workspace, named `topic_<id>`.",
"additionalProperties": {
"type": "boolean",
"description": "Each property is a boolean named `topic_<id>`. Topic `id` values begin at `1` and increment for each new topic. You can find your topic ids in [Workspace Settings](https://fly.customer.io/workspaces/last/settings/subscription_center/topics) or by querying our [App API](https://customer.io/docs/api/app/#operation/getTopics). For each boolean, `true` means that a person is subscribed to the topic; false means they are unsubscribed. An empty or missing value reverts to the default preference for the topic (opt-in or opt-out).",
"x-additionalPropertiesName": "topic_<id>"
}
}
},
"description": "Stores your audience's subscription preferences if you enable our [subscription center](https://customer.io/docs/api/app/) feature. These items are set automatically when people use the unsubscribe link in your messages, but you can set preferences outside the subscription flow. To update select topic preferences while preserving those set for other topics, use JSON dot notation `\"cio_subscription_preferences.topics.topic_<topic ID>\":<boolean>`."
}
},
"description": "Attributes that you want to add or update for this person."
},
"cio_relationships": {
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"properties": {
"relationship_attributes": {
"type": "object",
"example": {
"role": "admin"
},
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
}
]
},
"description": "Each object in the array represents a relationship you want to add to, or remove from, a person."
}
}
}
],
"title": "identify",
"description": "Add or update a person."
},
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"delete"
],
"type": "string",
"description": "Indicates that the operation will `delete` the the item of the specified `type`."
}
}
}
],
"title": "delete",
"description": "Delete a person from your workspace."
},
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "ULID",
"description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
},
"name": {
"type": "string",
"description": "The name of the event. This is how you'll find your event in Customer.io or select it when using events as campaign triggers."
},
"action": {
"enum": [
"event"
],
"type": "string",
"description": "A custom event attributed to the specified person."
},
"timestamp": {
"type": "integer",
"description": "The Unix timestamp when the event happened."
},
"attributes": {
"type": "object",
"properties": {
"reply_to": {
"type": "string",
"format": "email",
"description": "The address you want to receive replies to, overriding the `reply to` field for emails triggered by the event."
},
"recipient": {
"type": "string",
"format": "email",
"description": "The email address of the person associated with the event, overriding the `to` field in emails triggered by the event."
},
"from_address": {
"type": "string",
"format": "email",
"description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
}
},
"description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.\n",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "liquid merge data"
}
}
}
}
],
"description": "A custom event attributed to a person. You can use events to trigger campaigns, or reference event information using liquid in your messages."
},
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "ULID",
"description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
},
"name": {
"type": "string",
"description": "The name of the screen a person visited. This is how you'll find and select screen view events in Customer.io."
},
"action": {
"enum": [
"screen"
],
"type": "string",
"description": "A mobile \"screenview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website."
},
"timestamp": {
"type": "integer",
"description": "The Unix timestamp when the event happened."
},
"attributes": {
"type": "object",
"description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "liquid merge data"
}
}
}
}
],
"description": "A mobile \"screenview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website."
},
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "ULID",
"description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
},
"name": {
"type": "string",
"description": "The name of the page or page path that a person visited. This is how you'll find and select page view events in Customer.io."
},
"action": {
"enum": [
"screen"
],
"type": "string",
"description": "A web \"pageview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website."
},
"timestamp": {
"type": "integer",
"description": "The Unix timestamp when the event happened."
},
"attributes": {
"type": "object",
"description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "liquid merge data"
}
}
}
}
],
"description": "A web \"pageview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website."
},
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"cio_relationships"
],
"properties": {
"action": {
"enum": [
"add_relationships"
],
"type": "string",
"description": "This operation associates a person with one or more objects."
},
"cio_relationships": {
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"properties": {
"relationship_attributes": {
"type": "object",
"example": {
"role": "admin"
},
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
}
]
},
"description": "Each object in the array represents a relationship you want to add to, or remove from, a person."
}
}
}
],
"title": "add_relationships",
"description": "Associate multiple objects with a person."
},
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"cio_relationships"
],
"properties": {
"action": {
"enum": [
"delete_relationships"
],
"type": "string",
"description": "This operation deletes an object relationship from one or more people."
},
"cio_relationships": {
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"properties": {
"relationship_attributes": {
"type": "object",
"example": {
"role": "admin"
},
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
}
]
},
"description": "Each object in the array represents a relationship you want to add to, or remove from, a person."
}
}
}
],
"title": "delete_relationships",
"description": "Remove multiple object relationships from a person."
},
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"device"
],
"properties": {
"action": {
"enum": [
"add_device"
],
"type": "string",
"description": "Add a mobile device to a person's profile."
},
"device": {
"allOf": [
{
"type": "object",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"description": "The device token."
}
}
},
{
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"enum": [
"ios",
"android"
],
"type": "string",
"description": "The device/messaging platform."
},
"last_used": {
"type": "integer",
"format": "unix timestamp",
"description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
},
"attributes": {
"type": "object",
"properties": {
"device_os": {
"type": "string",
"description": "The operating system, including the version, on the device."
},
"app_version": {
"type": "string",
"description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
},
"_last_status": {
"enum": [
"",
"bounced",
"sent",
"suppressed"
],
"type": "string",
"readOnly": true,
"description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
},
"device_model": {
"type": "string",
"description": "The model of the device a person uses."
},
"push_enabled": {
"enum": [
"true",
"false"
],
"type": "string",
"description": "If `\"true\"`, the device is opted-in and can receive push notifications."
},
"device_locale": {
"type": "string",
"description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
},
"cio_sdk_version": {
"type": "string",
"description": "The version of the Customer.io SDK in the app."
}
},
"description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
"additionalProperties": {
"type": "string",
"description": "Custom properties that you want to associate with the device.",
"x-additionalPropertiesName": "Custom Device Attributes"
}
}
},
"description": "Device information common to the v1 and v2 APIs."
}
],
"description": "The properties representing an individual device. [Our SDK's](https://customer.io/docs/api/app/) gather all the properties defined below automatically, unless you disable the `autoTrackDeviceAttributes` setting. You can reference the properties outside the `attributes` object in segments."
}
}
}
],
"title": "add_device",
"description": "Assign devices to a person."
},
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"device"
],
"properties": {
"action": {
"enum": [
"delete_device"
],
"type": "string",
"description": "Delete a device from a person's profile."
},
"device": {
"type": "object",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"description": "The token of the device you want to remove."
}
},
"description": "The device you want to remove."
}
}
}
],
"title": "delete_device",
"description": "Delete devices that belong to a person."
},
{
"type": "object",
"required": [
"type",
"primary",
"secondary",
"action"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"action": {
"enum": [
"merge"
],
"type": "string",
"description": "Merge two people. You'll merge the `secondary` person into the `primary`. The primary profile remains after the merge and the secondary is deleted. This operation is _not_ reversible. See our page on [merging duplicate people](https://customer.io/docs/api/app/) for more information.\n"
},
"primary": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person that you want to remain after the merge, identified by one of `id`, `email`, or `cio_id`. This person receives information from the secondary person in the merge."
},
"secondary": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person that you want to delete after the merge, identified by one of `id`, `email`, or `cio_id`. This person's information is merged into the primary person's profile and then it is deleted."
}
},
"description": "Merge two people. You'll merge the `secondary` person into the `primary`. The primary profile remains after the merge and the secondary is deleted. This operation is _not_ reversible. See our page on [merging duplicate people](https://customer.io/docs/api/app/) for more information.\n"
},
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"suppress"
],
"type": "string",
"description": "Suppress a person's identifier(s) in Customer.io, so that you can't message a person or add their identifiers back to your workspace. This is separate from suppressions performed by your email provider."
}
}
}
],
"title": "suppress",
"description": "Suppress a person's identifier(s) in Customer.io, so that you can't message a person or add their identifiers back to your workspace. This is separate from suppressions performed by your email provider."
},
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"unsuppress"
],
"type": "string",
"description": "Unsuppress a person's identifier(s) in Customer.io, so that you can message a person or add their identifiers back to your workspace. This does not unsuppress addresses that were previously suppressed by your email provider."
}
}
}
],
"title": "unsuppress",
"description": "Unsuppress a person's identifier(s) in Customer.io, so that you can message a person or add their identifiers back to your workspace. This does not unsuppress addresses that were previously suppressed by your email provider."
}
],
"title": "Person",
"discriminator": {
"mapping": {
"page": "#/components/schemas/person_page",
"event": "#/components/schemas/person_event",
"merge": "#/components/schemas/person_merge",
"delete": "#/components/schemas/person_delete",
"screen": "#/components/schemas/person_screen",
"identify": "#/components/schemas/identify_person",
"suppress": "#/components/schemas/person_suppress",
"add_device": "#/components/schemas/person_add_device",
"unsuppress": "#/components/schemas/person_unsuppress",
"delete_device": "#/components/schemas/person_delete_device",
"add_relationships": "#/components/schemas/person_add_relationships",
"delete_relationships": "#/components/schemas/person_delete_relationships"
},
"propertyName": "action"
}
}
person_page
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "ULID",
"description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
},
"name": {
"type": "string",
"description": "The name of the page or page path that a person visited. This is how you'll find and select page view events in Customer.io."
},
"action": {
"enum": [
"screen"
],
"type": "string",
"description": "A web \"pageview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website."
},
"timestamp": {
"type": "integer",
"description": "The Unix timestamp when the event happened."
},
"attributes": {
"type": "object",
"description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "liquid merge data"
}
}
}
}
],
"description": "A web \"pageview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website."
}
person_screen
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action",
"name"
],
"properties": {
"id": {
"type": "string",
"format": "ULID",
"description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
},
"name": {
"type": "string",
"description": "The name of the screen a person visited. This is how you'll find and select screen view events in Customer.io."
},
"action": {
"enum": [
"screen"
],
"type": "string",
"description": "A mobile \"screenview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website."
},
"timestamp": {
"type": "integer",
"description": "The Unix timestamp when the event happened."
},
"attributes": {
"type": "object",
"description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "liquid merge data"
}
}
}
}
],
"description": "A mobile \"screenview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website."
}
person_subscribed
{
"allOf": [
{
"type": "object",
"required": [
"metric"
],
"properties": {
"metric": {
"enum": [
"subscribed"
],
"type": "string",
"description": "The metric recorded by the event. For `customer` events, this is whether the customer explicitly subscribed or unsubscribed."
}
}
},
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp",
"data"
],
"properties": {
"data": {
"type": "object",
"required": [
"identifiers",
"customer_id",
"email_address"
],
"properties": {
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"email_address": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
}
},
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"customer"
],
"type": "string",
"example": "customer",
"description": "The event represents a customer subscribing, unsubscribing, or changing their subscription preferences."
}
}
}
],
"title": "subscribed",
"description": "A person subscribed to messages from you—their `unsubscribed` attribute was set to `false`."
}
person_suppress
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"suppress"
],
"type": "string",
"description": "Suppress a person's identifier(s) in Customer.io, so that you can't message a person or add their identifiers back to your workspace. This is separate from suppressions performed by your email provider."
}
}
}
],
"title": "suppress",
"description": "Suppress a person's identifier(s) in Customer.io, so that you can't message a person or add their identifiers back to your workspace. This is separate from suppressions performed by your email provider."
}
person_unsubscribed
{
"allOf": [
{
"type": "object",
"required": [
"metric"
],
"properties": {
"metric": {
"enum": [
"unsubscribed"
],
"type": "string",
"description": "The metric recorded by the event. For `customer` events, this is whether the customer explicitly subscribed or unsubscribed."
}
}
},
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp",
"data"
],
"properties": {
"data": {
"type": "object",
"required": [
"identifiers",
"customer_id",
"email_address"
],
"properties": {
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"email_address": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
}
},
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"customer"
],
"type": "string",
"example": "customer",
"description": "The event represents a customer subscribing, unsubscribing, or changing their subscription preferences."
}
}
}
],
"title": "unsubscribed",
"description": "A person unsubscribed to messages from you—their `unsubscribed` attribute was set to `true`."
}
person_unsuppress
{
"allOf": [
{
"type": "object",
"required": [
"type",
"identifiers"
],
"properties": {
"type": {
"enum": [
"person"
],
"type": "string",
"description": "The operation modifies a person in Customer.io"
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
],
"description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
}
}
},
{
"type": "object",
"required": [
"action"
],
"properties": {
"action": {
"enum": [
"unsuppress"
],
"type": "string",
"description": "Unsuppress a person's identifier(s) in Customer.io, so that you can message a person or add their identifiers back to your workspace. This does not unsuppress addresses that were previously suppressed by your email provider."
}
}
}
],
"title": "unsuppress",
"description": "Unsuppress a person's identifier(s) in Customer.io, so that you can message a person or add their identifiers back to your workspace. This does not unsuppress addresses that were previously suppressed by your email provider."
}
preheader
{
"type": "string",
"description": "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."
}
preheader_text
{
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
preprocessor
{
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
}
pushBody
{
"type": "string",
"description": "The body of your push notification."
}
pushImage
{
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
}
pushLink
{
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
}
pushTitle
{
"type": "string",
"description": "The title of your push notification."
}
push_attempted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "A push notification was attempted but unsuccessful. This generally means that we'll try again."
}
}
}
],
"title": "attempted"
}
push_bounced
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id",
"device_platform",
"failure_message"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
},
"device_platform": {
"enum": [
"android",
"ios"
],
"type": "string",
"example": "ios",
"description": "The device's operating system."
},
"failure_message": {
"type": "string",
"description": "The reason the push failed for this particular recipient."
}
},
"description": "Describes the device of the recipient who tapped the link."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"bounced"
],
"type": "string",
"description": "The delivery provider reported at least one invalid device token."
}
}
}
],
"title": "bounced"
}
push_clicked
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients",
"href",
"link_id"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
}
},
"description": "Describes the device of the recipient who tapped the link."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "A recipient tapped a link in a push notification."
}
}
}
],
"title": "clicked"
}
push_converted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
}
},
"description": "Describes the device of the recipient who tapped the link."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"converted"
],
"type": "string",
"description": "A person matched a conversion goal attributed to a push notification."
}
}
}
],
"title": "converted"
}
push_delivered
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
}
},
"description": "Describes the device the push was sent to."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"delivered"
],
"type": "string",
"description": "A push notification was delivered to a recipient device."
}
}
}
],
"title": "delivered"
}
push_drafted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "A push notification was drafted."
}
}
}
],
"title": "drafted"
}
push_dropped
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id",
"device_platform",
"failure_message"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
},
"device_platform": {
"enum": [
"android",
"ios"
],
"type": "string",
"example": "ios",
"description": "The device's operating system."
},
"failure_message": {
"type": "string",
"description": "The reason the push failed for this particular recipient."
}
},
"description": "Describes the device of the recipient who tapped the link."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"dropped"
],
"type": "string",
"description": "A push notification wasn't sent because at least one device token previously bounced."
}
}
}
],
"title": "dropped"
}
push_event
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "A push notification was drafted."
}
}
}
],
"title": "drafted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "A push notification was attempted but unsuccessful. This generally means that we'll try again."
}
}
}
],
"title": "attempted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
}
},
"description": "Describes the device the push was sent to."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"delivered"
],
"type": "string",
"description": "A push notification was delivered to a recipient device."
}
}
}
],
"title": "delivered"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"content": {
"type": "string",
"description": "The stringified payload for your push notification. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
}
},
"description": "Describes the device the push was sent to."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "A push notification was sent to a recipient. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"opened"
],
"type": "string",
"description": "A device opened a push notification."
}
}
}
],
"title": "opened"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients",
"href",
"link_id"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
}
},
"description": "Describes the device of the recipient who tapped the link."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "A recipient tapped a link in a push notification."
}
}
}
],
"title": "clicked"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
}
},
"description": "Describes the device of the recipient who tapped the link."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"converted"
],
"type": "string",
"description": "A person matched a conversion goal attributed to a push notification."
}
}
}
],
"title": "converted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id",
"device_platform",
"failure_message"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
},
"device_platform": {
"enum": [
"android",
"ios"
],
"type": "string",
"example": "ios",
"description": "The device's operating system."
},
"failure_message": {
"type": "string",
"description": "The reason the push failed for this particular recipient."
}
},
"description": "Describes the device of the recipient who tapped the link."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"bounced"
],
"type": "string",
"description": "The delivery provider reported at least one invalid device token."
}
}
}
],
"title": "bounced"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id",
"device_platform",
"failure_message"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
},
"device_platform": {
"enum": [
"android",
"ios"
],
"type": "string",
"example": "ios",
"description": "The device's operating system."
},
"failure_message": {
"type": "string",
"description": "The reason the push failed for this particular recipient."
}
},
"description": "Describes the device of the recipient who tapped the link."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"dropped"
],
"type": "string",
"description": "A push notification wasn't sent because at least one device token previously bounced."
}
}
}
],
"title": "dropped"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "A push notification couldn't be sent to the delivery provider."
}
}
}
],
"title": "failed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "failed"
}
],
"title": "Push",
"description": "Events representing a push notification.",
"discriminator": {
"mapping": {
"sent": "#/components/schemas/push_sent",
"failed": "#/components/schemas/push_failed",
"opened": "#/components/schemas/push_opened",
"bounced": "#/components/schemas/push_bounced",
"clicked": "#/components/schemas/push_clicked",
"drafted": "#/components/schemas/push_drafted",
"dropped": "#/components/schemas/push_dropped",
"attempted": "#/components/schemas/push_attempted",
"converted": "#/components/schemas/push_converted",
"delivered": "#/components/schemas/push_delivered",
"undeliverable": "#/components/schemas/push_undeliverable"
},
"propertyName": "metric"
}
}
push_event_common
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
}
push_events
{
"type": "object",
"properties": {
"push_sent": {
"type": "boolean",
"description": "Reports when a message is sent from Customer.io to the delivery provider. Set to true to report this event type."
},
"push_failed": {
"type": "boolean",
"description": "Reports when a message couldn't be sent to the delivery provider. Set to true to report this event type."
},
"push_opened": {
"type": "boolean",
"description": "The app on a recipient's device reports that the recipient opened the message. Set to true to report this event type."
},
"push_bounced": {
"type": "boolean",
"description": "Reports when the delivery provider is unable to deliver a message. Set to true to report this event type."
},
"push_clicked": {
"type": "boolean",
"description": "Reports when a person clicks a tracked link in a message. Set to true to report this event type."
},
"push_drafted": {
"type": "boolean",
"description": "Reports when a message draft is created. Set to true to report this event type."
},
"push_dropped": {
"type": "boolean",
"description": "Reports when a message isn't sent because the recipient is suppressed. Set to true to report this event type."
},
"push_attempted": {
"type": "boolean",
"description": "Reports when a push notification could not be sent to the delivery provider will retry. Set to true to report this event type."
},
"push_converted": {
"type": "boolean",
"description": "Reports a conversion. Set to true to report this event type."
},
"push_delivered": {
"type": "boolean",
"description": "An app reports that the recipient's device received a message. Set to true to report this event type."
}
},
"description": "Describes the push events reported from Customer.io to a webhook."
}
push_failed
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "A push notification couldn't be sent to the delivery provider."
}
}
}
],
"title": "failed"
}
push_opened
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"opened"
],
"type": "string",
"description": "A device opened a push notification."
}
}
}
],
"title": "opened"
}
push_sent
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"content": {
"type": "string",
"description": "The stringified payload for your push notification. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
}
},
"description": "Describes the device the push was sent to."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "A push notification was sent to a recipient. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
}
push_undeliverable
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "failed"
}
queue_draft
{
"type": "boolean",
"default": false,
"description": "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."
}
recipient
{
"type": "string",
"example": "{{customer.email}}",
"description": "The recipient address for an action."
}
recipient_not_templated
{
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
relationship_attributes
{
"type": "object",
"example": {
"role": "admin"
},
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
reply_to
{
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
}
reply_to_id
{
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
}
reply_to_settable
{
"type": "string",
"example": "replyto@example.com",
"description": "The address that receives replies for the message, if applicable."
}
reportingWebhook
{
"type": "object",
"required": [
"name",
"endpoint",
"events"
],
"properties": {
"id": {
"type": "integer",
"example": 4,
"readOnly": true,
"description": "The identifier for the webhook."
},
"name": {
"type": "string",
"example": "my cool webhook",
"description": "The name of your webhook."
},
"events": {
"type": "array",
"items": {
"enum": [
"customer_subscribed",
"customer_unsubscribed",
"cio_subscription_preferences_changed",
"email_drafted",
"email_attempted",
"email_sent",
"email_delivered",
"email_opened",
"email_clicked",
"email_converted",
"email_bounced",
"email_dropped",
"email_deferred",
"email_spammed",
"email_failed",
"email_unsubscribed",
"email_undeliverable",
"push_drafted",
"push_attempted",
"push_sent",
"push_delivered",
"push_opened",
"push_clicked",
"push_converted",
"push_bounced",
"push_dropped",
"push_failed",
"push_undeliverable",
"slack_drafted",
"slack_attempted",
"slack_sent",
"slack_clicked",
"slack_converted",
"slack_failed",
"sms_drafted",
"sms_attempted",
"sms_sent",
"sms_delivered",
"sms_clicked",
"sms_converted",
"sms_bounced",
"sms_failed",
"sms_undeliverable",
"webhook_drafted",
"webhook_attempted",
"webhook_sent",
"webhook_clicked",
"webhook_converted",
"webhook_failed",
"webhook_undeliverable"
],
"type": "string"
},
"example": [
"email_failed",
"webhook_failed"
],
"minItems": 1,
"description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](https://customer.io/docs/api/app/) for more information about event types and the information they return."
},
"disabled": {
"type": "boolean",
"example": false,
"description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook."
},
"endpoint": {
"type": "string",
"format": "url",
"example": "http://example.com/webhook",
"description": "The webhook URL."
},
"with_content": {
"type": "boolean",
"example": false,
"description": "Set to `true` to include the message `body` in `_sent` events."
},
"full_resolution": {
"type": "boolean",
"default": false,
"example": true,
"description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events."
}
}
}
reporting_webhook
{
"oneOf": [
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"metric"
],
"properties": {
"metric": {
"enum": [
"subscribed"
],
"type": "string",
"description": "The metric recorded by the event. For `customer` events, this is whether the customer explicitly subscribed or unsubscribed."
}
}
},
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp",
"data"
],
"properties": {
"data": {
"type": "object",
"required": [
"identifiers",
"customer_id",
"email_address"
],
"properties": {
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"email_address": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
}
},
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"customer"
],
"type": "string",
"example": "customer",
"description": "The event represents a customer subscribing, unsubscribing, or changing their subscription preferences."
}
}
}
],
"title": "subscribed",
"description": "A person subscribed to messages from you—their `unsubscribed` attribute was set to `false`."
},
{
"allOf": [
{
"type": "object",
"required": [
"metric"
],
"properties": {
"metric": {
"enum": [
"unsubscribed"
],
"type": "string",
"description": "The metric recorded by the event. For `customer` events, this is whether the customer explicitly subscribed or unsubscribed."
}
}
},
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp",
"data"
],
"properties": {
"data": {
"type": "object",
"required": [
"identifiers",
"customer_id",
"email_address"
],
"properties": {
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"email_address": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
}
},
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"customer"
],
"type": "string",
"example": "customer",
"description": "The event represents a customer subscribing, unsubscribing, or changing their subscription preferences."
}
}
}
],
"title": "unsubscribed",
"description": "A person unsubscribed to messages from you—their `unsubscribed` attribute was set to `true`."
},
{
"type": "object",
"title": "changed subscription preferences",
"required": [
"metric",
"event_id",
"data",
"timestamp"
],
"properties": {
"data": {
"allOf": [
{
"type": "object",
"required": [
"identifiers",
"customer_id",
"email_address",
"content"
],
"properties": {
"content": {
"type": "string",
"example": "{\"topics\":{\"topic_1\":true}}",
"description": "Contains the subscription preferences that a person changed in a stringified object format. The `topic_1` key refers to a topic with an ID of `1`; you can get more information about each topic from our [App API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"email_address": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
}
},
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
}
]
},
"metric": {
"enum": [
"cio_subscription_preferences_changed"
],
"type": "string",
"description": "The event we're reporting to your webhook endpoint. In this case, a person changed their subscription preferences."
},
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"delivery_type": {
"enum": [
"email",
"sms",
"push",
"in_app",
"slack",
"webhook"
],
"type": "string",
"example": "email",
"description": "The type of delivery that resulted in a change to preferences."
}
},
"description": "A person changed their subscription preferences through our subscription center or you changed their `cio_subscription_preferences` attribute values.\n\nSome fields in the `data` object change based on whether the message that resulted in the change originated from a broadcast, campaign, or newsletter.\n"
}
],
"title": "Customer",
"description": "Events that occur when a customer subscribes or unsubscribes from your messages."
},
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "The metric recorded by the event. For `customer` events, this is whether the customer explicitly subscribed or unsubscribed."
}
}
}
],
"title": "drafted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "An email could not be sent to the delivery provider and will be retried. The `failure_message` provides the reason for the failure."
}
}
}
],
"title": "attempted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"content": {
"type": "string",
"description": "The body content of your email. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "A message was successfully sent. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"delivered"
],
"type": "string",
"description": "A message was successfully delivered to a recipient."
}
}
}
],
"title": "delivered"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"opened"
],
"type": "string",
"description": "The recipient opened a message."
}
}
}
],
"title": "opened"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"href",
"link_id"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "The recipient clicked a tracked link in the email."
}
}
}
],
"title": "clicked"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"converted"
],
"type": "string",
"description": "A person matched a conversion goal attributed to an email."
}
}
}
],
"title": "converted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"unsubscribed"
],
"type": "string",
"description": "The recipient unsubscribed based on a particular message."
}
}
}
],
"title": "unsubscribed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"failure_message"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"bounced"
],
"type": "string",
"description": "The delivery provider could not deliver an email."
}
}
}
],
"title": "bounced"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"failure_message"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"dropped"
],
"type": "string",
"description": "Customer.io did not send an email because it was addressed to a person who was suppressed."
}
}
}
],
"title": "dropped"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"spammed"
],
"type": "string",
"description": "A recipient marked an email as spam."
}
}
}
],
"title": "spammed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"failure_message"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "An email couldn't be sent to the delivery provider."
}
}
}
],
"title": "failed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"email"
],
"type": "string",
"description": "The event relates to an email action."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"subject",
"failure_message"
],
"properties": {
"subject": {
"type": "string",
"description": "The subject of the email."
},
"recipient": {
"type": "string",
"example": "test@example.com",
"description": "The recipient address for an action."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "failed"
}
],
"title": "Email",
"description": "Events representing an email.",
"discriminator": {
"mapping": {
"sent": "#/components/schemas/email_sent",
"failed": "#/components/schemas/email_failed",
"opened": "#/components/schemas/email_opened",
"bounced": "#/components/schemas/email_bounced",
"clicked": "#/components/schemas/email_clicked",
"drafted": "#/components/schemas/email_drafted",
"dropped": "#/components/schemas/email_dropped",
"spammed": "#/components/schemas/email_spammed",
"attempted": "#/components/schemas/email_attempted",
"converted": "#/components/schemas/email_converted",
"delivered": "#/components/schemas/email_delivered",
"unsubscribed": "#/components/schemas/email_unsubscribed",
"undeliverable": "#/components/schemas/email_undeliverable"
},
"propertyName": "metric"
}
},
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "A push notification was drafted."
}
}
}
],
"title": "drafted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "A push notification was attempted but unsuccessful. This generally means that we'll try again."
}
}
}
],
"title": "attempted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
}
},
"description": "Describes the device the push was sent to."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"delivered"
],
"type": "string",
"description": "A push notification was delivered to a recipient device."
}
}
}
],
"title": "delivered"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"content": {
"type": "string",
"description": "The stringified payload for your push notification. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
}
},
"description": "Describes the device the push was sent to."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "A push notification was sent to a recipient. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"opened"
],
"type": "string",
"description": "A device opened a push notification."
}
}
}
],
"title": "opened"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients",
"href",
"link_id"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
}
},
"description": "Describes the device of the recipient who tapped the link."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "A recipient tapped a link in a push notification."
}
}
}
],
"title": "clicked"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
}
},
"description": "Describes the device of the recipient who tapped the link."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"converted"
],
"type": "string",
"description": "A person matched a conversion goal attributed to a push notification."
}
}
}
],
"title": "converted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id",
"device_platform",
"failure_message"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
},
"device_platform": {
"enum": [
"android",
"ios"
],
"type": "string",
"example": "ios",
"description": "The device's operating system."
},
"failure_message": {
"type": "string",
"description": "The reason the push failed for this particular recipient."
}
},
"description": "Describes the device of the recipient who tapped the link."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"bounced"
],
"type": "string",
"description": "The delivery provider reported at least one invalid device token."
}
}
}
],
"title": "bounced"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipients"
],
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"device_id",
"device_platform",
"failure_message"
],
"properties": {
"device_id": {
"type": "string",
"description": "The device identifier/token."
},
"device_platform": {
"enum": [
"android",
"ios"
],
"type": "string",
"example": "ios",
"description": "The device's operating system."
},
"failure_message": {
"type": "string",
"description": "The reason the push failed for this particular recipient."
}
},
"description": "Describes the device of the recipient who tapped the link."
}
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"dropped"
],
"type": "string",
"description": "A push notification wasn't sent because at least one device token previously bounced."
}
}
}
],
"title": "dropped"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "A push notification couldn't be sent to the delivery provider."
}
}
}
],
"title": "failed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"push"
],
"type": "string",
"description": "The event relates to an push notification."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "failed"
}
],
"title": "Push",
"description": "Events representing a push notification.",
"discriminator": {
"mapping": {
"sent": "#/components/schemas/push_sent",
"failed": "#/components/schemas/push_failed",
"opened": "#/components/schemas/push_opened",
"bounced": "#/components/schemas/push_bounced",
"clicked": "#/components/schemas/push_clicked",
"drafted": "#/components/schemas/push_drafted",
"dropped": "#/components/schemas/push_dropped",
"attempted": "#/components/schemas/push_attempted",
"converted": "#/components/schemas/push_converted",
"delivered": "#/components/schemas/push_delivered",
"undeliverable": "#/components/schemas/push_undeliverable"
},
"propertyName": "metric"
}
},
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "An in-app message draft was created."
}
}
}
],
"title": "drafted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "An in-app message failed to send, but will be retried."
}
}
}
],
"title": "attempted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"content": {
"type": "string",
"description": "The body of your message. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipient": {
"type": "string",
"description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "An in-app message was sent from Customer.io. Because in-app messages are only delivered when a person's app is open, there may be a significant delay between when a message is sent and when it's \"opened\". If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"opened"
],
"type": "string",
"description": "A device opened an in-app message. Because messages appear automatically when a person opens your app (to the right page if using page rules), \"opened\" is essentially an \"impression\"—a person saw your message."
}
}
}
],
"title": "opened"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"link_id",
"href"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipient": {
"type": "string",
"description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
},
"tracked_response": {
"type": "string",
"description": "The *Action Name* of the action a person clicked/tapped in the message. [Learn more about tracked responses and action names](https://customer.io/docs/api/app/)."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "The in-app message recipient clicked/tapped a component in a message with **Track Clicks** enabled. The *Track Clicks* setting is enabled by default for in-app messages. The payload includes a `tracked_response` key containing the *Action Name* of the component the person clicked/tapped. [Learn more about tracked responses and action names](https://customer.io/docs/api/app/)."
}
}
}
],
"title": "clicked"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"recipient": {
"type": "string",
"description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"converted"
],
"type": "string",
"description": "A person matched a conversion goal attributed to an in-app notification."
}
}
}
],
"title": "converted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "An in-app message failed to send."
}
}
}
],
"title": "failed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"in_app"
],
"type": "string",
"description": "The event relates to an in-app message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "undeliverable"
}
],
"title": "In-App Messages",
"description": "Events pertaining to in-app messages.",
"discriminator": {
"mapping": {
"sent": "#/components/schemas/in_app_sent",
"failed": "#/components/schemas/in_app_failed",
"opened": "#/components/schemas/in_app_opened",
"clicked": "#/components/schemas/in_app_clicked",
"drafted": "#/components/schemas/in_app_drafted",
"attempted": "#/components/schemas/in_app_attempted",
"converted": "#/components/schemas/in_app_converted",
"undeliverable": "#/components/schemas/in_app_undeliverable"
},
"propertyName": "metric"
}
},
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "An SMS notification was drafted."
}
}
}
],
"title": "drafted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "An SMS could not be sent to the delivery provider, but will retry."
}
}
}
],
"title": "attempted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"content": {
"type": "string",
"description": "The body of your message. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "An SMS notification was sent. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"delivered"
],
"type": "string",
"description": "An SMS notification was delivered to a recipient."
}
}
}
],
"title": "delivered"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"link_id",
"href"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "A recipient tapped a link in an SMS message they received."
}
}
}
],
"title": "clicked"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"converted"
],
"type": "string",
"description": "A person matched a conversion goal attributed to an SMS."
}
}
}
],
"title": "converted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"failure_message"
],
"properties": {
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"bounced"
],
"type": "string",
"description": "The delivery provider was unable to deliver an SMS message."
}
}
}
],
"title": "bounced"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "An SMS couldn't be sent to the delivery provider."
}
}
}
],
"title": "failed"
}
],
"title": "SMS",
"description": "Events pertaining to SMS notifications.",
"discriminator": {
"mapping": {
"sent": "#/components/schemas/sms_sent",
"failed": "#/components/schemas/sms_failed",
"bounced": "#/components/schemas/sms_bounced",
"clicked": "#/components/schemas/sms_clicked",
"drafted": "#/components/schemas/sms_drafted",
"attempted": "#/components/schemas/sms_attempted",
"converted": "#/components/schemas/sms_converted",
"delivered": "#/components/schemas/sms_delivered"
},
"propertyName": "metric"
}
},
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "A slack message was drafted."
}
}
}
],
"title": "drafted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "A slack message failed and will be retried."
}
}
}
],
"title": "attempted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"content": {
"type": "string",
"description": "The of your slack message. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipient": {
"type": "string",
"description": "The channel or person that received the message, i.e. `#general`."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "A slack message was sent. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"href",
"link_id"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipient": {
"type": "string",
"description": "The channel or person that received the message, i.e. `#general`."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "A person clicked a tracked link in a Slack message."
}
}
}
],
"title": "clicked"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "A slack message failed."
}
}
}
],
"title": "failed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "failed"
}
],
"title": "Slack",
"description": "Events pertaining to Slack messages.",
"discriminator": {
"mapping": {
"sent": "#/components/schemas/slack_sent",
"failed": "#/components/schemas/slack_failed",
"clicked": "#/components/schemas/slack_clicked",
"drafted": "#/components/schemas/slack_drafted",
"attempted": "#/components/schemas/slack_attempted",
"undeliverable": "#/components/schemas/slack_undeliverable"
},
"propertyName": "metric"
}
},
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "A webhook draft was created."
}
}
}
],
"title": "drafted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "A webhook failed to send, but will be retried."
}
}
}
],
"title": "attempted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"content": {
"type": "string",
"description": "The stringified payload sent to your webhook address. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipient": {
"type": "string",
"description": "The URL the webhook was sent to."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "A webhook was sent from Customer.io. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your webhook."
}
}
}
],
"title": "sent"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"link_id",
"href"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipient": {
"type": "string",
"description": "The URL the webhook was sent to."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "The webhook recipient opened a tracked link in the webhook payload."
}
}
}
],
"title": "clicked"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "A webhook failed to send."
}
}
}
],
"title": "failed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A webhook/message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "failed"
}
],
"title": "Webhook",
"description": "Events pertaining to webhooks.",
"discriminator": {
"mapping": {
"sent": "#/components/schemas/webhook_sent",
"failed": "#/components/schemas/webhook_failed",
"clicked": "#/components/schemas/webhook_clicked",
"drafted": "#/components/schemas/webhook_drafted",
"attempted": "#/components/schemas/webhook_attempted",
"undeliverable": "#/components/schemas/webhook_undeliverable"
},
"propertyName": "metric"
}
}
],
"discriminator": {
"propertyName": "object_type"
}
}
request_method
{
"enum": [
"GET",
"POST",
"PUT",
"DELETE",
"PATCH"
],
"type": "string",
"example": "POST",
"description": "The method used in conjunction with a webhook `url`."
}
rows_imported
{
"type": "integer",
"description": "The number of rows we imported from the CSV."
}
rows_to_import
{
"type": "integer",
"description": "The total number of importable rows we found in the CSV."
}
segmentAudienceFilter
{
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
segmentResponseObject
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 7,
"description": "The identifier for a segment."
},
"name": {
"type": "string",
"example": "Manual Segment 1",
"description": "The name of the segment."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": null,
"nullable": true,
"description": "The tags assigned to the segment, if any. Tags may help you sort through your segments."
},
"type": {
"enum": [
"dynamic",
"manual"
],
"type": "string",
"example": "manual",
"description": "The type of segment."
},
"state": {
"enum": [
"finished"
],
"type": "string",
"description": "The state of the segment. \n"
},
"progress": {
"type": "integer",
"example": null,
"nullable": true,
"description": "If Customer.io has not finished processing the segment, this indicates the percentage complete. Otherwise, this key is null."
},
"description": {
"type": "string",
"example": "My first manual segment",
"description": "A description for the segment. This can help you understand the purpose of the segment when you encounter it in other requests or in the UI."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
}
}
segment_description
{
"type": "string",
"example": "My first manual segment",
"description": "A description for the segment. This can help you understand the purpose of the segment when you encounter it in other requests or in the UI."
}
segment_id
{
"type": "integer",
"example": 7,
"description": "The identifier for a segment."
}
segment_name
{
"type": "string",
"example": "Manual Segment 1",
"description": "The name of the segment."
}
send_to_unsubscribed
{
"type": "boolean",
"default": true,
"description": "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`."
}
sendemail
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"transactional_message_id"
],
"properties": {
"transactional_message_id": {
"oneOf": [
{
"type": "integer",
"title": "ID (integer)",
"example": 44,
"description": "The ID of the transactional message you want to send."
},
{
"type": "string",
"title": "Trigger Name (string)",
"example": "pwdreset",
"description": "The name of trigger for the transactional message you want to send; you set the trigger name in the *Configure Settings* step when setting up your message. This is case insensitive."
}
],
"description": "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 the template (case insensitive)."
}
}
},
{
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The HTML body of your message. This overrides the body of the transactional template (referenced by `transactional_message_id`). 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."
},
"from": {
"type": "string",
"example": "support@example.com",
"description": "The address that your email is from. This address must be verified by Customer.io. This overrides the from address set within the transactional template (referenced by `transactional_message_id`). 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>`."
},
"subject": {
"type": "string",
"description": "The subject line for your message. This overrides the subject of the transactional template (referenced by `transactional_message_id`)."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"language": {
"type": "string",
"description": "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](https://customer.io/docs/api/app/)."
},
"body_plain": {
"type": "string",
"description": "The plaintext body of your message. This overrides the body of your transactional template (referenced by `transactional_message_id`)."
}
}
},
{
"type": "object",
"required": [
"to",
"identifiers"
],
"properties": {
"send_at": {
"type": "integer",
"description": "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."
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": 12345,
"description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n"
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "cool.person@example.com",
"description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": 3000001,
"description": "A unique, immutable identifier for a person, set by Customer.io when you add a person."
}
}
}
],
"description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`."
},
"queue_draft": {
"type": "boolean",
"default": false,
"description": "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."
},
"message_data": {
"type": "object",
"example": {
"account_id": "123dj",
"password_reset_token": "abcde-12345-fghij-d888"
},
"description": "An object containing the key-value pairs referenced using liquid in your message.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Liquid Data"
}
},
"send_to_unsubscribed": {
"type": "boolean",
"default": true,
"description": "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`."
},
"disable_message_retention": {
"type": "boolean",
"default": false,
"description": "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`."
}
}
},
{
"type": "object",
"properties": {
"to": {
"type": "string",
"example": "cool.person@example.com",
"description": "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.\n\nYou 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>`. \n"
},
"bcc": {
"type": "string",
"example": "bcc@example.com",
"description": "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."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"tracked": {
"type": "boolean",
"default": true,
"description": "If true, Customer.io tracks opens and link clicks in your message."
},
"fake_bcc": {
"type": "boolean",
"description": "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).\n"
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"description": "The address that recipients can reply to, if different from the `from` address."
},
"preheader": {
"type": "string",
"description": "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."
},
"body_plain": {
"type": "string",
"description": "By default, we generate a plaintext version of your message body for each delivery. Use this key to override the default plain text body."
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"type": "string",
"format": "base64",
"x-doNotRender": true,
"x-additionalPropertiesName": "Attachment Names"
}
},
"description": "A dictionary of attachments where the filename is the key and the value is the base64-encoded contents. The total size of all attachments must be less than 2 MB. Some filetype extensions are restricted.\n"
},
"disable_css_preprocessing": {
"type": "boolean",
"default": false,
"example": false,
"description": "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."
}
}
}
],
"title": "With template",
"example": {
"to": "cool.person@example.com",
"bcc": "bcc@example.com",
"from": "override-templated-address@example.com",
"subject": "Did you really login from a new location?",
"tracked": true,
"identifiers": {
"email": "cool.person@example.com"
},
"queue_draft": false,
"message_data": {
"account_id": "123dj",
"password_reset_token": "abcde-12345-fghij-d888"
},
"send_to_unsubscribed": true,
"transactional_message_id": 44,
"disable_css_preprocessing": true,
"disable_message_retention": false
},
"description": "Send a transactional message using a template that you set up in Customer.io."
},
{
"allOf": [
{
"type": "object",
"required": [
"body",
"subject",
"from"
],
"properties": {
"body": {
"type": "string",
"example": "Your temporary password is {{message_data.password_reset_token}}",
"description": "The body of your message."
},
"from": {
"type": "string",
"example": "support@example.com",
"description": "The address that your email is from. This address must be verified by Customer.io. You can include a display/friendly name in your from address in the format `Person <person@example.com>`."
},
"subject": {
"type": "string",
"example": "Reset your password!",
"description": "The subject line for your message."
}
}
},
{
"type": "object",
"required": [
"to",
"identifiers"
],
"properties": {
"send_at": {
"type": "integer",
"description": "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."
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": 12345,
"description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n"
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "cool.person@example.com",
"description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": 3000001,
"description": "A unique, immutable identifier for a person, set by Customer.io when you add a person."
}
}
}
],
"description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`."
},
"queue_draft": {
"type": "boolean",
"default": false,
"description": "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."
},
"message_data": {
"type": "object",
"example": {
"account_id": "123dj",
"password_reset_token": "abcde-12345-fghij-d888"
},
"description": "An object containing the key-value pairs referenced using liquid in your message.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Liquid Data"
}
},
"send_to_unsubscribed": {
"type": "boolean",
"default": true,
"description": "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`."
},
"disable_message_retention": {
"type": "boolean",
"default": false,
"description": "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`."
}
}
},
{
"type": "object",
"properties": {
"to": {
"type": "string",
"example": "cool.person@example.com",
"description": "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.\n\nYou 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>`. \n"
},
"bcc": {
"type": "string",
"example": "bcc@example.com",
"description": "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."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"tracked": {
"type": "boolean",
"default": true,
"description": "If true, Customer.io tracks opens and link clicks in your message."
},
"fake_bcc": {
"type": "boolean",
"description": "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).\n"
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"description": "The address that recipients can reply to, if different from the `from` address."
},
"preheader": {
"type": "string",
"description": "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."
},
"body_plain": {
"type": "string",
"description": "By default, we generate a plaintext version of your message body for each delivery. Use this key to override the default plain text body."
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"type": "string",
"format": "base64",
"x-doNotRender": true,
"x-additionalPropertiesName": "Attachment Names"
}
},
"description": "A dictionary of attachments where the filename is the key and the value is the base64-encoded contents. The total size of all attachments must be less than 2 MB. Some filetype extensions are restricted.\n"
},
"disable_css_preprocessing": {
"type": "boolean",
"default": false,
"example": false,
"description": "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."
}
}
}
],
"title": "Without template",
"example": {
"to": "cool.person@example.com",
"bcc": "bcc@example.com",
"body": "Your temporary password is {{message_data.password_reset_token}}",
"from": "Support <support@example.com>",
"subject": "Your password reset request!",
"tracked": true,
"identifiers": {
"id": 12345
},
"queue_draft": false,
"message_data": {
"account_id": "123dj",
"password_reset_token": "abcde-12345-fghij-d888"
},
"send_to_unsubscribed": true,
"disable_css_preprocessing": true,
"disable_message_retention": false
},
"description": "Create your own message from scratch."
}
],
"description": "The payload of a transactional message."
}
senderIdentityObject
{
"type": "object",
"example": {
"id": 4534,
"name": "Cher Ami",
"email": "test@example.com",
"address": "Cher Ami <test@example.com>",
"template_type": "email",
"auto_generated": false,
"deduplicate_id": "4534:1478035647"
},
"properties": {
"id": {
"type": "integer",
"description": "The identifier of a sender."
},
"name": {
"type": "string",
"description": "The name of the sender."
},
"email": {
"type": "string",
"description": "The email address of the sender."
},
"address": {
"type": "string",
"description": "The sender name and email address in the format `name <name@example.com>`."
},
"template_type": {
"enum": [
"email",
"phone"
],
"type": "string",
"description": "The type of sender."
},
"auto_generated": {
"type": "boolean",
"description": "If true, the sender is automatically generated by Customer.io."
},
"deduplicate_id": {
"type": "string",
"example": "15:1492548073",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
}
},
"description": "Information about a sender."
}
sending_state
{
"enum": [
"automatic",
"draft",
"off"
],
"type": "string",
"description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
}
sendpush
{
"allOf": [
{
"type": "object",
"required": [
"transactional_message_id"
],
"properties": {
"transactional_message_id": {
"oneOf": [
{
"type": "integer",
"title": "ID (integer)",
"example": 44,
"description": "The ID of the transactional message you want to send."
},
{
"type": "string",
"title": "Trigger Name (string)",
"example": "pwdreset",
"description": "The name of trigger for the transactional message you want to send; you set the trigger name in the *Configure Settings* step when setting up your message. This is case insensitive."
}
],
"description": "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 the template (case insensitive)."
}
}
},
{
"type": "object",
"properties": {
"to": {
"enum": [
"all",
"last_used",
"$device_token"
],
"type": "string",
"default": "all",
"description": "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`)."
},
"link": {
"type": "string",
"description": "A deep link to open when the push is tapped. This overrides Link from the transactional template (referenced by `transactional_message_id`)."
},
"sound": {
"enum": [
"default",
"none"
],
"type": "string",
"default": "default",
"description": "**For iOS Only**: your notification can alert users with the device's default notification sound or play no sound at all. \n"
},
"title": {
"type": "string",
"description": "The title for your notification. This overrides the title of the transactional template (referenced by `transactional_message_id`)."
},
"message": {
"type": "string",
"description": "The message body for your notification. This overrides the notification body of the transactional template (referenced by `transactional_message_id`)."
},
"language": {
"type": "string",
"description": "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](https://customer.io/docs/api/app/)."
},
"image_url": {
"type": "string",
"description": "An image URL to show in the push. This overrides Image from the transactional template (referenced by `transactional_message_id`)."
},
"custom_data": {
"type": "object",
"description": "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": {
"allOf": [
{
"type": "object",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"description": "The device token."
}
}
},
{
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"enum": [
"ios",
"android"
],
"type": "string",
"description": "The device/messaging platform."
},
"last_used": {
"type": "integer",
"format": "unix timestamp",
"description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
},
"attributes": {
"type": "object",
"properties": {
"device_os": {
"type": "string",
"description": "The operating system, including the version, on the device."
},
"app_version": {
"type": "string",
"description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
},
"_last_status": {
"enum": [
"",
"bounced",
"sent",
"suppressed"
],
"type": "string",
"readOnly": true,
"description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
},
"device_model": {
"type": "string",
"description": "The model of the device a person uses."
},
"push_enabled": {
"enum": [
"true",
"false"
],
"type": "string",
"description": "If `\"true\"`, the device is opted-in and can receive push notifications."
},
"device_locale": {
"type": "string",
"description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
},
"cio_sdk_version": {
"type": "string",
"description": "The version of the Customer.io SDK in the app."
}
},
"description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
"additionalProperties": {
"type": "string",
"description": "Custom properties that you want to associate with the device.",
"x-additionalPropertiesName": "Custom Device Attributes"
}
}
},
"description": "Device information common to the v1 and v2 APIs."
}
],
"description": "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": {
"type": "object",
"properties": {
"ios": {
"oneOf": [
{
"type": "object",
"title": "FCM",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"required": [
"apns"
],
"properties": {
"apns": {
"type": "object",
"required": [
"payload"
],
"properties": {
"headers": {
"type": "object",
"description": "Headers defined by [Apple's payload reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) that you want to pass through FCM."
},
"payload": {
"type": "object",
"properties": {
"CIO": {
"type": "object",
"required": [
"push"
],
"properties": {
"push": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "A push payload for the iOS SDK."
}
},
"description": "Contains properties interpreted by the Customer.io iOS SDK."
},
"aps": {
"type": "object",
"properties": {
"alert": {
"oneOf": [
{
"type": "string",
"title": "Simple alert",
"description": "A simple alert message."
},
{
"type": "object",
"title": "Complex alert",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
},
"loc-key": {
"type": "string",
"description": "The key for a localized message string in your app’s Localizable.strings file."
},
"loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
},
"subtitle": {
"type": "string",
"description": "Additional information that explains the purpose of the notification."
},
"launch-image": {
"type": "string",
"description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
},
"title-loc-key": {
"type": "string",
"description": "The key for a localized title string in your app’s Localizable.strings files."
},
"title-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
},
"subtitle-loc-key": {
"type": "string",
"description": "The key for a localized subtitle string in your app’s Localizable.strings file."
},
"subtitle-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
}
}
}
]
},
"badge": {
"type": "integer",
"description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
},
"sound": {
"oneOf": [
{
"type": "string",
"title": "Regular alert",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
},
{
"type": "object",
"title": "Critical alert",
"properties": {
"name": {
"type": "string",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
},
"volume": {
"type": "number",
"description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
},
"critical": {
"type": "integer",
"description": "1 indicates critical. 0 is not critical."
}
}
}
]
},
"category": {
"type": "string",
"description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
},
"thread-id": {
"type": "string",
"description": "An identifier to group related notifications."
},
"mutable-content": {
"type": "integer",
"description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
},
"relevance-score": {
"type": "number",
"description": "A number between 0 and 1. The highest score is considered the \"most relevant\" and is featured in the notification summary."
},
"content-available": {
"type": "integer",
"description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
},
"target-content-id": {
"type": "string",
"description": "The identifier of the window brought forward."
},
"interruption-level": {
"enum": [
"passive",
"active",
"time-sensitive",
"critical"
],
"type": "string",
"description": "Indicates the importance and delivery timing of a notification."
}
},
"description": "A push payload intended for an iOS device."
}
},
"description": "Contains a push payload.",
"additionalProperties": {
"description": "Additional properties that you've set up your app to interpret outside of the Customer.io SDK.",
"x-additionalPropertiesName": "Custom key-value pairs"
}
}
},
"description": "Defines a payload for iOS devices sent through Firebase Cloud Messaging (FCM)."
}
},
"description": "The base object for all FCM payloads."
}
}
},
{
"type": "object",
"title": "APNS",
"properties": {
"CIO": {
"type": "object",
"required": [
"push"
],
"properties": {
"push": {
"type": "object",
"properties": {
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
}
},
"description": "Describes push notification options supported by the CIO SDK."
}
},
"description": "Contains options supported by the Customer.io SDK."
},
"aps": {
"type": "object",
"properties": {
"alert": {
"oneOf": [
{
"type": "string",
"title": "Simple alert",
"description": "A simple alert message."
},
{
"type": "object",
"title": "Complex alert",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
},
"loc-key": {
"type": "string",
"description": "The key for a localized message string in your app’s Localizable.strings file."
},
"loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
},
"subtitle": {
"type": "string",
"description": "Additional information that explains the purpose of the notification."
},
"launch-image": {
"type": "string",
"description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
},
"title-loc-key": {
"type": "string",
"description": "The key for a localized title string in your app’s Localizable.strings files."
},
"title-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
},
"subtitle-loc-key": {
"type": "string",
"description": "The key for a localized subtitle string in your app’s Localizable.strings file."
},
"subtitle-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
}
}
}
]
},
"badge": {
"type": "integer",
"description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
},
"sound": {
"oneOf": [
{
"type": "string",
"title": "Regular alert",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
},
{
"type": "object",
"title": "Critical alert",
"properties": {
"name": {
"type": "string",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
},
"volume": {
"type": "number",
"description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
},
"critical": {
"type": "integer",
"description": "1 indicates critical. 0 is not critical."
}
}
}
]
},
"category": {
"type": "string",
"description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
},
"thread-id": {
"type": "string",
"description": "An identifier to group related notifications."
},
"mutable-content": {
"type": "integer",
"description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
},
"relevance-score": {
"type": "number",
"description": "A number between 0 and 1. The highest score is considered the \"most relevant\" and is featured in the notification summary."
},
"content-available": {
"type": "integer",
"description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
},
"target-content-id": {
"type": "string",
"description": "The identifier of the window brought forward."
},
"interruption-level": {
"enum": [
"passive",
"active",
"time-sensitive",
"critical"
],
"type": "string",
"description": "Indicates the importance and delivery timing of a notification."
}
},
"description": "A push payload intended for an iOS device."
}
}
}
],
"description": "Your payload changes depending on whether you send to iOS devices through Google's Firebase Cloud Messaging (FCM) or Apple's Push Notification service (APNs)."
},
"android": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Contains key-value pairs that your app interprets.",
"additionalProperties": {
"type": "string",
"x-doNotRender": true,
"x-additionalPropertiesName": "Attachment Names"
}
},
"android": {
"type": "object",
"properties": {
"notification": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Identifier to replace existing notifications in the notification drawer. If empty, each request creates a new notification.\n\nIf you specify a tag, and a notification with the same tag is already being shown, the new notification replaces the existing one in the notification drawer. \n"
},
"icon": {
"type": "string",
"description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
},
"color": {
"type": "string",
"description": "The notification's icon color in `#rrggbb` format."
},
"sound": {
"type": "string",
"description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
},
"body_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
},
"body_loc_key": {
"type": "string",
"description": "The key to the body string in the app's string resources that you want to use to localize the body text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
},
"click_action": {
"type": "string",
"description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
},
"title_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
},
"title_loc_key": {
"type": "string",
"description": "The key to the title string in the app's string resources that you want to use to localize the title text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
}
},
"description": "Properties supported specifically by Android on FCM."
}
},
"description": "Contains custom push options for your notification."
},
"notification": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "Contains the push body and title."
}
},
"description": "The parent object for Android custom push payloads."
}
},
"description": "A custom push payload for Android devices."
}
},
"description": "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`)."
}
}
},
{
"type": "object",
"required": [
"to",
"identifiers"
],
"properties": {
"send_at": {
"type": "integer",
"description": "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."
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": 12345,
"description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n"
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "cool.person@example.com",
"description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": 3000001,
"description": "A unique, immutable identifier for a person, set by Customer.io when you add a person."
}
}
}
],
"description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`."
},
"queue_draft": {
"type": "boolean",
"default": false,
"description": "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."
},
"message_data": {
"type": "object",
"example": {
"account_id": "123dj",
"password_reset_token": "abcde-12345-fghij-d888"
},
"description": "An object containing the key-value pairs referenced using liquid in your message.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Liquid Data"
}
},
"send_to_unsubscribed": {
"type": "boolean",
"default": true,
"description": "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`."
},
"disable_message_retention": {
"type": "boolean",
"default": false,
"description": "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`."
}
}
}
],
"example": {
"title": "Did you really login from a new location?",
"identifiers": {
"id": 12345
},
"message_data": {
"account_id": "123dj",
"password_reset_token": "abcde-12345-fghij-d888"
},
"transactional_message_id": 44
},
"description": "The payload of a transactional push message."
}
simpleAudienceFilter
{
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
}
slack_attempted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "A slack message failed and will be retried."
}
}
}
],
"title": "attempted"
}
slack_clicked
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"href",
"link_id"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipient": {
"type": "string",
"description": "The channel or person that received the message, i.e. `#general`."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "A person clicked a tracked link in a Slack message."
}
}
}
],
"title": "clicked"
}
slack_drafted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "A slack message was drafted."
}
}
}
],
"title": "drafted"
}
slack_event
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "A slack message was drafted."
}
}
}
],
"title": "drafted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "A slack message failed and will be retried."
}
}
}
],
"title": "attempted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"content": {
"type": "string",
"description": "The of your slack message. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipient": {
"type": "string",
"description": "The channel or person that received the message, i.e. `#general`."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "A slack message was sent. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"href",
"link_id"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipient": {
"type": "string",
"description": "The channel or person that received the message, i.e. `#general`."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "A person clicked a tracked link in a Slack message."
}
}
}
],
"title": "clicked"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "A slack message failed."
}
}
}
],
"title": "failed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "failed"
}
],
"title": "Slack",
"description": "Events pertaining to Slack messages.",
"discriminator": {
"mapping": {
"sent": "#/components/schemas/slack_sent",
"failed": "#/components/schemas/slack_failed",
"clicked": "#/components/schemas/slack_clicked",
"drafted": "#/components/schemas/slack_drafted",
"attempted": "#/components/schemas/slack_attempted",
"undeliverable": "#/components/schemas/slack_undeliverable"
},
"propertyName": "metric"
}
}
slack_event_common
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
}
slack_events
{
"type": "object",
"properties": {
"slack_sent": {
"type": "boolean",
"description": "Reports when a message is sent from Customer.io to the delivery provider. Set to true to report this event type."
},
"slack_failed": {
"type": "boolean",
"description": "Reports when a message couldn't be sent to the delivery provider. Set to true to report this event type."
},
"slack_clicked": {
"type": "boolean",
"description": "Reports when a person clicks a tracked link in a message. Set to true to report this event type."
},
"slack_drafted": {
"type": "boolean",
"description": "Reports when a message draft is created. Set to true to report this event type."
},
"slack_attempted": {
"type": "boolean",
"description": "Reports when a message could not be sent to the delivery provider will retry. Set to true to report this event type."
},
"slack_converted": {
"type": "boolean",
"description": "Reports when a person matches a conversion goal attributed to a a message. Set to true to report this event type."
}
},
"description": "Describes the slack events reported from Customer.io to a webhook."
}
slack_failed
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "A slack message failed."
}
}
}
],
"title": "failed"
}
slack_sent
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"content": {
"type": "string",
"description": "The of your slack message. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipient": {
"type": "string",
"description": "The channel or person that received the message, i.e. `#general`."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "A slack message was sent. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
}
slack_undeliverable
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"slack"
],
"type": "string",
"description": "The event relates to a Slack message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "failed"
}
sms_attempted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "An SMS could not be sent to the delivery provider, but will retry."
}
}
}
],
"title": "attempted"
}
sms_bounced
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"failure_message"
],
"properties": {
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"bounced"
],
"type": "string",
"description": "The delivery provider was unable to deliver an SMS message."
}
}
}
],
"title": "bounced"
}
sms_clicked
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"link_id",
"href"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "A recipient tapped a link in an SMS message they received."
}
}
}
],
"title": "clicked"
}
sms_converted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"converted"
],
"type": "string",
"description": "A person matched a conversion goal attributed to an SMS."
}
}
}
],
"title": "converted"
}
sms_delivered
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"delivered"
],
"type": "string",
"description": "An SMS notification was delivered to a recipient."
}
}
}
],
"title": "delivered"
}
sms_drafted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "An SMS notification was drafted."
}
}
}
],
"title": "drafted"
}
sms_event
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "An SMS notification was drafted."
}
}
}
],
"title": "drafted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "An SMS could not be sent to the delivery provider, but will retry."
}
}
}
],
"title": "attempted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"content": {
"type": "string",
"description": "The body of your message. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "An SMS notification was sent. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"delivered"
],
"type": "string",
"description": "An SMS notification was delivered to a recipient."
}
}
}
],
"title": "delivered"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"link_id",
"href"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "A recipient tapped a link in an SMS message they received."
}
}
}
],
"title": "clicked"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"converted"
],
"type": "string",
"description": "A person matched a conversion goal attributed to an SMS."
}
}
}
],
"title": "converted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"failure_message"
],
"properties": {
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
},
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"bounced"
],
"type": "string",
"description": "The delivery provider was unable to deliver an SMS message."
}
}
}
],
"title": "bounced"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "An SMS couldn't be sent to the delivery provider."
}
}
}
],
"title": "failed"
}
],
"title": "SMS",
"description": "Events pertaining to SMS notifications.",
"discriminator": {
"mapping": {
"sent": "#/components/schemas/sms_sent",
"failed": "#/components/schemas/sms_failed",
"bounced": "#/components/schemas/sms_bounced",
"clicked": "#/components/schemas/sms_clicked",
"drafted": "#/components/schemas/sms_drafted",
"attempted": "#/components/schemas/sms_attempted",
"converted": "#/components/schemas/sms_converted",
"delivered": "#/components/schemas/sms_delivered"
},
"propertyName": "metric"
}
}
sms_event_common
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
}
sms_events
{
"type": "object",
"properties": {
"sms_sent": {
"type": "boolean",
"description": "Reports when a message is sent from Customer.io to the delivery provider. Set to true to report this event type."
},
"sms_failed": {
"type": "boolean",
"description": "Reports when a message couldn't be sent to the delivery provider. Set to true to report this event type."
},
"sms_bounced": {
"type": "boolean",
"description": "Reports when the delivery provider is unable to deliver a message to the recipient. Set to true to report this event type."
},
"sms_clicked": {
"type": "boolean",
"description": "Reports when a person clicks a tracked link in a message. Set to true to report this event type."
},
"sms_drafted": {
"type": "boolean",
"description": "Reports when a message draft is created. Set to true to report this event type."
},
"sms_attempted": {
"type": "boolean",
"description": "Reports when a push notification could not be sent to the delivery provider will retry. Set to true to report this event type."
},
"sms_converted": {
"type": "boolean",
"description": "Reports when a person matches a conversion goal attributed to a a message. Set to true to report this event type."
},
"sms_delivered": {
"type": "boolean",
"description": "The delivery provider reports that the message is delivered. Set to true to report this event type."
}
},
"description": "Describes the SMS events reported from Customer.io to a webhook."
}
sms_failed
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "An SMS couldn't be sent to the delivery provider."
}
}
}
],
"title": "failed"
}
sms_recipient
{
"type": "string",
"example": "+15558675309",
"description": "The MSISDN (phone number) of the recipient."
}
sms_sent
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"content": {
"type": "string",
"description": "The body of your message. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipient": {
"type": "string",
"description": "The MSISDN (phone number) of the SMS recipient."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "An SMS notification was sent. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
}
}
}
],
"title": "sent"
}
sms_undeliverable
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"sms"
],
"type": "string",
"description": "The event relates to an SMS message."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "failed"
}
snippet
{
"type": "object",
"example": {
"name": "address",
"value": "<strong>My Company</strong></br>1234 Fake St<br/>Fake,NY<br/>10111",
"updated_at": 1582500000
},
"required": [
"name",
"value"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the snippet, must be unique."
},
"value": {
"type": "string",
"description": "The contents of the snippet."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"readOnly": true,
"description": "The last date-time the snippet was updated."
}
},
"description": "describes a piece of reusable content. You must provide a name for the snippet and the `value`—the content that appears in messages that use the snippet."
}
start
{
"type": "integer",
"format": "unix timestamp",
"example": 1517529600,
"description": "The unix timestamp representing the beginning of the export."
}
subject
{
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
}
subscription_topic_id
{
"type": "integer",
"example": 1,
"description": "The identifier of a subscription topic. Remember, subscription topics are assigned an incrementing number, starting at 1."
}
textWidget
{
"type": "object",
"required": [
"type",
"text"
],
"properties": {
"text": {
"type": "string",
"example": "$person.name",
"description": "The text you want to display."
},
"type": {
"enum": [
"textWidget"
],
"type": "string",
"description": "Defines the widget type."
},
"color": {
"type": "string",
"description": "The color you want to use for this content. You can only set values here that are defined under [**Content** > **In-App Messages**](https://fly.customer.io/env/last/in-app-messages)."
},
"style": {
"type": "string",
"description": "The style of text you want to display. You can only set values here that are defined under [**Content** > **In-App Messages**](https://fly.customer.io/env/last/in-app-messages)."
},
"maxLines": {
"type": "integer",
"description": "The maximum lines of text you want to display. Text over this limit is controlled by the `overflow` property. If unset, the message displays an unlimited number of lines."
},
"overflow": {
"enum": [
"ellipsis",
"fade",
"clip"
],
"type": "string",
"description": "Determines how to handle text that overflows the `maxLines` limit (if set). By default, we cut off overflowing text with ellipsis (`...`)."
},
"textAlign": {
"enum": [
"center",
"right",
"left",
"start",
"end",
"justify"
],
"type": "string",
"description": "How you want to align this text."
}
},
"description": "Displays text in your message."
}
track-metrics
{
"type": "object",
"required": [
"delivery_id"
],
"properties": {
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"delivery_id": {
"type": "string",
"example": "RPILAgUBcRhIBqSfeiIwdIYJKxTY",
"description": "The CIO-Delivery-ID from the notification that you want to associate the `event` with."
}
},
"description": "The base properties shared across multiple metric types."
}
tracked
{
"type": "boolean",
"default": true,
"description": "If true, Customer.io tracks opens and link clicks in your message."
}
transactionalActionObject
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 96,
"nullable": true,
"readOnly": true,
"description": "The identifier for an action."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"description": "The body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor."
},
"from": {
"type": "string",
"example": "sentFrom@example.com",
"readOnly": true,
"description": "The address that the message is from, relevant if the action `type` is `email`."
},
"name": {
"type": "string",
"example": "Receipt",
"readOnly": true,
"description": "The name of the transactional message."
},
"type": {
"enum": [
"email",
"push"
],
"type": "string",
"readOnly": true,
"description": "The type of message."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"from_id": {
"type": "integer",
"example": 1,
"description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"subject": {
"type": "string",
"example": "Did you get that thing I sent you?",
"description": "The subject line for an `email` action."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"body_amp": {
"type": "string",
"description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
},
"fake_bcc": {
"type": "boolean",
"readOnly": true,
"description": "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).\n"
},
"language": {
"type": "string",
"example": "fr",
"readOnly": true,
"description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"recipient": {
"type": "string",
"example": "{{customer.email}}",
"readOnly": true,
"description": "The recipient address for an action."
},
"reply_to_id": {
"type": "integer",
"example": 38,
"nullable": true,
"description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
},
"preprocessor": {
"enum": [
"premailer"
],
"type": "string",
"readOnly": true,
"description": "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."
},
"preheader_text": {
"type": "string",
"description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
}
}
}
transactionalObject
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 2,
"description": "The identifier Customer.io assigned to the transactional message"
},
"name": {
"type": "string",
"example": "password reset",
"description": "The name you set for the transactional message."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"description": {
"type": "string",
"example": "sends a temporary password and lets the customer reset their password.",
"description": "A description of the transactional message."
},
"queue_drafts": {
"type": "boolean",
"description": "If true, messages do not send automatically, and queue as drafts instead. You must send drafts through the *Deliveries & Drafts* page in the user interface."
},
"link_tracking": {
"type": "boolean",
"description": "If true, link tracking is enabled for this message."
},
"open_tracking": {
"type": "boolean",
"description": "If true, open-tracking is enabled for this message."
},
"hide_message_body": {
"type": "boolean",
"description": "If true, message contents are not retained in delivery history—you cannot recall the exact contents of the message."
},
"send_to_unsubscribed": {
"type": "boolean",
"description": "If true, people with an `unsubscribed` attribute set to `true` can trigger the message."
}
},
"description": "Contains information about a transactional message."
}
transactionalSharedEmailObject
{
"type": "object",
"properties": {
"to": {
"type": "string",
"example": "cool.person@example.com",
"description": "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.\n\nYou 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>`. \n"
},
"bcc": {
"type": "string",
"example": "bcc@example.com",
"description": "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."
},
"headers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "X-Mailgun-Tag",
"description": "name of header"
},
"value": {
"type": "string",
"example": "tag-name-for-tracking",
"description": "value of header"
}
}
},
"description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
},
"tracked": {
"type": "boolean",
"default": true,
"description": "If true, Customer.io tracks opens and link clicks in your message."
},
"fake_bcc": {
"type": "boolean",
"description": "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).\n"
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"description": "The address that recipients can reply to, if different from the `from` address."
},
"preheader": {
"type": "string",
"description": "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."
},
"body_plain": {
"type": "string",
"description": "By default, we generate a plaintext version of your message body for each delivery. Use this key to override the default plain text body."
},
"attachments": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": {
"type": "string",
"format": "base64",
"x-doNotRender": true,
"x-additionalPropertiesName": "Attachment Names"
}
},
"description": "A dictionary of attachments where the filename is the key and the value is the base64-encoded contents. The total size of all attachments must be less than 2 MB. Some filetype extensions are restricted.\n"
},
"disable_css_preprocessing": {
"type": "boolean",
"default": false,
"example": false,
"description": "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."
}
}
}
transactionalSharedObject
{
"type": "object",
"required": [
"to",
"identifiers"
],
"properties": {
"send_at": {
"type": "integer",
"description": "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."
},
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": 12345,
"description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n"
}
}
},
{
"type": "object",
"title": "email",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"example": "cool.person@example.com",
"description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`."
}
}
},
{
"type": "object",
"title": "cio_id",
"required": [
"cio_id"
],
"properties": {
"cio_id": {
"type": "string",
"example": 3000001,
"description": "A unique, immutable identifier for a person, set by Customer.io when you add a person."
}
}
}
],
"description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`."
},
"queue_draft": {
"type": "boolean",
"default": false,
"description": "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."
},
"message_data": {
"type": "object",
"example": {
"account_id": "123dj",
"password_reset_token": "abcde-12345-fghij-d888"
},
"description": "An object containing the key-value pairs referenced using liquid in your message.",
"additionalProperties": {
"description": "Insert key-values that you want to reference in your message here.",
"x-additionalPropertiesName": "Liquid Data"
}
},
"send_to_unsubscribed": {
"type": "boolean",
"default": true,
"description": "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`."
},
"disable_message_retention": {
"type": "boolean",
"default": false,
"description": "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`."
}
}
}
transactionalSharedPushObject
{
"type": "object",
"properties": {
"to": {
"enum": [
"all",
"last_used",
"$device_token"
],
"type": "string",
"default": "all",
"description": "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`)."
},
"link": {
"type": "string",
"description": "A deep link to open when the push is tapped. This overrides Link from the transactional template (referenced by `transactional_message_id`)."
},
"sound": {
"enum": [
"default",
"none"
],
"type": "string",
"default": "default",
"description": "**For iOS Only**: your notification can alert users with the device's default notification sound or play no sound at all. \n"
},
"title": {
"type": "string",
"description": "The title for your notification. This overrides the title of the transactional template (referenced by `transactional_message_id`)."
},
"message": {
"type": "string",
"description": "The message body for your notification. This overrides the notification body of the transactional template (referenced by `transactional_message_id`)."
},
"language": {
"type": "string",
"description": "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](https://customer.io/docs/api/app/)."
},
"image_url": {
"type": "string",
"description": "An image URL to show in the push. This overrides Image from the transactional template (referenced by `transactional_message_id`)."
},
"custom_data": {
"type": "object",
"description": "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": {
"allOf": [
{
"type": "object",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"description": "The device token."
}
}
},
{
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"enum": [
"ios",
"android"
],
"type": "string",
"description": "The device/messaging platform."
},
"last_used": {
"type": "integer",
"format": "unix timestamp",
"description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
},
"attributes": {
"type": "object",
"properties": {
"device_os": {
"type": "string",
"description": "The operating system, including the version, on the device."
},
"app_version": {
"type": "string",
"description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
},
"_last_status": {
"enum": [
"",
"bounced",
"sent",
"suppressed"
],
"type": "string",
"readOnly": true,
"description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
},
"device_model": {
"type": "string",
"description": "The model of the device a person uses."
},
"push_enabled": {
"enum": [
"true",
"false"
],
"type": "string",
"description": "If `\"true\"`, the device is opted-in and can receive push notifications."
},
"device_locale": {
"type": "string",
"description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
},
"cio_sdk_version": {
"type": "string",
"description": "The version of the Customer.io SDK in the app."
}
},
"description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
"additionalProperties": {
"type": "string",
"description": "Custom properties that you want to associate with the device.",
"x-additionalPropertiesName": "Custom Device Attributes"
}
}
},
"description": "Device information common to the v1 and v2 APIs."
}
],
"description": "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": {
"type": "object",
"properties": {
"ios": {
"oneOf": [
{
"type": "object",
"title": "FCM",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"required": [
"apns"
],
"properties": {
"apns": {
"type": "object",
"required": [
"payload"
],
"properties": {
"headers": {
"type": "object",
"description": "Headers defined by [Apple's payload reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) that you want to pass through FCM."
},
"payload": {
"type": "object",
"properties": {
"CIO": {
"type": "object",
"required": [
"push"
],
"properties": {
"push": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "A push payload for the iOS SDK."
}
},
"description": "Contains properties interpreted by the Customer.io iOS SDK."
},
"aps": {
"type": "object",
"properties": {
"alert": {
"oneOf": [
{
"type": "string",
"title": "Simple alert",
"description": "A simple alert message."
},
{
"type": "object",
"title": "Complex alert",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
},
"loc-key": {
"type": "string",
"description": "The key for a localized message string in your app’s Localizable.strings file."
},
"loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
},
"subtitle": {
"type": "string",
"description": "Additional information that explains the purpose of the notification."
},
"launch-image": {
"type": "string",
"description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
},
"title-loc-key": {
"type": "string",
"description": "The key for a localized title string in your app’s Localizable.strings files."
},
"title-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
},
"subtitle-loc-key": {
"type": "string",
"description": "The key for a localized subtitle string in your app’s Localizable.strings file."
},
"subtitle-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
}
}
}
]
},
"badge": {
"type": "integer",
"description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
},
"sound": {
"oneOf": [
{
"type": "string",
"title": "Regular alert",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
},
{
"type": "object",
"title": "Critical alert",
"properties": {
"name": {
"type": "string",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
},
"volume": {
"type": "number",
"description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
},
"critical": {
"type": "integer",
"description": "1 indicates critical. 0 is not critical."
}
}
}
]
},
"category": {
"type": "string",
"description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
},
"thread-id": {
"type": "string",
"description": "An identifier to group related notifications."
},
"mutable-content": {
"type": "integer",
"description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
},
"relevance-score": {
"type": "number",
"description": "A number between 0 and 1. The highest score is considered the \"most relevant\" and is featured in the notification summary."
},
"content-available": {
"type": "integer",
"description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
},
"target-content-id": {
"type": "string",
"description": "The identifier of the window brought forward."
},
"interruption-level": {
"enum": [
"passive",
"active",
"time-sensitive",
"critical"
],
"type": "string",
"description": "Indicates the importance and delivery timing of a notification."
}
},
"description": "A push payload intended for an iOS device."
}
},
"description": "Contains a push payload.",
"additionalProperties": {
"description": "Additional properties that you've set up your app to interpret outside of the Customer.io SDK.",
"x-additionalPropertiesName": "Custom key-value pairs"
}
}
},
"description": "Defines a payload for iOS devices sent through Firebase Cloud Messaging (FCM)."
}
},
"description": "The base object for all FCM payloads."
}
}
},
{
"type": "object",
"title": "APNS",
"properties": {
"CIO": {
"type": "object",
"required": [
"push"
],
"properties": {
"push": {
"type": "object",
"properties": {
"link": {
"type": "string",
"description": "A deep link (to a page in your app), or a link to a web page."
},
"image": {
"type": "string",
"description": "The URL of an HTTPS image that you want to use for your message."
}
},
"description": "Describes push notification options supported by the CIO SDK."
}
},
"description": "Contains options supported by the Customer.io SDK."
},
"aps": {
"type": "object",
"properties": {
"alert": {
"oneOf": [
{
"type": "string",
"title": "Simple alert",
"description": "A simple alert message."
},
{
"type": "object",
"title": "Complex alert",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
},
"loc-key": {
"type": "string",
"description": "The key for a localized message string in your app’s Localizable.strings file."
},
"loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
},
"subtitle": {
"type": "string",
"description": "Additional information that explains the purpose of the notification."
},
"launch-image": {
"type": "string",
"description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
},
"title-loc-key": {
"type": "string",
"description": "The key for a localized title string in your app’s Localizable.strings files."
},
"title-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
},
"subtitle-loc-key": {
"type": "string",
"description": "The key for a localized subtitle string in your app’s Localizable.strings file."
},
"subtitle-loc-args": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
}
}
}
]
},
"badge": {
"type": "integer",
"description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
},
"sound": {
"oneOf": [
{
"type": "string",
"title": "Regular alert",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
},
{
"type": "object",
"title": "Critical alert",
"properties": {
"name": {
"type": "string",
"description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
},
"volume": {
"type": "number",
"description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
},
"critical": {
"type": "integer",
"description": "1 indicates critical. 0 is not critical."
}
}
}
]
},
"category": {
"type": "string",
"description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
},
"thread-id": {
"type": "string",
"description": "An identifier to group related notifications."
},
"mutable-content": {
"type": "integer",
"description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
},
"relevance-score": {
"type": "number",
"description": "A number between 0 and 1. The highest score is considered the \"most relevant\" and is featured in the notification summary."
},
"content-available": {
"type": "integer",
"description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
},
"target-content-id": {
"type": "string",
"description": "The identifier of the window brought forward."
},
"interruption-level": {
"enum": [
"passive",
"active",
"time-sensitive",
"critical"
],
"type": "string",
"description": "Indicates the importance and delivery timing of a notification."
}
},
"description": "A push payload intended for an iOS device."
}
}
}
],
"description": "Your payload changes depending on whether you send to iOS devices through Google's Firebase Cloud Messaging (FCM) or Apple's Push Notification service (APNs)."
},
"android": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "object",
"properties": {
"data": {
"type": "object",
"description": "Contains key-value pairs that your app interprets.",
"additionalProperties": {
"type": "string",
"x-doNotRender": true,
"x-additionalPropertiesName": "Attachment Names"
}
},
"android": {
"type": "object",
"properties": {
"notification": {
"type": "object",
"properties": {
"tag": {
"type": "string",
"description": "Identifier to replace existing notifications in the notification drawer. If empty, each request creates a new notification.\n\nIf you specify a tag, and a notification with the same tag is already being shown, the new notification replaces the existing one in the notification drawer. \n"
},
"icon": {
"type": "string",
"description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
},
"color": {
"type": "string",
"description": "The notification's icon color in `#rrggbb` format."
},
"sound": {
"type": "string",
"description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
},
"body_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
},
"body_loc_key": {
"type": "string",
"description": "The key to the body string in the app's string resources that you want to use to localize the body text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
},
"click_action": {
"type": "string",
"description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
},
"title_loc_arg": {
"type": "string",
"description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
},
"title_loc_key": {
"type": "string",
"description": "The key to the title string in the app's string resources that you want to use to localize the title text to the user's current localization. See [String Resources](https://developer.android.com/guide/topics/resources/string-resource/) for more information."
}
},
"description": "Properties supported specifically by Android on FCM."
}
},
"description": "Contains custom push options for your notification."
},
"notification": {
"type": "object",
"properties": {
"body": {
"type": "string",
"description": "The body of your push notification."
},
"title": {
"type": "string",
"description": "The title of your push notification."
}
},
"description": "Contains the push body and title."
}
},
"description": "The parent object for Android custom push payloads."
}
},
"description": "A custom push payload for Android devices."
}
},
"description": "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`)."
}
}
}
trigger_event_id
{
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
trigger_id
{
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
}
updated
{
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
}
url
{
"type": "string",
"example": "http://example.com/webhook",
"description": "The URL of a webhook or action."
}
v1_cio_relationships
{
"type": "object",
"properties": {
"action": {
"enum": [
"add_relationships",
"delete_relationships"
],
"type": "string",
"description": "This determines whether the `relationships` array adds relationships to a person or removes them from a person."
},
"relationships": {
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"required": [
"identifiers"
],
"properties": {
"identifiers": {
"type": "object",
"required": [
"object_type_id",
"object_id"
],
"properties": {
"object_id": {
"type": "string",
"example": "acme",
"nullable": false,
"description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
}
}
},
{
"type": "object",
"properties": {
"relationship_attributes": {
"type": "object",
"example": {
"role": "admin"
},
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
}
]
},
"description": "Each object in the array represents a relationship you want to add to, or remove from, a person."
}
},
"description": "Describes relationships to an entity—a non-person object in Customer.io, like a company, educational course, job board, etc."
}
v2_cio_relationships
{
"type": "array",
"items": {
"type": "object",
"example": {
"identifiers": {
"id": "42X"
},
"relationship_attributes": {
"role": "admin",
"date_created": 1702480414
}
},
"properties": {
"identifiers": {
"oneOf": [
{
"type": "object",
"title": "id",
"properties": {
"id": {
"type": "string",
"example": "42",
"description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
}
},
{
"type": "object",
"title": "email",
"properties": {
"email": {
"type": "string",
"example": "test@example.com",
"description": "The email address of the customer."
}
}
},
{
"type": "object",
"title": "cio_id",
"properties": {
"cio_id": {
"type": "string",
"example": "a3000001",
"description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
}
}
}
]
},
"relationship_attributes": {
"type": "object",
"description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
"additionalProperties": {
"x-additionalPropertiesName": "Relationship Attributes"
}
}
}
},
"description": "The people you want to associate with an object. Each object in the array represents a person."
}
variant_id
{
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
}
webhookMetrics
{
"type": "object",
"properties": {
"2xx": {
"type": "integer",
"description": "The number of 2xx responses."
},
"3xx": {
"type": "integer",
"description": "The number of 3xx responses."
},
"4xx": {
"type": "integer",
"description": "The number of 4xx responses."
},
"5xx": {
"type": "integer",
"description": "The number of 5xx responses."
}
}
}
webhook_attempted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "A webhook failed to send, but will be retried."
}
}
}
],
"title": "attempted"
}
webhook_clicked
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"link_id",
"href"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipient": {
"type": "string",
"description": "The URL the webhook was sent to."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "The webhook recipient opened a tracked link in the webhook payload."
}
}
}
],
"title": "clicked"
}
webhook_customer_id
{
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
}
webhook_drafted
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "A webhook draft was created."
}
}
}
],
"title": "drafted"
}
webhook_event
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
"metric": {
"enum": [
"drafted"
],
"type": "string",
"description": "A webhook draft was created."
}
}
}
],
"title": "drafted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"attempted"
],
"type": "string",
"description": "A webhook failed to send, but will be retried."
}
}
}
],
"title": "attempted"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"content": {
"type": "string",
"description": "The stringified payload sent to your webhook address. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipient": {
"type": "string",
"description": "The URL the webhook was sent to."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "A webhook was sent from Customer.io. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your webhook."
}
}
}
],
"title": "sent"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient",
"link_id",
"href"
],
"properties": {
"href": {
"type": "string",
"example": "https://www.customer.io/docs",
"description": "The URL of the link that a person clicked."
},
"link_id": {
"type": "integer",
"example": 1,
"description": "The identifier for the tracked link that a person clicked or tapped."
},
"recipient": {
"type": "string",
"description": "The URL the webhook was sent to."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"clicked"
],
"type": "string",
"description": "The webhook recipient opened a tracked link in the webhook payload."
}
}
}
],
"title": "clicked"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "A webhook failed to send."
}
}
}
],
"title": "failed"
},
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A webhook/message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "failed"
}
],
"title": "Webhook",
"description": "Events pertaining to webhooks.",
"discriminator": {
"mapping": {
"sent": "#/components/schemas/webhook_sent",
"failed": "#/components/schemas/webhook_failed",
"clicked": "#/components/schemas/webhook_clicked",
"drafted": "#/components/schemas/webhook_drafted",
"attempted": "#/components/schemas/webhook_attempted",
"undeliverable": "#/components/schemas/webhook_undeliverable"
},
"propertyName": "metric"
}
}
webhook_event_common
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
}
webhook_events
{
"type": "object",
"properties": {
"webhook_sent": {
"type": "boolean",
"description": "Reports when a webhook is sent from Customer.io to the webhook URL. Set to true to report this event type."
},
"webhook_failed": {
"type": "boolean",
"description": "Reports when a webhook couldn't be sent to the webhook URL. Set to true to report this event type."
},
"webhook_clicked": {
"type": "boolean",
"description": "Reports when a tracked link in a webhook payload is opened. Set to true to report this event type."
},
"webhook_drafted": {
"type": "boolean",
"description": "A webhook draft is created. Set to true to report this event type."
},
"webhook_attempted": {
"type": "boolean",
"description": "Reports when a webhook could not be sent and will retry. Set to true to report this event type."
}
},
"description": "Describes the webhook events reported from Customer.io to a webhook."
}
webhook_failed
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"failed"
],
"type": "string",
"description": "A webhook failed to send."
}
}
}
],
"title": "failed"
}
webhook_identifiers
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
}
webhook_identifiers_id
{
"type": "string",
"example": "0200102",
"description": "The ID of the person the webhook event represents. If your workspace uses `email` as a unique key, this value was automatically generated by Customer.io."
}
webhook_sent
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"recipient"
],
"properties": {
"content": {
"type": "string",
"description": "The stringified payload sent to your webhook address. This key only appears if you enabled the *Body Content* option when setting up your webhook."
},
"recipient": {
"type": "string",
"description": "The URL the webhook was sent to."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"sent"
],
"type": "string",
"description": "A webhook was sent from Customer.io. If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your webhook."
}
}
}
],
"title": "sent"
}
webhook_timestamp
{
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
}
webhook_undeliverable
{
"allOf": [
{
"type": "object",
"required": [
"event_id",
"object_type",
"timestamp"
],
"properties": {
"event_id": {
"type": "string",
"example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
"description": "The unique ID of the reporting webhook event being sent."
},
"timestamp": {
"type": "integer",
"format": "unix timestamp",
"example": 1613063089,
"description": "The unix timestamp when the event occurred."
},
"object_type": {
"enum": [
"webhook"
],
"type": "string",
"description": "The event relates to a webhook."
}
}
},
{
"type": "object",
"required": [
"metric",
"data"
],
"properties": {
"data": {
"allOf": [
{
"oneOf": [
{
"type": "object",
"title": "API triggered broadcast",
"required": [
"trigger_id",
"broadcast_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"trigger_id": {
"type": "integer",
"example": 1,
"description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"broadcast_id": {
"type": "integer",
"example": 2,
"nullable": true,
"description": "The identifier for a broadcast."
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
}
}
},
{
"type": "object",
"title": "Campaign",
"required": [
"campaign_id",
"delivery_id",
"action_id",
"identifiers"
],
"properties": {
"action_id": {
"type": "integer",
"example": 96,
"readOnly": true,
"description": "The identifier for an action."
},
"journey_id": {
"type": "string",
"example": "01GW20GXAAXBKZD8J96M8FNV3R",
"description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
},
"campaign_id": {
"type": "integer",
"example": 5,
"nullable": true,
"description": "The identifier for a campaign."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"parent_action_id": {
"type": "integer",
"example": 1,
"readOnly": true,
"description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
},
"trigger_event_id": {
"type": "string",
"example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
"nullable": true,
"description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
}
}
},
{
"type": "object",
"title": "Newsletter",
"required": [
"newsletter_id",
"delivery_id",
"identifiers"
],
"properties": {
"content_id": {
"type": "integer",
"example": 3,
"description": "The identifier for a newsletter variant."
},
"customer_id": {
"type": "string",
"example": "42",
"deprecated": true,
"description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
},
"delivery_id": {
"type": "string",
"example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
"description": "The instance of a message sent to a person."
},
"identifiers": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"example": "42",
"nullable": true,
"description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
},
"email": {
"type": "string",
"example": "test@example.com",
"nullable": true,
"description": "The email address of the customer."
},
"cio_id": {
"type": "string",
"example": "d9c106000001",
"description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
}
},
"description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
},
"newsletter_id": {
"type": "integer",
"example": 10,
"nullable": true,
"description": "The identifier for a newsletter."
}
}
}
]
},
{
"type": "object",
"required": [
"failure_message"
],
"properties": {
"failure_message": {
"type": "string",
"example": "Something went wrong!",
"description": "Indicates the reason that an attempted message failed."
}
}
}
],
"description": "Contains information about the event, specific to the `object_type` and `metric`."
},
"metric": {
"enum": [
"undeliverable"
],
"type": "string",
"description": "A webhook/message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
}
}
}
],
"title": "failed"
}
widgetColor
{
"type": "string",
"description": "The color you want to use for this content. You can only set values here that are defined under [**Content** > **In-App Messages**](https://fly.customer.io/env/last/in-app-messages)."
}
widgetComponents
{
"type": "array",
"items": {
"type": "object"
},
"description": "An array of child components that you want to make available inside this widget."
}
widgetCrossAxisAlignment
{
"enum": [
"center",
"start",
"end",
"stretch",
"baseline"
],
"type": "string",
"description": "The crossAxisAlignment property supports the following options"
}
widgetHeight
{
"type": "integer",
"description": "The height of the component in pixels, if you want to constrain it. If you don't set a height or width, we'll scale your content to fit your message or container."
}
widgetMainAxisAlignment
{
"enum": [
"start",
"end",
"spaceBetween",
"spaceAround",
"spaceEvenly"
],
"type": "string",
"description": "The mainAxisAlignment property supports the following options."
}
widgetRadius
{
"type": "integer",
"description": "Sets the radius of corners for an item in pixels, similar to the `border-radius` CSS property."
}
widgetWidth
{
"type": "integer",
"description": "The width of the component in pixels, if you want to constrain it. If you don't set a height or width, we'll scale your content to fit your message or container."
}
workspace
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 13,
"description": "The id of the workspace."
},
"name": {
"type": "string",
"example": "Workspace 1",
"description": "The name of the workspace."
},
"people": {
"type": "integer",
"example": 25666,
"description": "The current count of people profiles in the workspace. Updates roughly every hour."
},
"objects": {
"type": "integer",
"example": 10,
"description": "The current count of object profiles in the workspace. Updates roughly every hour."
},
"object_types": {
"type": "integer",
"example": 4,
"description": "The current count of object types in the workspace. Updates roughly every hour."
},
"messages_sent": {
"type": "integer",
"example": 100202,
"description": "The count of [messages sent](https://customer.io/docs/api/app/) via any channel (email, SMS, in-app, push, slack) in the current billing period."
},
"billable_messages_sent": {
"type": "integer",
"example": 75124,
"description": "The count of [emails sent](https://customer.io/docs/api/app/) that are considered for billing in your current billing period. Ultimately, we only bill for the overages on your plan."
}
},
"description": "Contains workspace properties including the count of messages, people, and objects. Customer.io caches these counts, so your data may be up to two hours old."
}