---
title: "Reporting webhook format"
method: POST
path: "reportingWebhook"
---

# Reporting webhook format

`POST reportingWebhook` (webhook)

Customer.io sends events to your webhook URL in the following format. Events are generally organized by `object_type`—representing the message or Customer.io action (i.e. `email`, `sms`, etc)—and the specific `metric` pertaining to the type (i.e. `sent`, `bounced`, etc).

## Headers

- `x-cio-timestamp` integer, required
- `x-cio-signature` string, required

## Payload

- union
  - union — Events that occur when a customer subscribes or unsubscribes from your messages.
    - object — A person subscribed to messages from you—their `unsubscribed` attribute was set to `false`.
      - `metric` 'subscribed', required — The metric recorded by the event. For `customer` events, this is whether the customer explicitly subscribed or unsubscribed.
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'customer' | 'email' | 'sms' | 'push' | 'in_app' | 'slack' | 'webhook' | 'whatsapp', required — The channel that triggered the subscription change. If the subscription change wasn't triggered from a message, or we can't determine which message triggered the change, the `object_type` is `customer`.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `data` object, required — Contains information about the event, specific to the `object_type` and `metric`.
        - `customer_id` string, required — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
        - `email_address` string, nullable, required — The email address of the customer.
        - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
          - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
          - `email` string, nullable — The email address of the customer.
          - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
          - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
    - object — A person unsubscribed to messages from you—their `unsubscribed` attribute was set to `true`.
      - `metric` 'unsubscribed', required — The metric recorded by the event. For `customer` events, this is whether the customer explicitly subscribed or unsubscribed.
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'customer' | 'email' | 'sms' | 'push' | 'in_app' | 'slack' | 'webhook' | 'whatsapp', required — The channel that triggered the subscription change. If the subscription change wasn't triggered from a message, or we can't determine which message triggered the change, the `object_type` is `customer`.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `data` object, required — Contains information about the event, specific to the `object_type` and `metric`.
        - `customer_id` string, required — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
        - `email_address` string, nullable, required — The email address of the customer.
        - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
          - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
          - `email` string, nullable — The email address of the customer.
          - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
          - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
    - object — A person changed their subscription preferences through our subscription center or you changed their `cio_subscription_preferences` attribute values. Some fields in the `data` object change based on whether the message that resulted in the change originated from a broadcast, automation, or newsletter.
      - `metric` 'cio_subscription_preferences_changed', required — The event we're reporting to your webhook endpoint. In this case, a person changed their subscription preferences.
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type_type` 'customer' | 'email' | 'sms' | 'push' | 'in_app' | 'slack' | 'webhook' | 'whatsapp' — The channel that triggered the change to the person's subscription preferences. If the subscription change wasn't triggered from a message, or we can't determine which message triggered the change, the `object_type` is `customer`. Most subscription changes are triggered by `email` or are `customer` initiated.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `content` string — If you enable the *Include body content and headers in all Sent events* when you set up your reporting webhook, you'll see this field. It 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](/integrations/api/app/tag/subscription-center/getTopics/).
          - `customer_id` string, required — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `email_address` string, nullable, required — The email address of the customer.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `content` string — If you enable the *Include body content and headers in all Sent events* when you set up your reporting webhook, you'll see this field. It 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](/integrations/api/app/tag/subscription-center/getTopics/).
          - `customer_id` string, required — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `email_address` string, nullable, required — The email address of the customer.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `campaign_id` integer, required — The identifier for an automation.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `content` string — If you enable the *Include body content and headers in all Sent events* when you set up your reporting webhook, you'll see this field. It 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](/integrations/api/app/tag/subscription-center/getTopics/).
          - `customer_id` string, required — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `email_address` string, nullable, required — The email address of the customer.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
  - union — Events representing an email.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'email', required — The event relates to an email action.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'drafted', required — The metric recorded by the event. For `customer` events, this is whether the customer explicitly subscribed or unsubscribed.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'email', required — The event relates to an email action.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'attempted', required — An email could not be sent to the delivery provider and will be retried. The `failure_message` provides the reason for the failure.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'email', required — The event relates to an email action.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'sent', required — A message was successfully sent. If you enabled the *Include body content and headers in all Sent events* option, the payload includes the `content` of your message and, for emails with custom headers, a `data.headers` object alongside `content`.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `variables` VariablesEvent — User-defined variables associated with the message, as key-value pairs. This key only appears if you enabled the *Include body content and headers in all Sent events* (*Body Content*) option when setting up your webhook and the delivery has variables.
          - `content` string — The body content of your email. This key only appears if you enabled the *Include body content and headers in all Sent events* (*Body Content*) option when setting up your webhook.
          - `headers` object — The headers sent with your email, as a map of header name to an array of values. This key only appears if you enabled the *Include body content and headers in all Sent events* (*Body Content*) option when setting up your webhook and the message included custom headers. This is a sibling of `content`—it is not nested inside it.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `variables` VariablesEvent — User-defined variables associated with the message, as key-value pairs. This key only appears if you enabled the *Include body content and headers in all Sent events* (*Body Content*) option when setting up your webhook and the delivery has variables.
          - `content` string — The body content of your email. This key only appears if you enabled the *Include body content and headers in all Sent events* (*Body Content*) option when setting up your webhook.
          - `headers` object — The headers sent with your email, as a map of header name to an array of values. This key only appears if you enabled the *Include body content and headers in all Sent events* (*Body Content*) option when setting up your webhook and the message included custom headers. This is a sibling of `content`—it is not nested inside it.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `variables` VariablesEvent — User-defined variables associated with the message, as key-value pairs. This key only appears if you enabled the *Include body content and headers in all Sent events* (*Body Content*) option when setting up your webhook and the delivery has variables.
          - `content` string — The body content of your email. This key only appears if you enabled the *Include body content and headers in all Sent events* (*Body Content*) option when setting up your webhook.
          - `headers` object — The headers sent with your email, as a map of header name to an array of values. This key only appears if you enabled the *Include body content and headers in all Sent events* (*Body Content*) option when setting up your webhook and the message included custom headers. This is a sibling of `content`—it is not nested inside it.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `variables` VariablesEvent — User-defined variables associated with the message, as key-value pairs. This key only appears if you enabled the *Include body content and headers in all Sent events* (*Body Content*) option when setting up your webhook and the delivery has variables.
          - `content` string — The body content of your email. This key only appears if you enabled the *Include body content and headers in all Sent events* (*Body Content*) option when setting up your webhook.
          - `headers` object — The headers sent with your email, as a map of header name to an array of values. This key only appears if you enabled the *Include body content and headers in all Sent events* (*Body Content*) option when setting up your webhook and the message included custom headers. This is a sibling of `content`—it is not nested inside it.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'email', required — The event relates to an email action.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'delivered', required — A message was successfully delivered to a recipient.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'email', required — The event relates to an email action.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'opened', required — An email was opened.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `proxied` boolean — If true, the email was fetched by a proxy to hide the user identity, IP address, etc.
          - `prefetched` boolean — If true, the email was opened by Gmail, Apple Privacy Protection, or a user agent identified as a machine.
          - `synthetic` boolean — If true, Customer.io inferred the open event because we tracked a click event before we registered an open event (and a link in an email can't be clicked without the email being opened). This does not necessarily mean that the open was machine-oriented. The click—and therefore, the open—could have originated from either a machine or a person.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `proxied` boolean — If true, the email was fetched by a proxy to hide the user identity, IP address, etc.
          - `prefetched` boolean — If true, the email was opened by Gmail, Apple Privacy Protection, or a user agent identified as a machine.
          - `synthetic` boolean — If true, Customer.io inferred the open event because we tracked a click event before we registered an open event (and a link in an email can't be clicked without the email being opened). This does not necessarily mean that the open was machine-oriented. The click—and therefore, the open—could have originated from either a machine or a person.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `proxied` boolean — If true, the email was fetched by a proxy to hide the user identity, IP address, etc.
          - `prefetched` boolean — If true, the email was opened by Gmail, Apple Privacy Protection, or a user agent identified as a machine.
          - `synthetic` boolean — If true, Customer.io inferred the open event because we tracked a click event before we registered an open event (and a link in an email can't be clicked without the email being opened). This does not necessarily mean that the open was machine-oriented. The click—and therefore, the open—could have originated from either a machine or a person.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `proxied` boolean — If true, the email was fetched by a proxy to hide the user identity, IP address, etc.
          - `prefetched` boolean — If true, the email was opened by Gmail, Apple Privacy Protection, or a user agent identified as a machine.
          - `synthetic` boolean — If true, Customer.io inferred the open event because we tracked a click event before we registered an open event (and a link in an email can't be clicked without the email being opened). This does not necessarily mean that the open was machine-oriented. The click—and therefore, the open—could have originated from either a machine or a person.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'email', required — The event relates to an email action.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'clicked', required — A tracked link in an email was clicked.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `href` string, required — The URL of the link that a person clicked.
          - `link_id` integer, required — The identifier for the tracked link that a person clicked or tapped.
          - `machine` boolean — If true, the click was generated by a machine.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `href` string, required — The URL of the link that a person clicked.
          - `link_id` integer, required — The identifier for the tracked link that a person clicked or tapped.
          - `machine` boolean — If true, the click was generated by a machine.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `href` string, required — The URL of the link that a person clicked.
          - `link_id` integer, required — The identifier for the tracked link that a person clicked or tapped.
          - `machine` boolean — If true, the click was generated by a machine.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `href` string, required — The URL of the link that a person clicked.
          - `link_id` integer, required — The identifier for the tracked link that a person clicked or tapped.
          - `machine` boolean — If true, the click was generated by a machine.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'email', required — The event relates to an email action.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'converted', required — A person matched conversion criteria attributed to an email.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'email', required — The event relates to an email action.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'unsubscribed', required — The recipient unsubscribed based on a particular message.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'email', required — The event relates to an email action.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'bounced', required — The delivery provider could not deliver an email.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'email', required — The event relates to an email action.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'dropped', required — Customer.io did not send an email because it was addressed to a person who was suppressed.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'email', required — The event relates to an email action.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'spammed', required — A recipient marked an email as spam.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'email', required — The event relates to an email action.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'failed', required — An email couldn't be sent to the delivery provider.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'email', required — The event relates to an email action.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'undeliverable', required — 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.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `subject` string, required — The subject of the email.
          - `recipient` string, required — The recipient address for an action.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
  - union — Events representing a push notification.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'push', required — The event relates to an push notification.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'drafted', required — A push notification was drafted.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `app_id` integer — The ID of the app that the push was sent to. Useful when your workspace has more than one app.
          - `related_delivery_ids` string[] — When a push matches multiple devices for a person, we create an individual delivery for each device. These are the IDs of the other deliveries created for the same push; the list doesn't include this event's own `delivery_id`.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `app_id` integer — The ID of the app that the push was sent to. Useful when your workspace has more than one app.
          - `related_delivery_ids` string[] — When a push matches multiple devices for a person, we create an individual delivery for each device. These are the IDs of the other deliveries created for the same push; the list doesn't include this event's own `delivery_id`.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `app_id` integer — The ID of the app that the push was sent to. Useful when your workspace has more than one app.
          - `related_delivery_ids` string[] — When a push matches multiple devices for a person, we create an individual delivery for each device. These are the IDs of the other deliveries created for the same push; the list doesn't include this event's own `delivery_id`.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `app_id` integer — The ID of the app that the push was sent to. Useful when your workspace has more than one app.
          - `related_delivery_ids` string[] — When a push matches multiple devices for a person, we create an individual delivery for each device. These are the IDs of the other deliveries created for the same push; the list doesn't include this event's own `delivery_id`.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'push', required — The event relates to an push notification.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'attempted', required — A push notification was attempted but unsuccessful. This generally means that we'll try again.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `app_id` integer — The ID of the app that the push was sent to. Useful when your workspace has more than one app.
          - `related_delivery_ids` string[] — When a push matches multiple devices for a person, we create an individual delivery for each device. These are the IDs of the other deliveries created for the same push; the list doesn't include this event's own `delivery_id`.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `app_id` integer — The ID of the app that the push was sent to. Useful when your workspace has more than one app.
          - `related_delivery_ids` string[] — When a push matches multiple devices for a person, we create an individual delivery for each device. These are the IDs of the other deliveries created for the same push; the list doesn't include this event's own `delivery_id`.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `app_id` integer — The ID of the app that the push was sent to. Useful when your workspace has more than one app.
          - `related_delivery_ids` string[] — When a push matches multiple devices for a person, we create an individual delivery for each device. These are the IDs of the other deliveries created for the same push; the list doesn't include this event's own `delivery_id`.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `app_id` integer — The ID of the app that the push was sent to. Useful when your workspace has more than one app.
          - `related_delivery_ids` string[] — When a push matches multiple devices for a person, we create an individual delivery for each device. These are the IDs of the other deliveries created for the same push; the list doesn't include this event's own `delivery_id`.
          - `failure_message` string, required — Indicates the reason that an attempted message failed.
    - object
      - `event_id` string, required — The unique ID of the reporting webhook event being sent.
      - `object_type` 'push', required — The event relates to an push notification.
      - `timestamp` integer, required — The unix timestamp when the event occurred.
      - `metric` 'delivered', required — A push notification was delivered to a recipient device.
      - `data` union, required
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `trigger_id` integer, required — The trigger ID returned by the [Trigger Broadcast API](/integrations/api/app/tag/send-messages/triggerBroadcast/).
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `broadcast_id` integer, required — The identifier for a broadcast.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `broadcast_name` string — The name of the broadcast. Omitted when the name isn't available—for example, if the broadcast was deleted.
          - `broadcast_tags` string[] — The tags on the broadcast, as an array of tag names. Omitted when the broadcast has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `app_id` integer — The ID of the app that the push was sent to. Useful when your workspace has more than one app.
          - `related_delivery_ids` string[] — When a push matches multiple devices for a person, we create an individual delivery for each device. These are the IDs of the other deliveries created for the same push; the list doesn't include this event's own `delivery_id`.
          - `recipients` object[], required
            - `device_id` string, required — The device identifier/token.
            - `device_platform` 'ios' | 'android' — The device platform—ios or android.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `campaign_id` integer, required — The identifier for an automation.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `action_id` integer, required — The identifier for an action.
          - `journey_id` string — The ID for the path a person went through in an automation or API Triggered Broadcast workflow.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `parent_action_id` integer — The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
          - `trigger_event_id` string — The id of the event that triggered an event-triggered automation (not an API-triggered broadcast).
          - `campaign_name` string — The name of the automation.
          - `campaign_tags` string[] — The tags on the automation, as an array of tag names. Omitted when the automation has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `app_id` integer — The ID of the app that the push was sent to. Useful when your workspace has more than one app.
          - `related_delivery_ids` string[] — When a push matches multiple devices for a person, we create an individual delivery for each device. These are the IDs of the other deliveries created for the same push; the list doesn't include this event's own `delivery_id`.
          - `recipients` object[], required
            - `device_id` string, required — The device identifier/token.
            - `device_platform` 'ios' | 'android' — The device platform—ios or android.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `newsletter_id` integer, required — The identifier for a newsletter.
          - `content_id` integer — The identifier for a newsletter variant.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `newsletter_name` string — The name of the newsletter. Omitted when the name isn't available—for example, if the newsletter was deleted.
          - `newsletter_tags` string[] — The tags on the newsletter, as an array of tag names. Omitted when the newsletter has no tags or the tags aren't available.
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `app_id` integer — The ID of the app that the push was sent to. Useful when your workspace has more than one app.
          - `related_delivery_ids` string[] — When a push matches multiple devices for a person, we create an individual delivery for each device. These are the IDs of the other deliveries created for the same push; the list doesn't include this event's own `delivery_id`.
          - `recipients` object[], required
            - `device_id` string, required — The device identifier/token.
            - `device_platform` 'ios' | 'android' — The device platform—ios or android.
        - object — Contains information about the event, specific to the `object_type` and `metric`.
          - `customer_id` string — The ID of the person the webhook event occurred to. Blank if the person in question has been deleted. While webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.
          - `delivery_id` string, required — The instance of a message sent to a person.
          - `identifiers` WebhookIdentifiers, required — The person the event represents. This object contains all of the identifiers enabled in your workspace, even if they aren't set for the person. If your workspace supports multiple identifiers, this object contains `cio_id` plus each enabled identifier—`id`, `email`, and (if enabled) `phone`. Each of these can be null when the person doesn't have that identifier set. Otherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.
            - `id` string, nullable, required — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
            - `email` string, nullable — The email address of the customer.
            - `phone` string, nullable — The person's phone number. This key only appears if your workspace has phone enabled as an identifier.
            - `cio_id` string — The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers.
          - `transactional_message_id` unknown, required
          - `template_id` integer — The ID of the template used to render the message. A message's content can change over its lifetime; this is the template used for this delivery. For one-time sends (newsletters), this matches `content_id`.
          - `app_id` integer — The ID of the app that the push was sent to. Useful when your workspace has more than one app.
          - `related_delivery_ids` string[] — When a push matches multiple devices for a person, we create an individual delivery for each device. These are the IDs of the other deliveries created for the same push; the list doesn't include this event's own `delivery_id`.
          - `recipients` object[], required
            - `device_id` string, required — The device identifier/token.
- … truncated; see the full OpenAPI document linked below

---

[API](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference.md) · [All operations](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/customer/customer-io-journeys-api-reference/revisions/4b391af7cb06/schema)
