object identify_person
{
  "allOf": [
    {
      "type": "object",
      "required": [
        "type",
        "identifiers"
      ],
      "properties": {
        "type": {
          "enum": [
            "person"
          ],
          "type": "string",
          "description": "The operation modifies a person in Customer.io"
        },
        "identifiers": {
          "oneOf": [
            {
              "type": "object",
              "title": "id",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "example": "42",
                  "description": "The ID of a customer profile, analogous to a \"person\" in the UI."
                }
              }
            },
            {
              "type": "object",
              "title": "email",
              "required": [
                "email"
              ],
              "properties": {
                "email": {
                  "type": "string",
                  "example": "test@example.com",
                  "description": "The email address of the customer."
                }
              }
            },
            {
              "type": "object",
              "title": "cio_id",
              "required": [
                "cio_id"
              ],
              "properties": {
                "cio_id": {
                  "type": "string",
                  "example": "a3000001",
                  "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
                }
              }
            }
          ],
          "description": "The person you want to perform an action for—one of either `id`, `email`, or `cio_id`. You cannot pass multiple identifiers."
        }
      }
    },
    {
      "type": "object",
      "required": [
        "action"
      ],
      "properties": {
        "action": {
          "enum": [
            "identify"
          ],
          "type": "string",
          "description": "Indicates that the operation will `identify` the the item of the specified `type`."
        },
        "attributes": {
          "type": "object",
          "properties": {
            "cio_subscription_preferences": {
              "type": "object",
              "example": {
                "topic_1": true,
                "topic_2": false,
                "topic_3": true
              },
              "properties": {
                "topics": {
                  "type": "object",
                  "description": "Contains active topics in your workspace, named `topic_<id>`.",
                  "additionalProperties": {
                    "type": "boolean",
                    "description": "Each property is a boolean named `topic_<id>`. Topic `id` values begin at `1` and increment for each new topic. You can find your topic ids in [Workspace Settings](https://fly.customer.io/workspaces/last/settings/subscription_center/topics) or by querying our [App API](https://customer.io/docs/api/app/#operation/getTopics). For each boolean, `true` means that a person is subscribed to the topic; false means they are unsubscribed. An empty or missing value reverts to the default preference for the topic (opt-in or opt-out).",
                    "x-additionalPropertiesName": "topic_<id>"
                  }
                }
              },
              "description": "Stores your audience's subscription preferences if you enable our [subscription center](https://customer.io/docs/api/app/) feature. These items are set automatically when people use the unsubscribe link in your messages, but you can set preferences outside the subscription flow. To update select topic preferences while preserving those set for other topics, use JSON dot notation `\"cio_subscription_preferences.topics.topic_<topic ID>\":<boolean>`."
            }
          },
          "description": "Attributes that you want to add or update for this person."
        },
        "cio_relationships": {
          "type": "array",
          "items": {
            "allOf": [
              {
                "type": "object",
                "required": [
                  "identifiers"
                ],
                "properties": {
                  "identifiers": {
                    "type": "object",
                    "required": [
                      "object_type_id",
                      "object_id"
                    ],
                    "properties": {
                      "object_id": {
                        "type": "string",
                        "example": "acme",
                        "nullable": false,
                        "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
                      },
                      "object_type_id": {
                        "type": "string",
                        "example": "1",
                        "nullable": false,
                        "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
                      }
                    },
                    "description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
                  }
                }
              },
              {
                "type": "object",
                "properties": {
                  "relationship_attributes": {
                    "type": "object",
                    "example": {
                      "role": "admin"
                    },
                    "description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                    "additionalProperties": {
                      "x-additionalPropertiesName": "Relationship Attributes"
                    }
                  }
                }
              }
            ]
          },
          "description": "Each object in the array represents a relationship you want to add to, or remove from, a person."
        }
      }
    }
  ],
  "title": "identify",
  "description": "Add or update a person."
}
object imageWidget
{
  "type": "object",
  "required": [
    "type",
    "image"
  ],
  "properties": {
    "fit": {
      "enum": [
        "none",
        "fitWidth",
        "cover",
        "contain",
        "scaleDown",
        "fill",
        "fitHeight"
      ],
      "type": "string",
      "description": "Determines how the image fits your message. Defaults to `cover`."
    },
    "type": {
      "enum": [
        "imageWidget"
      ],
      "type": "string",
      "description": "Defines the widget type."
    },
    "image": {
      "example": "$person.imageUrl",
      "description": "The URL of the image that you want ot use in your message."
    },
    "width": {
      "type": "integer",
      "description": "The width of the component in pixels, if you want to constrain it. If you don't set a height or width, we'll scale your content to fit your message or container."
    },
    "height": {
      "type": "integer",
      "description": "The height of the component in pixels, if you want to constrain it. If you don't set a height or width, we'll scale your content to fit your message or container."
    },
    "cornerRadius": {
      "type": "integer",
      "description": "Sets the radius of corners for an item in pixels, similar to the `border-radius` CSS property."
    },
    "fadeInDuration": {
      "type": "integer",
      "description": "The durration for the image to fade in, in milliseconds, similar to the `fadeIn` CSS transition property."
    }
  },
  "description": "Displays an image. You can provide the URL of an image. Or, if you use the template designer, you can upload an image and host it directly."
}
string import_description
{
  "type": "string",
  "description": "A helpful description that can help you find and recognize your import operation."
}
string import_identifier
{
  "enum": [
    "id",
    "email"
  ],
  "type": "string",
  "description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
}
string import_name
{
  "type": "string",
  "description": "A friendly name for your import. This helps you identify your import."
}
object import_object
{
  "type": "object",
  "example": {
    "id": 30,
    "name": "account-object-import",
    "type": "object",
    "error": "possible error - The specified Object Type does not exist.",
    "state": "imported",
    "created_at": 1706081641,
    "updated_at": 1706081645,
    "description": "importing accounts",
    "rows_imported": 3,
    "object_type_id": 1,
    "rows_to_import": 3,
    "data_to_process": "all",
    "people_to_process": "all"
  },
  "properties": {
    "id": {
      "type": "integer",
      "description": "This is the `import_id` you'll use if you want to [lookup your import operation](https://customer.io/docs/api/app/)."
    },
    "name": {
      "type": "string",
      "description": "A friendly name for your import. This helps you identify your import."
    },
    "type": {
      "enum": [
        "people",
        "event",
        "object",
        "relationship"
      ],
      "type": "string",
      "description": "The type of import."
    },
    "error": {
      "type": "string",
      "description": "If your import fails, this helps you understand why."
    },
    "state": {
      "enum": [
        "preprocessing",
        "preprocessed",
        "validating",
        "validated",
        "importing",
        "imported",
        "failed",
        "canceled"
      ],
      "type": "string",
      "description": "The state of the import—whether your import is being processed, fully completed (`imported`), or if it failed."
    },
    "created_at": {
      "type": "integer",
      "format": "unix timestamp",
      "example": 1552341937,
      "readOnly": true,
      "description": "The date time when the referenced ID was created."
    },
    "identifier": {
      "enum": [
        "id",
        "email"
      ],
      "type": "string",
      "description": "The type of identifier you used to identify people in your CSV. Not applicable for object imports."
    },
    "updated_at": {
      "type": "integer",
      "format": "unix timestamp",
      "example": 1552341937,
      "readOnly": true,
      "description": "The date time when the referenced ID was last updated."
    },
    "description": {
      "type": "string",
      "description": "A helpful description that can help you find and recognize your import operation."
    },
    "rows_imported": {
      "type": "integer",
      "description": "The number of rows we imported from the CSV."
    },
    "object_type_id": {
      "type": "string",
      "example": "1",
      "nullable": false,
      "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Only applies to object imports."
    },
    "rows_to_import": {
      "type": "integer",
      "description": "The total number of importable rows we found in the CSV."
    },
    "data_to_process": {
      "enum": [
        "all",
        "only_new",
        "only_existing"
      ],
      "type": "string",
      "description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
    },
    "people_to_process": {
      "enum": [
        "all",
        "only_new",
        "only_existing"
      ],
      "type": "string",
      "description": "Returned for people and event imports, even if you imported using the field `data_to_process`. This field will be deprecated soon.\n"
    }
  },
  "description": "Represents an import operation."
}
object import_request
{
  "oneOf": [
    {
      "type": "object",
      "title": "people",
      "required": [
        "data_file_url",
        "name",
        "type",
        "identifier"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "A friendly name for your import. This helps you identify your import."
        },
        "type": {
          "enum": [
            "people"
          ],
          "type": "string",
          "description": "The type of import."
        },
        "identifier": {
          "enum": [
            "id",
            "email"
          ],
          "type": "string",
          "description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
        },
        "description": {
          "type": "string",
          "description": "A helpful description that can help you find and recognize your import operation."
        },
        "data_file_url": {
          "type": "string",
          "description": "The URL or path to the CSV file you want to import."
        },
        "data_to_process": {
          "enum": [
            "all",
            "only_new",
            "only_existing"
          ],
          "type": "string",
          "description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
        }
      },
      "description": "Contains your import parameters."
    },
    {
      "type": "object",
      "title": "event",
      "required": [
        "data_file_url",
        "name",
        "type",
        "identifier"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "A friendly name for your import. This helps you identify your import."
        },
        "type": {
          "enum": [
            "event"
          ],
          "type": "string",
          "description": "The type of import."
        },
        "identifier": {
          "enum": [
            "id",
            "email"
          ],
          "type": "string",
          "description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
        },
        "description": {
          "type": "string",
          "description": "A helpful description that can help you find and recognize your import operation."
        },
        "data_file_url": {
          "type": "string",
          "description": "The URL or path to the CSV file you want to import."
        },
        "data_to_process": {
          "enum": [
            "all",
            "only_new",
            "only_existing"
          ],
          "type": "string",
          "description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
        }
      },
      "description": "Contains your import parameters."
    },
    {
      "type": "object",
      "title": "relationship",
      "required": [
        "data_file_url",
        "name",
        "type",
        "identifier",
        "object_type_id"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "A friendly name for your import. This helps you identify your import."
        },
        "type": {
          "enum": [
            "relationship"
          ],
          "type": "string",
          "description": "The type of import."
        },
        "identifier": {
          "enum": [
            "id",
            "email"
          ],
          "type": "string",
          "description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
        },
        "description": {
          "type": "string",
          "description": "A helpful description that can help you find and recognize your import operation."
        },
        "data_file_url": {
          "type": "string",
          "description": "The URL or path to the CSV file you want to import."
        },
        "data_to_process": {
          "enum": [
            "all",
            "only_new",
            "only_existing"
          ],
          "type": "string",
          "description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
        }
      },
      "description": "Contains your import parameters."
    },
    {
      "type": "object",
      "title": "object",
      "required": [
        "data_file_url",
        "name",
        "type",
        "object_type_id"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "A friendly name for your import. This helps you identify your import."
        },
        "type": {
          "enum": [
            "object"
          ],
          "type": "string",
          "description": "The type of import."
        },
        "description": {
          "type": "string",
          "description": "A helpful description that can help you find and recognize your import operation."
        },
        "data_file_url": {
          "type": "string",
          "description": "The URL or path to the CSV file you want to import."
        },
        "object_type_id": {
          "type": "string",
          "example": "1",
          "nullable": false,
          "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
        },
        "data_to_process": {
          "enum": [
            "all",
            "only_new",
            "only_existing"
          ],
          "type": "string",
          "description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
        }
      },
      "description": "Contains your import parameters."
    }
  ]
}
string import_state
{
  "enum": [
    "preprocessing",
    "preprocessed",
    "validating",
    "validated",
    "importing",
    "imported",
    "failed",
    "canceled"
  ],
  "type": "string",
  "description": "The state of the import—whether your import is being processed, fully completed (`imported`), or if it failed."
}
string import_type
{
  "enum": [
    "people",
    "event",
    "object",
    "relationship"
  ],
  "type": "string",
  "description": "The type of import."
}
object inAppMessageActionEvent
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "in-app:message-action"
      ],
      "type": "string",
      "description": "Defines the event type."
    },
    "detail": {
      "type": "object",
      "properties": {
        "messageId": {
          "type": "string",
          "description": "Identifier string of the in-app message."
        },
        "actionName": {
          "type": "string",
          "description": "The name of the action specified when building the in-app message."
        },
        "deliveryId": {
          "type": "string",
          "description": "Delivery Id for the corresponding in-app message (not present in test message)."
        },
        "actionValue": {
          "type": "string",
          "description": "The type of action that triggered the event."
        }
      }
    }
  },
  "description": "Event object passed to the listener function when user performs an action in the in-app message."
}
object inAppMessageDismissedEvent
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "in-app:message-dismissed"
      ],
      "type": "string",
      "description": "Defines the event type."
    },
    "detail": {
      "type": "object",
      "properties": {
        "messageId": {
          "type": "string",
          "description": "Identifier string of the in-app message."
        },
        "deliveryId": {
          "type": "string",
          "description": "Delivery Id for the corresponding in-app message (not present in test message)."
        }
      },
      "description": "An object containing message specific data depending on the event type."
    }
  },
  "description": "Event object passed to the listener function when user dismisses an in-app message."
}
object inAppMessageErrorEvent
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "in-app:message-error"
      ],
      "type": "string",
      "description": "Defines the event type."
    },
    "detail": {
      "type": "object",
      "properties": {
        "messageId": {
          "type": "string",
          "description": "Identifier string of the in-app message."
        },
        "deliveryId": {
          "type": "string",
          "description": "Delivery Id for the corresponding in-app message (not present in test message)."
        }
      },
      "description": "An object containing message specific data depending on the event type."
    }
  },
  "description": "Event object passed to the listener function when an error occurs."
}
object inAppMessageEventDetail
{
  "type": "object",
  "properties": {
    "messageId": {
      "type": "string",
      "description": "Identifier string of the in-app message."
    },
    "deliveryId": {
      "type": "string",
      "description": "Delivery Id for the corresponding in-app message (not present in test message)."
    }
  },
  "description": "An object containing message specific data depending on the event type."
}
object inAppMessageOpenedEvent
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "in-app:message-opened"
      ],
      "type": "string",
      "description": "Defines the event type."
    },
    "detail": {
      "type": "object",
      "properties": {
        "messageId": {
          "type": "string",
          "description": "Identifier string of the in-app message."
        },
        "deliveryId": {
          "type": "string",
          "description": "Delivery Id for the corresponding in-app message (not present in test message)."
        }
      },
      "description": "An object containing message specific data depending on the event type."
    }
  },
  "description": "Event object passed to the listener function when user is shown an in-app message."
}
object in_app_attempted
{
  "allOf": [
    {
      "type": "object",
      "required": [
        "event_id",
        "object_type",
        "timestamp"
      ],
      "properties": {
        "event_id": {
          "type": "string",
          "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
          "description": "The unique ID of the reporting webhook event being sent."
        },
        "timestamp": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1613063089,
          "description": "The unix timestamp when the event occurred."
        },
        "object_type": {
          "enum": [
            "in_app"
          ],
          "type": "string",
          "description": "The event relates to an in-app message."
        }
      }
    },
    {
      "type": "object",
      "required": [
        "metric",
        "data"
      ],
      "properties": {
        "data": {
          "allOf": [
            {
              "oneOf": [
                {
                  "type": "object",
                  "title": "API triggered broadcast",
                  "required": [
                    "trigger_id",
                    "broadcast_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "trigger_id": {
                      "type": "integer",
                      "example": 1,
                      "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "broadcast_id": {
                      "type": "integer",
                      "example": 2,
                      "nullable": true,
                      "description": "The identifier for a broadcast."
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Campaign",
                  "required": [
                    "campaign_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "campaign_id": {
                      "type": "integer",
                      "example": 5,
                      "nullable": true,
                      "description": "The identifier for a campaign."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    },
                    "trigger_event_id": {
                      "type": "string",
                      "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                      "nullable": true,
                      "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Newsletter",
                  "required": [
                    "newsletter_id",
                    "delivery_id",
                    "identifiers"
                  ],
                  "properties": {
                    "content_id": {
                      "type": "integer",
                      "example": 3,
                      "description": "The identifier for a newsletter variant."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "newsletter_id": {
                      "type": "integer",
                      "example": 10,
                      "nullable": true,
                      "description": "The identifier for a newsletter."
                    }
                  }
                }
              ]
            },
            {
              "type": "object",
              "required": [
                "failure_message"
              ],
              "properties": {
                "failure_message": {
                  "type": "string",
                  "example": "Something went wrong!",
                  "description": "Indicates the reason that an attempted message failed."
                }
              }
            }
          ],
          "description": "Contains information about the event, specific to the `object_type` and `metric`."
        },
        "metric": {
          "enum": [
            "attempted"
          ],
          "type": "string",
          "description": "An in-app message failed to send, but will be retried."
        }
      }
    }
  ],
  "title": "attempted"
}
object in_app_clicked
{
  "allOf": [
    {
      "type": "object",
      "required": [
        "event_id",
        "object_type",
        "timestamp"
      ],
      "properties": {
        "event_id": {
          "type": "string",
          "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
          "description": "The unique ID of the reporting webhook event being sent."
        },
        "timestamp": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1613063089,
          "description": "The unix timestamp when the event occurred."
        },
        "object_type": {
          "enum": [
            "in_app"
          ],
          "type": "string",
          "description": "The event relates to an in-app message."
        }
      }
    },
    {
      "type": "object",
      "required": [
        "metric",
        "data"
      ],
      "properties": {
        "data": {
          "allOf": [
            {
              "oneOf": [
                {
                  "type": "object",
                  "title": "API triggered broadcast",
                  "required": [
                    "trigger_id",
                    "broadcast_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "trigger_id": {
                      "type": "integer",
                      "example": 1,
                      "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "broadcast_id": {
                      "type": "integer",
                      "example": 2,
                      "nullable": true,
                      "description": "The identifier for a broadcast."
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Campaign",
                  "required": [
                    "campaign_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "campaign_id": {
                      "type": "integer",
                      "example": 5,
                      "nullable": true,
                      "description": "The identifier for a campaign."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    },
                    "trigger_event_id": {
                      "type": "string",
                      "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                      "nullable": true,
                      "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Newsletter",
                  "required": [
                    "newsletter_id",
                    "delivery_id",
                    "identifiers"
                  ],
                  "properties": {
                    "content_id": {
                      "type": "integer",
                      "example": 3,
                      "description": "The identifier for a newsletter variant."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "newsletter_id": {
                      "type": "integer",
                      "example": 10,
                      "nullable": true,
                      "description": "The identifier for a newsletter."
                    }
                  }
                }
              ]
            },
            {
              "type": "object",
              "required": [
                "recipient",
                "link_id",
                "href"
              ],
              "properties": {
                "href": {
                  "type": "string",
                  "example": "https://www.customer.io/docs",
                  "description": "The URL of the link that a person clicked."
                },
                "link_id": {
                  "type": "integer",
                  "example": 1,
                  "description": "The identifier for the tracked link that a person clicked or tapped."
                },
                "recipient": {
                  "type": "string",
                  "description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
                },
                "tracked_response": {
                  "type": "string",
                  "description": "The *Action Name* of the action a person clicked/tapped in the message. [Learn more about tracked responses and action names](https://customer.io/docs/api/app/)."
                }
              }
            }
          ],
          "description": "Contains information about the event, specific to the `object_type` and `metric`."
        },
        "metric": {
          "enum": [
            "clicked"
          ],
          "type": "string",
          "description": "The in-app message recipient clicked/tapped a component in a message with **Track Clicks** enabled. The *Track Clicks* setting is enabled by default for in-app messages. The payload includes a `tracked_response` key containing the *Action Name* of the component the person clicked/tapped. [Learn more about tracked responses and action names](https://customer.io/docs/api/app/)."
        }
      }
    }
  ],
  "title": "clicked"
}
object in_app_converted
{
  "allOf": [
    {
      "type": "object",
      "required": [
        "event_id",
        "object_type",
        "timestamp"
      ],
      "properties": {
        "event_id": {
          "type": "string",
          "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
          "description": "The unique ID of the reporting webhook event being sent."
        },
        "timestamp": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1613063089,
          "description": "The unix timestamp when the event occurred."
        },
        "object_type": {
          "enum": [
            "in_app"
          ],
          "type": "string",
          "description": "The event relates to an in-app message."
        }
      }
    },
    {
      "type": "object",
      "required": [
        "metric",
        "data"
      ],
      "properties": {
        "data": {
          "allOf": [
            {
              "oneOf": [
                {
                  "type": "object",
                  "title": "API triggered broadcast",
                  "required": [
                    "trigger_id",
                    "broadcast_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "trigger_id": {
                      "type": "integer",
                      "example": 1,
                      "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "broadcast_id": {
                      "type": "integer",
                      "example": 2,
                      "nullable": true,
                      "description": "The identifier for a broadcast."
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Campaign",
                  "required": [
                    "campaign_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "campaign_id": {
                      "type": "integer",
                      "example": 5,
                      "nullable": true,
                      "description": "The identifier for a campaign."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    },
                    "trigger_event_id": {
                      "type": "string",
                      "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                      "nullable": true,
                      "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Newsletter",
                  "required": [
                    "newsletter_id",
                    "delivery_id",
                    "identifiers"
                  ],
                  "properties": {
                    "content_id": {
                      "type": "integer",
                      "example": 3,
                      "description": "The identifier for a newsletter variant."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "newsletter_id": {
                      "type": "integer",
                      "example": 10,
                      "nullable": true,
                      "description": "The identifier for a newsletter."
                    }
                  }
                }
              ]
            },
            {
              "type": "object",
              "required": [
                "recipient"
              ],
              "properties": {
                "recipient": {
                  "type": "string",
                  "description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
                }
              }
            }
          ],
          "description": "Contains information about the event, specific to the `object_type` and `metric`."
        },
        "metric": {
          "enum": [
            "converted"
          ],
          "type": "string",
          "description": "A person matched a conversion goal attributed to an in-app notification."
        }
      }
    }
  ],
  "title": "converted"
}
object in_app_drafted
{
  "allOf": [
    {
      "type": "object",
      "required": [
        "event_id",
        "object_type",
        "timestamp"
      ],
      "properties": {
        "event_id": {
          "type": "string",
          "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
          "description": "The unique ID of the reporting webhook event being sent."
        },
        "timestamp": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1613063089,
          "description": "The unix timestamp when the event occurred."
        },
        "object_type": {
          "enum": [
            "in_app"
          ],
          "type": "string",
          "description": "The event relates to an in-app message."
        }
      }
    },
    {
      "type": "object",
      "required": [
        "metric",
        "data"
      ],
      "properties": {
        "data": {
          "oneOf": [
            {
              "type": "object",
              "title": "API triggered broadcast",
              "required": [
                "trigger_id",
                "broadcast_id",
                "delivery_id",
                "action_id",
                "identifiers"
              ],
              "properties": {
                "action_id": {
                  "type": "integer",
                  "example": 96,
                  "readOnly": true,
                  "description": "The identifier for an action."
                },
                "journey_id": {
                  "type": "string",
                  "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                  "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                },
                "trigger_id": {
                  "type": "integer",
                  "example": 1,
                  "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                },
                "customer_id": {
                  "type": "string",
                  "example": "42",
                  "deprecated": true,
                  "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                },
                "delivery_id": {
                  "type": "string",
                  "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                  "description": "The instance of a message sent to a person."
                },
                "identifiers": {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "42",
                      "nullable": true,
                      "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                    },
                    "email": {
                      "type": "string",
                      "example": "test@example.com",
                      "nullable": true,
                      "description": "The email address of the customer."
                    },
                    "cio_id": {
                      "type": "string",
                      "example": "d9c106000001",
                      "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                    }
                  },
                  "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                },
                "broadcast_id": {
                  "type": "integer",
                  "example": 2,
                  "nullable": true,
                  "description": "The identifier for a broadcast."
                },
                "parent_action_id": {
                  "type": "integer",
                  "example": 1,
                  "readOnly": true,
                  "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                }
              }
            },
            {
              "type": "object",
              "title": "Campaign",
              "required": [
                "campaign_id",
                "delivery_id",
                "action_id",
                "identifiers"
              ],
              "properties": {
                "action_id": {
                  "type": "integer",
                  "example": 96,
                  "readOnly": true,
                  "description": "The identifier for an action."
                },
                "journey_id": {
                  "type": "string",
                  "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                  "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                },
                "campaign_id": {
                  "type": "integer",
                  "example": 5,
                  "nullable": true,
                  "description": "The identifier for a campaign."
                },
                "customer_id": {
                  "type": "string",
                  "example": "42",
                  "deprecated": true,
                  "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                },
                "delivery_id": {
                  "type": "string",
                  "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                  "description": "The instance of a message sent to a person."
                },
                "identifiers": {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "42",
                      "nullable": true,
                      "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                    },
                    "email": {
                      "type": "string",
                      "example": "test@example.com",
                      "nullable": true,
                      "description": "The email address of the customer."
                    },
                    "cio_id": {
                      "type": "string",
                      "example": "d9c106000001",
                      "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                    }
                  },
                  "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                },
                "parent_action_id": {
                  "type": "integer",
                  "example": 1,
                  "readOnly": true,
                  "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                },
                "trigger_event_id": {
                  "type": "string",
                  "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                  "nullable": true,
                  "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                }
              }
            },
            {
              "type": "object",
              "title": "Newsletter",
              "required": [
                "newsletter_id",
                "delivery_id",
                "identifiers"
              ],
              "properties": {
                "content_id": {
                  "type": "integer",
                  "example": 3,
                  "description": "The identifier for a newsletter variant."
                },
                "customer_id": {
                  "type": "string",
                  "example": "42",
                  "deprecated": true,
                  "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                },
                "delivery_id": {
                  "type": "string",
                  "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                  "description": "The instance of a message sent to a person."
                },
                "identifiers": {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "42",
                      "nullable": true,
                      "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                    },
                    "email": {
                      "type": "string",
                      "example": "test@example.com",
                      "nullable": true,
                      "description": "The email address of the customer."
                    },
                    "cio_id": {
                      "type": "string",
                      "example": "d9c106000001",
                      "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                    }
                  },
                  "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                },
                "newsletter_id": {
                  "type": "integer",
                  "example": 10,
                  "nullable": true,
                  "description": "The identifier for a newsletter."
                }
              }
            }
          ]
        },
        "metric": {
          "enum": [
            "drafted"
          ],
          "type": "string",
          "description": "An in-app message draft was created."
        }
      }
    }
  ],
  "title": "drafted"
}
object in_app_event
{
  "oneOf": [
    {
      "allOf": [
        {
          "type": "object",
          "required": [
            "event_id",
            "object_type",
            "timestamp"
          ],
          "properties": {
            "event_id": {
              "type": "string",
              "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
              "description": "The unique ID of the reporting webhook event being sent."
            },
            "timestamp": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1613063089,
              "description": "The unix timestamp when the event occurred."
            },
            "object_type": {
              "enum": [
                "in_app"
              ],
              "type": "string",
              "description": "The event relates to an in-app message."
            }
          }
        },
        {
          "type": "object",
          "required": [
            "metric",
            "data"
          ],
          "properties": {
            "data": {
              "oneOf": [
                {
                  "type": "object",
                  "title": "API triggered broadcast",
                  "required": [
                    "trigger_id",
                    "broadcast_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "trigger_id": {
                      "type": "integer",
                      "example": 1,
                      "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "broadcast_id": {
                      "type": "integer",
                      "example": 2,
                      "nullable": true,
                      "description": "The identifier for a broadcast."
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Campaign",
                  "required": [
                    "campaign_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "campaign_id": {
                      "type": "integer",
                      "example": 5,
                      "nullable": true,
                      "description": "The identifier for a campaign."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    },
                    "trigger_event_id": {
                      "type": "string",
                      "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                      "nullable": true,
                      "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Newsletter",
                  "required": [
                    "newsletter_id",
                    "delivery_id",
                    "identifiers"
                  ],
                  "properties": {
                    "content_id": {
                      "type": "integer",
                      "example": 3,
                      "description": "The identifier for a newsletter variant."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "newsletter_id": {
                      "type": "integer",
                      "example": 10,
                      "nullable": true,
                      "description": "The identifier for a newsletter."
                    }
                  }
                }
              ]
            },
            "metric": {
              "enum": [
                "drafted"
              ],
              "type": "string",
              "description": "An in-app message draft was created."
            }
          }
        }
      ],
      "title": "drafted"
    },
    {
      "allOf": [
        {
          "type": "object",
          "required": [
            "event_id",
            "object_type",
            "timestamp"
          ],
          "properties": {
            "event_id": {
              "type": "string",
              "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
              "description": "The unique ID of the reporting webhook event being sent."
            },
            "timestamp": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1613063089,
              "description": "The unix timestamp when the event occurred."
            },
            "object_type": {
              "enum": [
                "in_app"
              ],
              "type": "string",
              "description": "The event relates to an in-app message."
            }
          }
        },
        {
          "type": "object",
          "required": [
            "metric",
            "data"
          ],
          "properties": {
            "data": {
              "allOf": [
                {
                  "oneOf": [
                    {
                      "type": "object",
                      "title": "API triggered broadcast",
                      "required": [
                        "trigger_id",
                        "broadcast_id",
                        "delivery_id",
                        "action_id",
                        "identifiers"
                      ],
                      "properties": {
                        "action_id": {
                          "type": "integer",
                          "example": 96,
                          "readOnly": true,
                          "description": "The identifier for an action."
                        },
                        "journey_id": {
                          "type": "string",
                          "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                          "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                        },
                        "trigger_id": {
                          "type": "integer",
                          "example": 1,
                          "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "broadcast_id": {
                          "type": "integer",
                          "example": 2,
                          "nullable": true,
                          "description": "The identifier for a broadcast."
                        },
                        "parent_action_id": {
                          "type": "integer",
                          "example": 1,
                          "readOnly": true,
                          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Campaign",
                      "required": [
                        "campaign_id",
                        "delivery_id",
                        "action_id",
                        "identifiers"
                      ],
                      "properties": {
                        "action_id": {
                          "type": "integer",
                          "example": 96,
                          "readOnly": true,
                          "description": "The identifier for an action."
                        },
                        "journey_id": {
                          "type": "string",
                          "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                          "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                        },
                        "campaign_id": {
                          "type": "integer",
                          "example": 5,
                          "nullable": true,
                          "description": "The identifier for a campaign."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "parent_action_id": {
                          "type": "integer",
                          "example": 1,
                          "readOnly": true,
                          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                        },
                        "trigger_event_id": {
                          "type": "string",
                          "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                          "nullable": true,
                          "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Newsletter",
                      "required": [
                        "newsletter_id",
                        "delivery_id",
                        "identifiers"
                      ],
                      "properties": {
                        "content_id": {
                          "type": "integer",
                          "example": 3,
                          "description": "The identifier for a newsletter variant."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "newsletter_id": {
                          "type": "integer",
                          "example": 10,
                          "nullable": true,
                          "description": "The identifier for a newsletter."
                        }
                      }
                    }
                  ]
                },
                {
                  "type": "object",
                  "required": [
                    "failure_message"
                  ],
                  "properties": {
                    "failure_message": {
                      "type": "string",
                      "example": "Something went wrong!",
                      "description": "Indicates the reason that an attempted message failed."
                    }
                  }
                }
              ],
              "description": "Contains information about the event, specific to the `object_type` and `metric`."
            },
            "metric": {
              "enum": [
                "attempted"
              ],
              "type": "string",
              "description": "An in-app message failed to send, but will be retried."
            }
          }
        }
      ],
      "title": "attempted"
    },
    {
      "allOf": [
        {
          "type": "object",
          "required": [
            "event_id",
            "object_type",
            "timestamp"
          ],
          "properties": {
            "event_id": {
              "type": "string",
              "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
              "description": "The unique ID of the reporting webhook event being sent."
            },
            "timestamp": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1613063089,
              "description": "The unix timestamp when the event occurred."
            },
            "object_type": {
              "enum": [
                "in_app"
              ],
              "type": "string",
              "description": "The event relates to an in-app message."
            }
          }
        },
        {
          "type": "object",
          "required": [
            "metric",
            "data"
          ],
          "properties": {
            "data": {
              "allOf": [
                {
                  "oneOf": [
                    {
                      "type": "object",
                      "title": "API triggered broadcast",
                      "required": [
                        "trigger_id",
                        "broadcast_id",
                        "delivery_id",
                        "action_id",
                        "identifiers"
                      ],
                      "properties": {
                        "action_id": {
                          "type": "integer",
                          "example": 96,
                          "readOnly": true,
                          "description": "The identifier for an action."
                        },
                        "journey_id": {
                          "type": "string",
                          "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                          "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                        },
                        "trigger_id": {
                          "type": "integer",
                          "example": 1,
                          "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "broadcast_id": {
                          "type": "integer",
                          "example": 2,
                          "nullable": true,
                          "description": "The identifier for a broadcast."
                        },
                        "parent_action_id": {
                          "type": "integer",
                          "example": 1,
                          "readOnly": true,
                          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Campaign",
                      "required": [
                        "campaign_id",
                        "delivery_id",
                        "action_id",
                        "identifiers"
                      ],
                      "properties": {
                        "action_id": {
                          "type": "integer",
                          "example": 96,
                          "readOnly": true,
                          "description": "The identifier for an action."
                        },
                        "journey_id": {
                          "type": "string",
                          "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                          "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                        },
                        "campaign_id": {
                          "type": "integer",
                          "example": 5,
                          "nullable": true,
                          "description": "The identifier for a campaign."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "parent_action_id": {
                          "type": "integer",
                          "example": 1,
                          "readOnly": true,
                          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                        },
                        "trigger_event_id": {
                          "type": "string",
                          "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                          "nullable": true,
                          "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Newsletter",
                      "required": [
                        "newsletter_id",
                        "delivery_id",
                        "identifiers"
                      ],
                      "properties": {
                        "content_id": {
                          "type": "integer",
                          "example": 3,
                          "description": "The identifier for a newsletter variant."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "newsletter_id": {
                          "type": "integer",
                          "example": 10,
                          "nullable": true,
                          "description": "The identifier for a newsletter."
                        }
                      }
                    }
                  ]
                },
                {
                  "type": "object",
                  "required": [
                    "recipient"
                  ],
                  "properties": {
                    "content": {
                      "type": "string",
                      "description": "The body of your message. This key only appears if you enabled the *Body Content* option when setting up your webhook."
                    },
                    "recipient": {
                      "type": "string",
                      "description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
                    }
                  }
                }
              ],
              "description": "Contains information about the event, specific to the `object_type` and `metric`."
            },
            "metric": {
              "enum": [
                "sent"
              ],
              "type": "string",
              "description": "An in-app message was sent from Customer.io. Because in-app messages are only delivered when a person's app is open, there may be a significant delay between when a message is sent and when it's \"opened\". If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
            }
          }
        }
      ],
      "title": "sent"
    },
    {
      "allOf": [
        {
          "type": "object",
          "required": [
            "event_id",
            "object_type",
            "timestamp"
          ],
          "properties": {
            "event_id": {
              "type": "string",
              "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
              "description": "The unique ID of the reporting webhook event being sent."
            },
            "timestamp": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1613063089,
              "description": "The unix timestamp when the event occurred."
            },
            "object_type": {
              "enum": [
                "in_app"
              ],
              "type": "string",
              "description": "The event relates to an in-app message."
            }
          }
        },
        {
          "type": "object",
          "required": [
            "metric",
            "data"
          ],
          "properties": {
            "data": {
              "oneOf": [
                {
                  "type": "object",
                  "title": "API triggered broadcast",
                  "required": [
                    "trigger_id",
                    "broadcast_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "trigger_id": {
                      "type": "integer",
                      "example": 1,
                      "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "broadcast_id": {
                      "type": "integer",
                      "example": 2,
                      "nullable": true,
                      "description": "The identifier for a broadcast."
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Campaign",
                  "required": [
                    "campaign_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "campaign_id": {
                      "type": "integer",
                      "example": 5,
                      "nullable": true,
                      "description": "The identifier for a campaign."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    },
                    "trigger_event_id": {
                      "type": "string",
                      "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                      "nullable": true,
                      "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Newsletter",
                  "required": [
                    "newsletter_id",
                    "delivery_id",
                    "identifiers"
                  ],
                  "properties": {
                    "content_id": {
                      "type": "integer",
                      "example": 3,
                      "description": "The identifier for a newsletter variant."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "newsletter_id": {
                      "type": "integer",
                      "example": 10,
                      "nullable": true,
                      "description": "The identifier for a newsletter."
                    }
                  }
                }
              ]
            },
            "metric": {
              "enum": [
                "opened"
              ],
              "type": "string",
              "description": "A device opened an in-app message. Because messages appear automatically when a person opens your app (to the right page if using page rules), \"opened\" is essentially an \"impression\"—a person saw your message."
            }
          }
        }
      ],
      "title": "opened"
    },
    {
      "allOf": [
        {
          "type": "object",
          "required": [
            "event_id",
            "object_type",
            "timestamp"
          ],
          "properties": {
            "event_id": {
              "type": "string",
              "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
              "description": "The unique ID of the reporting webhook event being sent."
            },
            "timestamp": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1613063089,
              "description": "The unix timestamp when the event occurred."
            },
            "object_type": {
              "enum": [
                "in_app"
              ],
              "type": "string",
              "description": "The event relates to an in-app message."
            }
          }
        },
        {
          "type": "object",
          "required": [
            "metric",
            "data"
          ],
          "properties": {
            "data": {
              "allOf": [
                {
                  "oneOf": [
                    {
                      "type": "object",
                      "title": "API triggered broadcast",
                      "required": [
                        "trigger_id",
                        "broadcast_id",
                        "delivery_id",
                        "action_id",
                        "identifiers"
                      ],
                      "properties": {
                        "action_id": {
                          "type": "integer",
                          "example": 96,
                          "readOnly": true,
                          "description": "The identifier for an action."
                        },
                        "journey_id": {
                          "type": "string",
                          "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                          "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                        },
                        "trigger_id": {
                          "type": "integer",
                          "example": 1,
                          "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "broadcast_id": {
                          "type": "integer",
                          "example": 2,
                          "nullable": true,
                          "description": "The identifier for a broadcast."
                        },
                        "parent_action_id": {
                          "type": "integer",
                          "example": 1,
                          "readOnly": true,
                          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Campaign",
                      "required": [
                        "campaign_id",
                        "delivery_id",
                        "action_id",
                        "identifiers"
                      ],
                      "properties": {
                        "action_id": {
                          "type": "integer",
                          "example": 96,
                          "readOnly": true,
                          "description": "The identifier for an action."
                        },
                        "journey_id": {
                          "type": "string",
                          "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                          "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                        },
                        "campaign_id": {
                          "type": "integer",
                          "example": 5,
                          "nullable": true,
                          "description": "The identifier for a campaign."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "parent_action_id": {
                          "type": "integer",
                          "example": 1,
                          "readOnly": true,
                          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                        },
                        "trigger_event_id": {
                          "type": "string",
                          "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                          "nullable": true,
                          "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Newsletter",
                      "required": [
                        "newsletter_id",
                        "delivery_id",
                        "identifiers"
                      ],
                      "properties": {
                        "content_id": {
                          "type": "integer",
                          "example": 3,
                          "description": "The identifier for a newsletter variant."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "newsletter_id": {
                          "type": "integer",
                          "example": 10,
                          "nullable": true,
                          "description": "The identifier for a newsletter."
                        }
                      }
                    }
                  ]
                },
                {
                  "type": "object",
                  "required": [
                    "recipient",
                    "link_id",
                    "href"
                  ],
                  "properties": {
                    "href": {
                      "type": "string",
                      "example": "https://www.customer.io/docs",
                      "description": "The URL of the link that a person clicked."
                    },
                    "link_id": {
                      "type": "integer",
                      "example": 1,
                      "description": "The identifier for the tracked link that a person clicked or tapped."
                    },
                    "recipient": {
                      "type": "string",
                      "description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
                    },
                    "tracked_response": {
                      "type": "string",
                      "description": "The *Action Name* of the action a person clicked/tapped in the message. [Learn more about tracked responses and action names](https://customer.io/docs/api/app/)."
                    }
                  }
                }
              ],
              "description": "Contains information about the event, specific to the `object_type` and `metric`."
            },
            "metric": {
              "enum": [
                "clicked"
              ],
              "type": "string",
              "description": "The in-app message recipient clicked/tapped a component in a message with **Track Clicks** enabled. The *Track Clicks* setting is enabled by default for in-app messages. The payload includes a `tracked_response` key containing the *Action Name* of the component the person clicked/tapped. [Learn more about tracked responses and action names](https://customer.io/docs/api/app/)."
            }
          }
        }
      ],
      "title": "clicked"
    },
    {
      "allOf": [
        {
          "type": "object",
          "required": [
            "event_id",
            "object_type",
            "timestamp"
          ],
          "properties": {
            "event_id": {
              "type": "string",
              "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
              "description": "The unique ID of the reporting webhook event being sent."
            },
            "timestamp": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1613063089,
              "description": "The unix timestamp when the event occurred."
            },
            "object_type": {
              "enum": [
                "in_app"
              ],
              "type": "string",
              "description": "The event relates to an in-app message."
            }
          }
        },
        {
          "type": "object",
          "required": [
            "metric",
            "data"
          ],
          "properties": {
            "data": {
              "allOf": [
                {
                  "oneOf": [
                    {
                      "type": "object",
                      "title": "API triggered broadcast",
                      "required": [
                        "trigger_id",
                        "broadcast_id",
                        "delivery_id",
                        "action_id",
                        "identifiers"
                      ],
                      "properties": {
                        "action_id": {
                          "type": "integer",
                          "example": 96,
                          "readOnly": true,
                          "description": "The identifier for an action."
                        },
                        "journey_id": {
                          "type": "string",
                          "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                          "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                        },
                        "trigger_id": {
                          "type": "integer",
                          "example": 1,
                          "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "broadcast_id": {
                          "type": "integer",
                          "example": 2,
                          "nullable": true,
                          "description": "The identifier for a broadcast."
                        },
                        "parent_action_id": {
                          "type": "integer",
                          "example": 1,
                          "readOnly": true,
                          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Campaign",
                      "required": [
                        "campaign_id",
                        "delivery_id",
                        "action_id",
                        "identifiers"
                      ],
                      "properties": {
                        "action_id": {
                          "type": "integer",
                          "example": 96,
                          "readOnly": true,
                          "description": "The identifier for an action."
                        },
                        "journey_id": {
                          "type": "string",
                          "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                          "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                        },
                        "campaign_id": {
                          "type": "integer",
                          "example": 5,
                          "nullable": true,
                          "description": "The identifier for a campaign."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "parent_action_id": {
                          "type": "integer",
                          "example": 1,
                          "readOnly": true,
                          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                        },
                        "trigger_event_id": {
                          "type": "string",
                          "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                          "nullable": true,
                          "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Newsletter",
                      "required": [
                        "newsletter_id",
                        "delivery_id",
                        "identifiers"
                      ],
                      "properties": {
                        "content_id": {
                          "type": "integer",
                          "example": 3,
                          "description": "The identifier for a newsletter variant."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "newsletter_id": {
                          "type": "integer",
                          "example": 10,
                          "nullable": true,
                          "description": "The identifier for a newsletter."
                        }
                      }
                    }
                  ]
                },
                {
                  "type": "object",
                  "required": [
                    "recipient"
                  ],
                  "properties": {
                    "recipient": {
                      "type": "string",
                      "description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
                    }
                  }
                }
              ],
              "description": "Contains information about the event, specific to the `object_type` and `metric`."
            },
            "metric": {
              "enum": [
                "converted"
              ],
              "type": "string",
              "description": "A person matched a conversion goal attributed to an in-app notification."
            }
          }
        }
      ],
      "title": "converted"
    },
    {
      "allOf": [
        {
          "type": "object",
          "required": [
            "event_id",
            "object_type",
            "timestamp"
          ],
          "properties": {
            "event_id": {
              "type": "string",
              "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
              "description": "The unique ID of the reporting webhook event being sent."
            },
            "timestamp": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1613063089,
              "description": "The unix timestamp when the event occurred."
            },
            "object_type": {
              "enum": [
                "in_app"
              ],
              "type": "string",
              "description": "The event relates to an in-app message."
            }
          }
        },
        {
          "type": "object",
          "required": [
            "metric",
            "data"
          ],
          "properties": {
            "data": {
              "allOf": [
                {
                  "oneOf": [
                    {
                      "type": "object",
                      "title": "API triggered broadcast",
                      "required": [
                        "trigger_id",
                        "broadcast_id",
                        "delivery_id",
                        "action_id",
                        "identifiers"
                      ],
                      "properties": {
                        "action_id": {
                          "type": "integer",
                          "example": 96,
                          "readOnly": true,
                          "description": "The identifier for an action."
                        },
                        "journey_id": {
                          "type": "string",
                          "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                          "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                        },
                        "trigger_id": {
                          "type": "integer",
                          "example": 1,
                          "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "broadcast_id": {
                          "type": "integer",
                          "example": 2,
                          "nullable": true,
                          "description": "The identifier for a broadcast."
                        },
                        "parent_action_id": {
                          "type": "integer",
                          "example": 1,
                          "readOnly": true,
                          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Campaign",
                      "required": [
                        "campaign_id",
                        "delivery_id",
                        "action_id",
                        "identifiers"
                      ],
                      "properties": {
                        "action_id": {
                          "type": "integer",
                          "example": 96,
                          "readOnly": true,
                          "description": "The identifier for an action."
                        },
                        "journey_id": {
                          "type": "string",
                          "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                          "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                        },
                        "campaign_id": {
                          "type": "integer",
                          "example": 5,
                          "nullable": true,
                          "description": "The identifier for a campaign."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "parent_action_id": {
                          "type": "integer",
                          "example": 1,
                          "readOnly": true,
                          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                        },
                        "trigger_event_id": {
                          "type": "string",
                          "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                          "nullable": true,
                          "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Newsletter",
                      "required": [
                        "newsletter_id",
                        "delivery_id",
                        "identifiers"
                      ],
                      "properties": {
                        "content_id": {
                          "type": "integer",
                          "example": 3,
                          "description": "The identifier for a newsletter variant."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "newsletter_id": {
                          "type": "integer",
                          "example": 10,
                          "nullable": true,
                          "description": "The identifier for a newsletter."
                        }
                      }
                    }
                  ]
                },
                {
                  "type": "object",
                  "required": [
                    "failure_message"
                  ],
                  "properties": {
                    "failure_message": {
                      "type": "string",
                      "example": "Something went wrong!",
                      "description": "Indicates the reason that an attempted message failed."
                    }
                  }
                }
              ],
              "description": "Contains information about the event, specific to the `object_type` and `metric`."
            },
            "metric": {
              "enum": [
                "failed"
              ],
              "type": "string",
              "description": "An in-app message failed to send."
            }
          }
        }
      ],
      "title": "failed"
    },
    {
      "allOf": [
        {
          "type": "object",
          "required": [
            "event_id",
            "object_type",
            "timestamp"
          ],
          "properties": {
            "event_id": {
              "type": "string",
              "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
              "description": "The unique ID of the reporting webhook event being sent."
            },
            "timestamp": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1613063089,
              "description": "The unix timestamp when the event occurred."
            },
            "object_type": {
              "enum": [
                "in_app"
              ],
              "type": "string",
              "description": "The event relates to an in-app message."
            }
          }
        },
        {
          "type": "object",
          "required": [
            "metric",
            "data"
          ],
          "properties": {
            "data": {
              "allOf": [
                {
                  "oneOf": [
                    {
                      "type": "object",
                      "title": "API triggered broadcast",
                      "required": [
                        "trigger_id",
                        "broadcast_id",
                        "delivery_id",
                        "action_id",
                        "identifiers"
                      ],
                      "properties": {
                        "action_id": {
                          "type": "integer",
                          "example": 96,
                          "readOnly": true,
                          "description": "The identifier for an action."
                        },
                        "journey_id": {
                          "type": "string",
                          "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                          "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                        },
                        "trigger_id": {
                          "type": "integer",
                          "example": 1,
                          "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "broadcast_id": {
                          "type": "integer",
                          "example": 2,
                          "nullable": true,
                          "description": "The identifier for a broadcast."
                        },
                        "parent_action_id": {
                          "type": "integer",
                          "example": 1,
                          "readOnly": true,
                          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Campaign",
                      "required": [
                        "campaign_id",
                        "delivery_id",
                        "action_id",
                        "identifiers"
                      ],
                      "properties": {
                        "action_id": {
                          "type": "integer",
                          "example": 96,
                          "readOnly": true,
                          "description": "The identifier for an action."
                        },
                        "journey_id": {
                          "type": "string",
                          "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                          "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                        },
                        "campaign_id": {
                          "type": "integer",
                          "example": 5,
                          "nullable": true,
                          "description": "The identifier for a campaign."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "parent_action_id": {
                          "type": "integer",
                          "example": 1,
                          "readOnly": true,
                          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                        },
                        "trigger_event_id": {
                          "type": "string",
                          "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                          "nullable": true,
                          "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "Newsletter",
                      "required": [
                        "newsletter_id",
                        "delivery_id",
                        "identifiers"
                      ],
                      "properties": {
                        "content_id": {
                          "type": "integer",
                          "example": 3,
                          "description": "The identifier for a newsletter variant."
                        },
                        "customer_id": {
                          "type": "string",
                          "example": "42",
                          "deprecated": true,
                          "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                        },
                        "delivery_id": {
                          "type": "string",
                          "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                          "description": "The instance of a message sent to a person."
                        },
                        "identifiers": {
                          "type": "object",
                          "required": [
                            "id"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "example": "42",
                              "nullable": true,
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                            },
                            "email": {
                              "type": "string",
                              "example": "test@example.com",
                              "nullable": true,
                              "description": "The email address of the customer."
                            },
                            "cio_id": {
                              "type": "string",
                              "example": "d9c106000001",
                              "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                            }
                          },
                          "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                        },
                        "newsletter_id": {
                          "type": "integer",
                          "example": 10,
                          "nullable": true,
                          "description": "The identifier for a newsletter."
                        }
                      }
                    }
                  ]
                },
                {
                  "type": "object",
                  "required": [
                    "failure_message"
                  ],
                  "properties": {
                    "failure_message": {
                      "type": "string",
                      "example": "Something went wrong!",
                      "description": "Indicates the reason that an attempted message failed."
                    }
                  }
                }
              ],
              "description": "Contains information about the event, specific to the `object_type` and `metric`."
            },
            "metric": {
              "enum": [
                "undeliverable"
              ],
              "type": "string",
              "description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
            }
          }
        }
      ],
      "title": "undeliverable"
    }
  ],
  "title": "In-App Messages",
  "description": "Events pertaining to in-app messages.",
  "discriminator": {
    "mapping": {
      "sent": "#/components/schemas/in_app_sent",
      "failed": "#/components/schemas/in_app_failed",
      "opened": "#/components/schemas/in_app_opened",
      "clicked": "#/components/schemas/in_app_clicked",
      "drafted": "#/components/schemas/in_app_drafted",
      "attempted": "#/components/schemas/in_app_attempted",
      "converted": "#/components/schemas/in_app_converted",
      "undeliverable": "#/components/schemas/in_app_undeliverable"
    },
    "propertyName": "metric"
  }
}
object in_app_event_common
{
  "type": "object",
  "required": [
    "event_id",
    "object_type",
    "timestamp"
  ],
  "properties": {
    "event_id": {
      "type": "string",
      "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
      "description": "The unique ID of the reporting webhook event being sent."
    },
    "timestamp": {
      "type": "integer",
      "format": "unix timestamp",
      "example": 1613063089,
      "description": "The unix timestamp when the event occurred."
    },
    "object_type": {
      "enum": [
        "in_app"
      ],
      "type": "string",
      "description": "The event relates to an in-app message."
    }
  }
}
object in_app_failed
{
  "allOf": [
    {
      "type": "object",
      "required": [
        "event_id",
        "object_type",
        "timestamp"
      ],
      "properties": {
        "event_id": {
          "type": "string",
          "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
          "description": "The unique ID of the reporting webhook event being sent."
        },
        "timestamp": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1613063089,
          "description": "The unix timestamp when the event occurred."
        },
        "object_type": {
          "enum": [
            "in_app"
          ],
          "type": "string",
          "description": "The event relates to an in-app message."
        }
      }
    },
    {
      "type": "object",
      "required": [
        "metric",
        "data"
      ],
      "properties": {
        "data": {
          "allOf": [
            {
              "oneOf": [
                {
                  "type": "object",
                  "title": "API triggered broadcast",
                  "required": [
                    "trigger_id",
                    "broadcast_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "trigger_id": {
                      "type": "integer",
                      "example": 1,
                      "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "broadcast_id": {
                      "type": "integer",
                      "example": 2,
                      "nullable": true,
                      "description": "The identifier for a broadcast."
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Campaign",
                  "required": [
                    "campaign_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "campaign_id": {
                      "type": "integer",
                      "example": 5,
                      "nullable": true,
                      "description": "The identifier for a campaign."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    },
                    "trigger_event_id": {
                      "type": "string",
                      "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                      "nullable": true,
                      "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Newsletter",
                  "required": [
                    "newsletter_id",
                    "delivery_id",
                    "identifiers"
                  ],
                  "properties": {
                    "content_id": {
                      "type": "integer",
                      "example": 3,
                      "description": "The identifier for a newsletter variant."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "newsletter_id": {
                      "type": "integer",
                      "example": 10,
                      "nullable": true,
                      "description": "The identifier for a newsletter."
                    }
                  }
                }
              ]
            },
            {
              "type": "object",
              "required": [
                "failure_message"
              ],
              "properties": {
                "failure_message": {
                  "type": "string",
                  "example": "Something went wrong!",
                  "description": "Indicates the reason that an attempted message failed."
                }
              }
            }
          ],
          "description": "Contains information about the event, specific to the `object_type` and `metric`."
        },
        "metric": {
          "enum": [
            "failed"
          ],
          "type": "string",
          "description": "An in-app message failed to send."
        }
      }
    }
  ],
  "title": "failed"
}
object in_app_opened
{
  "allOf": [
    {
      "type": "object",
      "required": [
        "event_id",
        "object_type",
        "timestamp"
      ],
      "properties": {
        "event_id": {
          "type": "string",
          "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
          "description": "The unique ID of the reporting webhook event being sent."
        },
        "timestamp": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1613063089,
          "description": "The unix timestamp when the event occurred."
        },
        "object_type": {
          "enum": [
            "in_app"
          ],
          "type": "string",
          "description": "The event relates to an in-app message."
        }
      }
    },
    {
      "type": "object",
      "required": [
        "metric",
        "data"
      ],
      "properties": {
        "data": {
          "oneOf": [
            {
              "type": "object",
              "title": "API triggered broadcast",
              "required": [
                "trigger_id",
                "broadcast_id",
                "delivery_id",
                "action_id",
                "identifiers"
              ],
              "properties": {
                "action_id": {
                  "type": "integer",
                  "example": 96,
                  "readOnly": true,
                  "description": "The identifier for an action."
                },
                "journey_id": {
                  "type": "string",
                  "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                  "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                },
                "trigger_id": {
                  "type": "integer",
                  "example": 1,
                  "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                },
                "customer_id": {
                  "type": "string",
                  "example": "42",
                  "deprecated": true,
                  "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                },
                "delivery_id": {
                  "type": "string",
                  "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                  "description": "The instance of a message sent to a person."
                },
                "identifiers": {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "42",
                      "nullable": true,
                      "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                    },
                    "email": {
                      "type": "string",
                      "example": "test@example.com",
                      "nullable": true,
                      "description": "The email address of the customer."
                    },
                    "cio_id": {
                      "type": "string",
                      "example": "d9c106000001",
                      "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                    }
                  },
                  "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                },
                "broadcast_id": {
                  "type": "integer",
                  "example": 2,
                  "nullable": true,
                  "description": "The identifier for a broadcast."
                },
                "parent_action_id": {
                  "type": "integer",
                  "example": 1,
                  "readOnly": true,
                  "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                }
              }
            },
            {
              "type": "object",
              "title": "Campaign",
              "required": [
                "campaign_id",
                "delivery_id",
                "action_id",
                "identifiers"
              ],
              "properties": {
                "action_id": {
                  "type": "integer",
                  "example": 96,
                  "readOnly": true,
                  "description": "The identifier for an action."
                },
                "journey_id": {
                  "type": "string",
                  "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                  "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                },
                "campaign_id": {
                  "type": "integer",
                  "example": 5,
                  "nullable": true,
                  "description": "The identifier for a campaign."
                },
                "customer_id": {
                  "type": "string",
                  "example": "42",
                  "deprecated": true,
                  "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                },
                "delivery_id": {
                  "type": "string",
                  "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                  "description": "The instance of a message sent to a person."
                },
                "identifiers": {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "42",
                      "nullable": true,
                      "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                    },
                    "email": {
                      "type": "string",
                      "example": "test@example.com",
                      "nullable": true,
                      "description": "The email address of the customer."
                    },
                    "cio_id": {
                      "type": "string",
                      "example": "d9c106000001",
                      "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                    }
                  },
                  "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                },
                "parent_action_id": {
                  "type": "integer",
                  "example": 1,
                  "readOnly": true,
                  "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                },
                "trigger_event_id": {
                  "type": "string",
                  "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                  "nullable": true,
                  "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                }
              }
            },
            {
              "type": "object",
              "title": "Newsletter",
              "required": [
                "newsletter_id",
                "delivery_id",
                "identifiers"
              ],
              "properties": {
                "content_id": {
                  "type": "integer",
                  "example": 3,
                  "description": "The identifier for a newsletter variant."
                },
                "customer_id": {
                  "type": "string",
                  "example": "42",
                  "deprecated": true,
                  "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                },
                "delivery_id": {
                  "type": "string",
                  "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                  "description": "The instance of a message sent to a person."
                },
                "identifiers": {
                  "type": "object",
                  "required": [
                    "id"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "example": "42",
                      "nullable": true,
                      "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                    },
                    "email": {
                      "type": "string",
                      "example": "test@example.com",
                      "nullable": true,
                      "description": "The email address of the customer."
                    },
                    "cio_id": {
                      "type": "string",
                      "example": "d9c106000001",
                      "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                    }
                  },
                  "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                },
                "newsletter_id": {
                  "type": "integer",
                  "example": 10,
                  "nullable": true,
                  "description": "The identifier for a newsletter."
                }
              }
            }
          ]
        },
        "metric": {
          "enum": [
            "opened"
          ],
          "type": "string",
          "description": "A device opened an in-app message. Because messages appear automatically when a person opens your app (to the right page if using page rules), \"opened\" is essentially an \"impression\"—a person saw your message."
        }
      }
    }
  ],
  "title": "opened"
}
object in_app_sent
{
  "allOf": [
    {
      "type": "object",
      "required": [
        "event_id",
        "object_type",
        "timestamp"
      ],
      "properties": {
        "event_id": {
          "type": "string",
          "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
          "description": "The unique ID of the reporting webhook event being sent."
        },
        "timestamp": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1613063089,
          "description": "The unix timestamp when the event occurred."
        },
        "object_type": {
          "enum": [
            "in_app"
          ],
          "type": "string",
          "description": "The event relates to an in-app message."
        }
      }
    },
    {
      "type": "object",
      "required": [
        "metric",
        "data"
      ],
      "properties": {
        "data": {
          "allOf": [
            {
              "oneOf": [
                {
                  "type": "object",
                  "title": "API triggered broadcast",
                  "required": [
                    "trigger_id",
                    "broadcast_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "trigger_id": {
                      "type": "integer",
                      "example": 1,
                      "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "broadcast_id": {
                      "type": "integer",
                      "example": 2,
                      "nullable": true,
                      "description": "The identifier for a broadcast."
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Campaign",
                  "required": [
                    "campaign_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "campaign_id": {
                      "type": "integer",
                      "example": 5,
                      "nullable": true,
                      "description": "The identifier for a campaign."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    },
                    "trigger_event_id": {
                      "type": "string",
                      "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                      "nullable": true,
                      "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Newsletter",
                  "required": [
                    "newsletter_id",
                    "delivery_id",
                    "identifiers"
                  ],
                  "properties": {
                    "content_id": {
                      "type": "integer",
                      "example": 3,
                      "description": "The identifier for a newsletter variant."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "newsletter_id": {
                      "type": "integer",
                      "example": 10,
                      "nullable": true,
                      "description": "The identifier for a newsletter."
                    }
                  }
                }
              ]
            },
            {
              "type": "object",
              "required": [
                "recipient"
              ],
              "properties": {
                "content": {
                  "type": "string",
                  "description": "The body of your message. This key only appears if you enabled the *Body Content* option when setting up your webhook."
                },
                "recipient": {
                  "type": "string",
                  "description": "The ID or email address of the person the message was sent to. This identifier is determined by the settings in your message and the value you use to identify your app's users."
                }
              }
            }
          ],
          "description": "Contains information about the event, specific to the `object_type` and `metric`."
        },
        "metric": {
          "enum": [
            "sent"
          ],
          "type": "string",
          "description": "An in-app message was sent from Customer.io. Because in-app messages are only delivered when a person's app is open, there may be a significant delay between when a message is sent and when it's \"opened\". If you enabled the *Body Content* option with your webhook, the payload includes the `content` of your message."
        }
      }
    }
  ],
  "title": "sent"
}
object in_app_undeliverable
{
  "allOf": [
    {
      "type": "object",
      "required": [
        "event_id",
        "object_type",
        "timestamp"
      ],
      "properties": {
        "event_id": {
          "type": "string",
          "example": "01E4C4CT6YDC7Y5M7FE1GWWPQJ",
          "description": "The unique ID of the reporting webhook event being sent."
        },
        "timestamp": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1613063089,
          "description": "The unix timestamp when the event occurred."
        },
        "object_type": {
          "enum": [
            "in_app"
          ],
          "type": "string",
          "description": "The event relates to an in-app message."
        }
      }
    },
    {
      "type": "object",
      "required": [
        "metric",
        "data"
      ],
      "properties": {
        "data": {
          "allOf": [
            {
              "oneOf": [
                {
                  "type": "object",
                  "title": "API triggered broadcast",
                  "required": [
                    "trigger_id",
                    "broadcast_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "trigger_id": {
                      "type": "integer",
                      "example": 1,
                      "description": "The trigger ID returned by the [Trigger Broadcast API](https://customer.io/docs/api/app/)."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "broadcast_id": {
                      "type": "integer",
                      "example": 2,
                      "nullable": true,
                      "description": "The identifier for a broadcast."
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Campaign",
                  "required": [
                    "campaign_id",
                    "delivery_id",
                    "action_id",
                    "identifiers"
                  ],
                  "properties": {
                    "action_id": {
                      "type": "integer",
                      "example": 96,
                      "readOnly": true,
                      "description": "The identifier for an action."
                    },
                    "journey_id": {
                      "type": "string",
                      "example": "01GW20GXAAXBKZD8J96M8FNV3R",
                      "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
                    },
                    "campaign_id": {
                      "type": "integer",
                      "example": 5,
                      "nullable": true,
                      "description": "The identifier for a campaign."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "parent_action_id": {
                      "type": "integer",
                      "example": 1,
                      "readOnly": true,
                      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
                    },
                    "trigger_event_id": {
                      "type": "string",
                      "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
                      "nullable": true,
                      "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
                    }
                  }
                },
                {
                  "type": "object",
                  "title": "Newsletter",
                  "required": [
                    "newsletter_id",
                    "delivery_id",
                    "identifiers"
                  ],
                  "properties": {
                    "content_id": {
                      "type": "integer",
                      "example": 3,
                      "description": "The identifier for a newsletter variant."
                    },
                    "customer_id": {
                      "type": "string",
                      "example": "42",
                      "deprecated": true,
                      "description": "The ID of the person the webhook event occurred to. Blank if the person in question has been deleted.\n\nWhile webhooks may still contain this property, you should rely on the newer `identifiers` object wherever possible.\n"
                    },
                    "delivery_id": {
                      "type": "string",
                      "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                      "description": "The instance of a message sent to a person."
                    },
                    "identifiers": {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "example": "42",
                          "nullable": true,
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                        },
                        "email": {
                          "type": "string",
                          "example": "test@example.com",
                          "nullable": true,
                          "description": "The email address of the customer."
                        },
                        "cio_id": {
                          "type": "string",
                          "example": "d9c106000001",
                          "description": "The canonical identifier for a person, present only if your workspace supports multiple identifiers (email and ID). This value exists to keep a record of a person in your workspace across changes to their other identifiers."
                        }
                      },
                      "description": "The person the event represents. This object contains all of the identifiers available to people in your workspace, even if they aren't set. If your workspace supports multiple identifiers (email and ID), this object contains `id`, `email` (either of which can be null), and `cio_id`. \n\nOtherwise, if your workspace only supports ID, this object just contains the `id` of the person the event represents.\n"
                    },
                    "newsletter_id": {
                      "type": "integer",
                      "example": 10,
                      "nullable": true,
                      "description": "The identifier for a newsletter."
                    }
                  }
                }
              ]
            },
            {
              "type": "object",
              "required": [
                "failure_message"
              ],
              "properties": {
                "failure_message": {
                  "type": "string",
                  "example": "Something went wrong!",
                  "description": "Indicates the reason that an attempted message failed."
                }
              }
            }
          ],
          "description": "Contains information about the event, specific to the `object_type` and `metric`."
        },
        "metric": {
          "enum": [
            "undeliverable"
          ],
          "type": "string",
          "description": "A message was undeliverable. Undeliverable messages are messages that have either hit a message limit, come from a newsletter that was cancelled or deleted, or an environment that has delivery disabled (which is something you might do if you’re testing an integration). If you’re not using message limits, you probably won’t see this event."
        }
      }
    }
  ],
  "title": "undeliverable"
}
object iosFcmAndApns
{
  "oneOf": [
    {
      "type": "object",
      "title": "FCM",
      "required": [
        "message"
      ],
      "properties": {
        "message": {
          "type": "object",
          "required": [
            "apns"
          ],
          "properties": {
            "apns": {
              "type": "object",
              "required": [
                "payload"
              ],
              "properties": {
                "headers": {
                  "type": "object",
                  "description": "Headers defined by [Apple's payload reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) that you want to pass through FCM."
                },
                "payload": {
                  "type": "object",
                  "properties": {
                    "CIO": {
                      "type": "object",
                      "required": [
                        "push"
                      ],
                      "properties": {
                        "push": {
                          "type": "object",
                          "properties": {
                            "body": {
                              "type": "string",
                              "description": "The body of your push notification."
                            },
                            "link": {
                              "type": "string",
                              "description": "A deep link (to a page in your app), or a link to a web page."
                            },
                            "image": {
                              "type": "string",
                              "description": "The URL of an HTTPS image that you want to use for your message."
                            },
                            "title": {
                              "type": "string",
                              "description": "The title of your push notification."
                            }
                          },
                          "description": "A push payload for the iOS SDK."
                        }
                      },
                      "description": "Contains properties interpreted by the Customer.io iOS SDK."
                    },
                    "aps": {
                      "type": "object",
                      "properties": {
                        "alert": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "Simple alert",
                              "description": "A simple alert message."
                            },
                            {
                              "type": "object",
                              "title": "Complex alert",
                              "properties": {
                                "body": {
                                  "type": "string",
                                  "description": "The body of your push notification."
                                },
                                "title": {
                                  "type": "string",
                                  "description": "The title of your push notification."
                                },
                                "loc-key": {
                                  "type": "string",
                                  "description": "The key for a localized message string in your app’s Localizable.strings file."
                                },
                                "loc-args": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
                                },
                                "subtitle": {
                                  "type": "string",
                                  "description": "Additional information that explains the purpose of the notification."
                                },
                                "launch-image": {
                                  "type": "string",
                                  "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
                                },
                                "title-loc-key": {
                                  "type": "string",
                                  "description": "The key for a localized title string in your app’s Localizable.strings files."
                                },
                                "title-loc-args": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
                                },
                                "subtitle-loc-key": {
                                  "type": "string",
                                  "description": "The key for a localized subtitle string in your app’s Localizable.strings file."
                                },
                                "subtitle-loc-args": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  },
                                  "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
                                }
                              }
                            }
                          ]
                        },
                        "badge": {
                          "type": "integer",
                          "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
                        },
                        "sound": {
                          "oneOf": [
                            {
                              "type": "string",
                              "title": "Regular alert",
                              "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
                            },
                            {
                              "type": "object",
                              "title": "Critical alert",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
                                },
                                "volume": {
                                  "type": "number",
                                  "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
                                },
                                "critical": {
                                  "type": "integer",
                                  "description": "1 indicates critical. 0 is not critical."
                                }
                              }
                            }
                          ]
                        },
                        "category": {
                          "type": "string",
                          "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
                        },
                        "thread-id": {
                          "type": "string",
                          "description": "An identifier to group related notifications."
                        },
                        "mutable-content": {
                          "type": "integer",
                          "description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
                        },
                        "relevance-score": {
                          "type": "number",
                          "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
                        },
                        "content-available": {
                          "type": "integer",
                          "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
                        },
                        "target-content-id": {
                          "type": "string",
                          "description": "The identifier of the window brought forward."
                        },
                        "interruption-level": {
                          "enum": [
                            "passive",
                            "active",
                            "time-sensitive",
                            "critical"
                          ],
                          "type": "string",
                          "description": "Indicates the importance and delivery timing of a notification."
                        }
                      },
                      "description": "A push payload intended for an iOS device."
                    }
                  },
                  "description": "Contains a push payload.",
                  "additionalProperties": {
                    "description": "Additional properties that you've set up your app to interpret outside of the Customer.io SDK.",
                    "x-additionalPropertiesName": "Custom key-value pairs"
                  }
                }
              },
              "description": "Defines a payload for iOS devices sent through Firebase Cloud Messaging (FCM)."
            }
          },
          "description": "The base object for all FCM payloads."
        }
      }
    },
    {
      "type": "object",
      "title": "APNS",
      "properties": {
        "CIO": {
          "type": "object",
          "required": [
            "push"
          ],
          "properties": {
            "push": {
              "type": "object",
              "properties": {
                "link": {
                  "type": "string",
                  "description": "A deep link (to a page in your app), or a link to a web page."
                },
                "image": {
                  "type": "string",
                  "description": "The URL of an HTTPS image that you want to use for your message."
                }
              },
              "description": "Describes push notification options supported by the CIO SDK."
            }
          },
          "description": "Contains options supported by the Customer.io SDK."
        },
        "aps": {
          "type": "object",
          "properties": {
            "alert": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "Simple alert",
                  "description": "A simple alert message."
                },
                {
                  "type": "object",
                  "title": "Complex alert",
                  "properties": {
                    "body": {
                      "type": "string",
                      "description": "The body of your push notification."
                    },
                    "title": {
                      "type": "string",
                      "description": "The title of your push notification."
                    },
                    "loc-key": {
                      "type": "string",
                      "description": "The key for a localized message string in your app’s Localizable.strings file."
                    },
                    "loc-args": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
                    },
                    "subtitle": {
                      "type": "string",
                      "description": "Additional information that explains the purpose of the notification."
                    },
                    "launch-image": {
                      "type": "string",
                      "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
                    },
                    "title-loc-key": {
                      "type": "string",
                      "description": "The key for a localized title string in your app’s Localizable.strings files."
                    },
                    "title-loc-args": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
                    },
                    "subtitle-loc-key": {
                      "type": "string",
                      "description": "The key for a localized subtitle string in your app’s Localizable.strings file."
                    },
                    "subtitle-loc-args": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
                    }
                  }
                }
              ]
            },
            "badge": {
              "type": "integer",
              "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
            },
            "sound": {
              "oneOf": [
                {
                  "type": "string",
                  "title": "Regular alert",
                  "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
                },
                {
                  "type": "object",
                  "title": "Critical alert",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
                    },
                    "volume": {
                      "type": "number",
                      "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
                    },
                    "critical": {
                      "type": "integer",
                      "description": "1 indicates critical. 0 is not critical."
                    }
                  }
                }
              ]
            },
            "category": {
              "type": "string",
              "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
            },
            "thread-id": {
              "type": "string",
              "description": "An identifier to group related notifications."
            },
            "mutable-content": {
              "type": "integer",
              "description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
            },
            "relevance-score": {
              "type": "number",
              "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
            },
            "content-available": {
              "type": "integer",
              "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
            },
            "target-content-id": {
              "type": "string",
              "description": "The identifier of the window brought forward."
            },
            "interruption-level": {
              "enum": [
                "passive",
                "active",
                "time-sensitive",
                "critical"
              ],
              "type": "string",
              "description": "Indicates the importance and delivery timing of a notification."
            }
          },
          "description": "A push payload intended for an iOS device."
        }
      }
    }
  ],
  "description": "Your payload changes depending on whether you send to iOS devices through Google's Firebase Cloud Messaging (FCM) or Apple's Push Notification service (APNs)."
}
object iosSharedOptions
{
  "type": "object",
  "properties": {
    "alert": {
      "oneOf": [
        {
          "type": "string",
          "title": "Simple alert",
          "description": "A simple alert message."
        },
        {
          "type": "object",
          "title": "Complex alert",
          "properties": {
            "body": {
              "type": "string",
              "description": "The body of your push notification."
            },
            "title": {
              "type": "string",
              "description": "The title of your push notification."
            },
            "loc-key": {
              "type": "string",
              "description": "The key for a localized message string in your app’s Localizable.strings file."
            },
            "loc-args": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body."
            },
            "subtitle": {
              "type": "string",
              "description": "Additional information that explains the purpose of the notification."
            },
            "launch-image": {
              "type": "string",
              "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image."
            },
            "title-loc-key": {
              "type": "string",
              "description": "The key for a localized title string in your app’s Localizable.strings files."
            },
            "title-loc-args": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string."
            },
            "subtitle-loc-key": {
              "type": "string",
              "description": "The key for a localized subtitle string in your app’s Localizable.strings file."
            },
            "subtitle-loc-args": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string."
            }
          }
        }
      ]
    },
    "badge": {
      "type": "integer",
      "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
    },
    "sound": {
      "oneOf": [
        {
          "type": "string",
          "title": "Regular alert",
          "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
        },
        {
          "type": "object",
          "title": "Critical alert",
          "properties": {
            "name": {
              "type": "string",
              "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
            },
            "volume": {
              "type": "number",
              "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
            },
            "critical": {
              "type": "integer",
              "description": "1 indicates critical. 0 is not critical."
            }
          }
        }
      ]
    },
    "category": {
      "type": "string",
      "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
    },
    "thread-id": {
      "type": "string",
      "description": "An identifier to group related notifications."
    },
    "mutable-content": {
      "type": "integer",
      "description": "The notification service app extension flag. If the value is 1, your notification is passed to your notification service app extension before delivery. Use your extension to modify the notification’s content."
    },
    "relevance-score": {
      "type": "number",
      "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
    },
    "content-available": {
      "type": "integer",
      "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
    },
    "target-content-id": {
      "type": "string",
      "description": "The identifier of the window brought forward."
    },
    "interruption-level": {
      "enum": [
        "passive",
        "active",
        "time-sensitive",
        "critical"
      ],
      "type": "string",
      "description": "Indicates the importance and delivery timing of a notification."
    }
  },
  "description": "A push payload intended for an iOS device."
}
string journey_id
{
  "type": "string",
  "example": "01GW20GXAAXBKZD8J96M8FNV3R",
  "description": "The ID for the path a person went through in a Campaign or API Triggered Broadcast workflow."
}
string language
{
  "type": "string",
  "example": "fr",
  "readOnly": true,
  "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
}
object linkMetrics
{
  "type": "object",
  "properties": {
    "link": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "example": 1234,
          "description": "The ID of the link."
        },
        "href": {
          "type": "string",
          "example": "https://customer.io/docs",
          "description": "The link destination—a URL, mailto, etc."
        }
      }
    },
    "metric": {
      "type": "object",
      "properties": {
        "series": {
          "type": "object",
          "properties": {
            "clicked": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                3,
                5,
                7
              ],
              "description": "An array of results from oldest to newest, where each result indicates a period."
            }
          }
        }
      },
      "description": "Contains metrics for the link."
    }
  }
}
integer link_id
{
  "type": "integer",
  "example": 1,
  "description": "The identifier for the tracked link that a person clicked or tapped."
}
object messageMetrics
{
  "type": "object",
  "properties": {
    "sent": {
      "type": "integer",
      "description": "The timestamp when the message was `sent`."
    },
    "failed": {
      "type": "integer",
      "description": "The timestamp when the message `failed`."
    },
    "opened": {
      "type": "integer",
      "description": "The timestamp when the message was `opened`."
    },
    "bounced": {
      "type": "integer",
      "description": "The timestamp when the message `bounced`."
    },
    "clicked": {
      "type": "integer",
      "description": "The timestamp when the message was `clicked`."
    },
    "created": {
      "type": "integer",
      "description": "The timestamp when the message was `created`."
    },
    "drafted": {
      "type": "integer",
      "description": "The timestamp when the message was `drafted`."
    },
    "dropped": {
      "type": "integer",
      "description": "The timestamp when the message was `dropped`."
    },
    "spammed": {
      "type": "integer",
      "description": "The timestamp when the message was marked as spam."
    },
    "converted": {
      "type": "integer",
      "description": "The timestamp when the message was `converted`."
    },
    "delivered": {
      "type": "integer",
      "description": "The timestamp when the message was `delivered`."
    },
    "unsubscribed": {
      "type": "integer",
      "description": "The timestamp when a person unsubscribed based on this message."
    },
    "undeliverable": {
      "type": "integer",
      "description": "The timestamp when the message became `undeliverable`."
    }
  },
  "description": "Metrics for an individual instance of a message; each item in the object represents the timestamp when a message achieved a particular metric. This object only contains metrics that have been recorded."
}
object messageObject
{
  "type": "object",
  "example": {
    "id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
    "type": "email",
    "created": 1619137767,
    "metrics": {
      "sent": 1619137768,
      "delivered": 1619137768
    },
    "subject": "Did you get that thing I sent you?",
    "action_id": 215,
    "forgotten": false,
    "recipient": "person@example.com",
    "content_id": null,
    "campaign_id": 23,
    "customer_id": null,
    "broadcast_id": null,
    "newsletter_id": null,
    "deduplicate_id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=:1619137768",
    "failure_message": null,
    "msg_template_id": 43,
    "parent_action_id": null,
    "trigger_event_id": null
  },
  "properties": {
    "id": {
      "type": "string",
      "example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
      "readOnly": true,
      "description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
    },
    "type": {
      "enum": [
        "email",
        "webhook",
        "twilio",
        "slack",
        "push"
      ],
      "type": "string",
      "example": "email",
      "readOnly": true,
      "description": "The type of message/action."
    },
    "created": {
      "type": "integer",
      "format": "unix timestamp",
      "example": 1552341937,
      "readOnly": true,
      "description": "The date time when the referenced ID was created."
    },
    "metrics": {
      "type": "object",
      "properties": {
        "sent": {
          "type": "integer",
          "description": "The timestamp when the message was `sent`."
        },
        "failed": {
          "type": "integer",
          "description": "The timestamp when the message `failed`."
        },
        "opened": {
          "type": "integer",
          "description": "The timestamp when the message was `opened`."
        },
        "bounced": {
          "type": "integer",
          "description": "The timestamp when the message `bounced`."
        },
        "clicked": {
          "type": "integer",
          "description": "The timestamp when the message was `clicked`."
        },
        "created": {
          "type": "integer",
          "description": "The timestamp when the message was `created`."
        },
        "drafted": {
          "type": "integer",
          "description": "The timestamp when the message was `drafted`."
        },
        "dropped": {
          "type": "integer",
          "description": "The timestamp when the message was `dropped`."
        },
        "spammed": {
          "type": "integer",
          "description": "The timestamp when the message was marked as spam."
        },
        "converted": {
          "type": "integer",
          "description": "The timestamp when the message was `converted`."
        },
        "delivered": {
          "type": "integer",
          "description": "The timestamp when the message was `delivered`."
        },
        "unsubscribed": {
          "type": "integer",
          "description": "The timestamp when a person unsubscribed based on this message."
        },
        "undeliverable": {
          "type": "integer",
          "description": "The timestamp when the message became `undeliverable`."
        }
      },
      "description": "Metrics for an individual instance of a message; each item in the object represents the timestamp when a message achieved a particular metric. This object only contains metrics that have been recorded."
    },
    "subject": {
      "type": "string",
      "example": "Did you get that thing I sent you?",
      "description": "The subject line for an `email` action."
    },
    "action_id": {
      "type": "integer",
      "example": 96,
      "nullable": true,
      "readOnly": true,
      "description": "The identifier for an action."
    },
    "forgotten": {
      "type": "boolean",
      "description": "If true message contents are not retained by Customer.io."
    },
    "recipient": {
      "type": "string",
      "example": "{{customer.email}}",
      "description": "The recipient address for an action."
    },
    "content_id": {
      "type": "integer",
      "example": 1,
      "nullable": true,
      "readOnly": true,
      "description": "The identifier for a newsletter variant."
    },
    "campaign_id": {
      "type": "integer",
      "example": 5,
      "nullable": true,
      "description": "The identifier for a campaign."
    },
    "customer_id": {
      "type": "string",
      "example": "42",
      "nullable": true,
      "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
    },
    "broadcast_id": {
      "type": "integer",
      "example": 2,
      "nullable": true,
      "description": "The identifier for a broadcast."
    },
    "newsletter_id": {
      "type": "integer",
      "example": 10,
      "nullable": true,
      "description": "The identifier for a newsletter."
    },
    "deduplicate_id": {
      "type": "string",
      "example": "15:1492548073",
      "readOnly": true,
      "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
    },
    "failure_message": {
      "type": "string",
      "nullable": true,
      "description": "Explains why a message failed, if applicable."
    },
    "parent_action_id": {
      "type": "integer",
      "example": 1,
      "readOnly": true,
      "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
    },
    "trigger_event_id": {
      "type": "string",
      "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
      "nullable": true,
      "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
    },
    "message_template_id": {
      "type": "integer",
      "readOnly": true,
      "deprecated": true,
      "description": "The identifier of the message template used to create a message."
    },
    "customer_identifiers": {
      "type": "object",
      "required": [
        "email",
        "id",
        "cio_id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": 2,
          "nullable": true,
          "description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
        },
        "email": {
          "type": "string",
          "format": "email",
          "example": "test@example.com",
          "nullable": true,
          "description": "A person's email address, if set."
        },
        "cio_id": {
          "type": "string",
          "example": "a3000001",
          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
        }
      },
      "description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
    }
  },
  "description": "Describes an individual message delivery. The object contains keys for all possible parents of the message (`newsletter_id`, `broadcast_id`, etc) but only the parents of the delivery are populated. Other parent IDs are null."
}
object messageTotalMetrics
{
  "type": "object",
  "properties": {
    "sent": {
      "type": "integer",
      "description": "The number of `sent` messages"
    },
    "failed": {
      "type": "integer",
      "description": "The number of `failed` messages."
    },
    "opened": {
      "type": "integer",
      "description": "The number of `opened` messages"
    },
    "bounced": {
      "type": "integer",
      "description": "The number of `bounced` messages."
    },
    "clicked": {
      "type": "integer",
      "description": "The number of `clicked` messages."
    },
    "created": {
      "type": "integer",
      "description": "The number of `created` messages."
    },
    "drafted": {
      "type": "integer",
      "description": "The number of `drafted` messages."
    },
    "dropped": {
      "type": "integer",
      "description": "The number of `dropped` messages."
    },
    "spammed": {
      "type": "integer",
      "description": "The number of messages marked as spam."
    },
    "converted": {
      "type": "integer",
      "description": "The number of `converted` messages."
    },
    "delivered": {
      "type": "integer",
      "description": "The number of `delivered` messages."
    },
    "unsubscribed": {
      "type": "integer",
      "description": "The number of unsubscribes attributed to messages."
    },
    "undeliverable": {
      "type": "integer",
      "description": "The number of `undeliverable` messages."
    }
  },
  "description": "Total metrics over the lifespan of the requested item."
}
string messageType
{
  "enum": [
    "email",
    "webhook",
    "twilio",
    "slack",
    "push"
  ],
  "type": "string",
  "example": "email",
  "readOnly": true,
  "description": "The type of message/action."
}
string message_id
{
  "type": "string",
  "example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
  "readOnly": true,
  "description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
}
integer message_template_id
{
  "type": "integer",
  "readOnly": true,
  "deprecated": true,
  "description": "The identifier of the message template used to create a message."
}
string metric
{
  "enum": [
    "created",
    "attempted",
    "sent",
    "delivered",
    "opened",
    "clicked",
    "converted",
    "bounced",
    "spammed",
    "unsubscribed",
    "dropped",
    "failed",
    "undeliverable"
  ],
  "type": "string",
  "description": "Determines the metric(s) you want to return."
}
array msg_template_ids
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "integer",
        "description": "The identifier for the template."
      },
      "type": {
        "enum": [
          "email",
          "webhook",
          "push",
          "sms",
          "slack"
        ],
        "type": "string",
        "description": "The type of template."
      }
    }
  },
  "deprecated": true,
  "description": "Indicates the message template(s) used in this broadcast."
}
object newsletterObject
{
  "type": "object",
  "example": {
    "id": 128275,
    "name": "Example Newsletter",
    "tags": [
      "Example Tag"
    ],
    "type": "email",
    "created": 1481653929,
    "sent_at": null,
    "updated": 1484870424,
    "content_ids": [
      45,
      90
    ],
    "deduplicate_id": "128275:1484870424",
    "recipient_segment_ids": [
      10
    ],
    "subscription_topic_id": 1
  },
  "properties": {
    "id": {
      "type": "integer",
      "example": 10,
      "description": "The identifier for a newsletter."
    },
    "name": {
      "type": "string",
      "readOnly": true,
      "description": "The name of the newsletter."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of tags you set on this newsletter."
    },
    "type": {
      "enum": [
        "email",
        "webhook",
        "twilio",
        "slack",
        "push",
        "in_app"
      ],
      "type": "string",
      "description": "The type of newsletter—`email`, `twilio`, etc."
    },
    "created": {
      "type": "integer",
      "format": "unix timestamp",
      "example": 1552341937,
      "readOnly": true,
      "description": "The date time when the referenced ID was created."
    },
    "sent_at": {
      "type": "integer",
      "format": "unix timestamp",
      "description": "The last time the newsletter was sent."
    },
    "updated": {
      "type": "integer",
      "format": "unix timestamp",
      "example": 1552341937,
      "readOnly": true,
      "description": "The date time when the referenced ID was last updated."
    },
    "content_ids": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "description": "A list of languages in a multi-language newsletter and/or A/B test variants for this message. [Look up a newsletter variant](https://customer.io/docs/api/app/) to get more information about an individual content ID."
    },
    "deduplicate_id": {
      "type": "string",
      "example": "15:1492548073",
      "readOnly": true,
      "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
    },
    "recipient_segment_ids": {
      "type": "array",
      "items": {
        "type": "integer"
      },
      "description": "A list of segments used in a newsletter's recipient filter, returned if newsletter recipients were filtered by one or more segments."
    },
    "subscription_topic_id": {
      "type": "integer",
      "example": 1,
      "description": "The identifier of a subscription topic. Remember, subscription topics are assigned an incrementing number, starting at 1."
    }
  }
}
integer newsletter_id
{
  "type": "integer",
  "example": 10,
  "description": "The identifier for a newsletter."
}
string next
{
  "type": "string",
  "description": "Indicates the next page of results. Add `?start=<next_value>` to the request to get the next page of results."
}
object notAudienceFilter
{
  "oneOf": [
    {
      "type": "object",
      "title": "and",
      "properties": {
        "and": {
          "type": "array",
          "items": {
            "type": "object",
            "title": "People Filter",
            "properties": {
              "or": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "title": "segment",
                      "properties": {
                        "segment": {
                          "type": "object",
                          "title": "segment",
                          "properties": {
                            "id": {
                              "type": "integer",
                              "example": 4,
                              "description": "The ID of the segment you want to return people from."
                            }
                          },
                          "description": "Provide the `id` of a segment containing people you want to search for."
                        }
                      },
                      "description": "Filter for people who belong to a segment."
                    },
                    {
                      "type": "object",
                      "title": "audience",
                      "properties": {
                        "attribute": {
                          "type": "object",
                          "title": "attribute",
                          "example": {
                            "field": "unsubscribed",
                            "value": true,
                            "operator": "eq"
                          },
                          "required": [
                            "field",
                            "operator"
                          ],
                          "properties": {
                            "field": {
                              "type": "string",
                              "example": "first_name",
                              "description": "The name of the attribute you want to filter against."
                            },
                            "value": {
                              "type": "string",
                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                            },
                            "operator": {
                              "enum": [
                                "eq",
                                "exists"
                              ],
                              "type": "string",
                              "description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
                            }
                          },
                          "description": "Filter your audience by attribute."
                        }
                      },
                      "description": "filter for people who have an attribute or an attribute value."
                    }
                  ]
                },
                "description": "Returns results matching *any* conditions."
              },
              "and": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "title": "segment",
                      "properties": {
                        "segment": {
                          "type": "object",
                          "title": "segment",
                          "properties": {
                            "id": {
                              "type": "integer",
                              "example": 4,
                              "description": "The ID of the segment you want to return people from."
                            }
                          },
                          "description": "Provide the `id` of a segment containing people you want to search for."
                        }
                      },
                      "description": "Filter for people who belong to a segment."
                    },
                    {
                      "type": "object",
                      "title": "audience",
                      "properties": {
                        "attribute": {
                          "type": "object",
                          "title": "attribute",
                          "example": {
                            "field": "unsubscribed",
                            "value": true,
                            "operator": "eq"
                          },
                          "required": [
                            "field",
                            "operator"
                          ],
                          "properties": {
                            "field": {
                              "type": "string",
                              "example": "first_name",
                              "description": "The name of the attribute you want to filter against."
                            },
                            "value": {
                              "type": "string",
                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                            },
                            "operator": {
                              "enum": [
                                "eq",
                                "exists"
                              ],
                              "type": "string",
                              "description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
                            }
                          },
                          "description": "Filter your audience by attribute."
                        }
                      },
                      "description": "filter for people who have an attribute or an attribute value."
                    }
                  ]
                },
                "description": "Returns results matching *all* conditions."
              },
              "not": {
                "oneOf": [
                  {
                    "type": "object",
                    "title": "and",
                    "properties": {
                      "and": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "object",
                              "title": "segment",
                              "properties": {
                                "segment": {
                                  "type": "object",
                                  "title": "segment",
                                  "properties": {
                                    "id": {
                                      "type": "integer",
                                      "example": 4,
                                      "description": "The ID of the segment you want to return people from."
                                    }
                                  },
                                  "description": "Provide the `id` of a segment containing people you want to search for."
                                }
                              },
                              "description": "Filter for people who belong to a segment."
                            },
                            {
                              "type": "object",
                              "title": "audience",
                              "properties": {
                                "attribute": {
                                  "type": "object",
                                  "title": "attribute",
                                  "example": {
                                    "field": "unsubscribed",
                                    "value": true,
                                    "operator": "eq"
                                  },
                                  "required": [
                                    "field",
                                    "operator"
                                  ],
                                  "properties": {
                                    "field": {
                                      "type": "string",
                                      "example": "first_name",
                                      "description": "The name of the attribute you want to filter against."
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                    },
                                    "operator": {
                                      "enum": [
                                        "eq",
                                        "exists"
                                      ],
                                      "type": "string",
                                      "description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
                                    }
                                  },
                                  "description": "Filter your audience by attribute."
                                }
                              },
                              "description": "filter for people who have an attribute or an attribute value."
                            }
                          ]
                        },
                        "description": "Match *all* conditions to return results."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "or",
                    "properties": {
                      "or": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "object",
                              "title": "segment",
                              "properties": {
                                "segment": {
                                  "type": "object",
                                  "title": "segment",
                                  "properties": {
                                    "id": {
                                      "type": "integer",
                                      "example": 4,
                                      "description": "The ID of the segment you want to return people from."
                                    }
                                  },
                                  "description": "Provide the `id` of a segment containing people you want to search for."
                                }
                              },
                              "description": "Filter for people who belong to a segment."
                            },
                            {
                              "type": "object",
                              "title": "audience",
                              "properties": {
                                "attribute": {
                                  "type": "object",
                                  "title": "attribute",
                                  "example": {
                                    "field": "unsubscribed",
                                    "value": true,
                                    "operator": "eq"
                                  },
                                  "required": [
                                    "field",
                                    "operator"
                                  ],
                                  "properties": {
                                    "field": {
                                      "type": "string",
                                      "example": "first_name",
                                      "description": "The name of the attribute you want to filter against."
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                    },
                                    "operator": {
                                      "enum": [
                                        "eq",
                                        "exists"
                                      ],
                                      "type": "string",
                                      "description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
                                    }
                                  },
                                  "description": "Filter your audience by attribute."
                                }
                              },
                              "description": "filter for people who have an attribute or an attribute value."
                            }
                          ]
                        },
                        "description": "Match *any* condition to return results."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "segment",
                    "properties": {
                      "segment": {
                        "type": "object",
                        "title": "segment",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "example": 4,
                            "description": "The ID of the segment you want to return people from."
                          }
                        },
                        "description": "Provide the `id` of a segment containing people you want to search for."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "attribute",
                    "properties": {
                      "attribute": {
                        "type": "object",
                        "title": "attribute",
                        "example": {
                          "field": "unsubscribed",
                          "value": true,
                          "operator": "eq"
                        },
                        "required": [
                          "field",
                          "operator"
                        ],
                        "properties": {
                          "field": {
                            "type": "string",
                            "example": "first_name",
                            "description": "The name of the attribute you want to filter against."
                          },
                          "value": {
                            "type": "string",
                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                          },
                          "operator": {
                            "enum": [
                              "eq",
                              "exists"
                            ],
                            "type": "string",
                            "description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
                          }
                        },
                        "description": "Filter your audience by attribute."
                      }
                    }
                  }
                ],
                "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
              },
              "segment": {
                "type": "object",
                "title": "segment",
                "properties": {
                  "id": {
                    "type": "integer",
                    "example": 4,
                    "description": "The ID of the segment you want to return people from."
                  }
                },
                "description": "Provide the `id` of a segment containing people you want to search for."
              },
              "attribute": {
                "type": "object",
                "title": "attribute",
                "example": {
                  "field": "unsubscribed",
                  "value": true,
                  "operator": "eq"
                },
                "required": [
                  "field",
                  "operator"
                ],
                "properties": {
                  "field": {
                    "type": "string",
                    "example": "first_name",
                    "description": "The name of the attribute you want to filter against."
                  },
                  "value": {
                    "type": "string",
                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                  },
                  "operator": {
                    "enum": [
                      "eq",
                      "exists"
                    ],
                    "type": "string",
                    "description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
                  }
                },
                "description": "Filter your audience by attribute."
              }
            },
            "description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
          },
          "description": "Match *all* conditions to return results."
        }
      }
    },
    {
      "type": "object",
      "title": "or",
      "properties": {
        "or": {
          "type": "array",
          "items": {
            "type": "object",
            "title": "People Filter",
            "properties": {
              "or": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "title": "segment",
                      "properties": {
                        "segment": {
                          "type": "object",
                          "title": "segment",
                          "properties": {
                            "id": {
                              "type": "integer",
                              "example": 4,
                              "description": "The ID of the segment you want to return people from."
                            }
                          },
                          "description": "Provide the `id` of a segment containing people you want to search for."
                        }
                      },
                      "description": "Filter for people who belong to a segment."
                    },
                    {
                      "type": "object",
                      "title": "audience",
                      "properties": {
                        "attribute": {
                          "type": "object",
                          "title": "attribute",
                          "example": {
                            "field": "unsubscribed",
                            "value": true,
                            "operator": "eq"
                          },
                          "required": [
                            "field",
                            "operator"
                          ],
                          "properties": {
                            "field": {
                              "type": "string",
                              "example": "first_name",
                              "description": "The name of the attribute you want to filter against."
                            },
                            "value": {
                              "type": "string",
                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                            },
                            "operator": {
                              "enum": [
                                "eq",
                                "exists"
                              ],
                              "type": "string",
                              "description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
                            }
                          },
                          "description": "Filter your audience by attribute."
                        }
                      },
                      "description": "filter for people who have an attribute or an attribute value."
                    }
                  ]
                },
                "description": "Returns results matching *any* conditions."
              },
              "and": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "title": "segment",
                      "properties": {
                        "segment": {
                          "type": "object",
                          "title": "segment",
                          "properties": {
                            "id": {
                              "type": "integer",
                              "example": 4,
                              "description": "The ID of the segment you want to return people from."
                            }
                          },
                          "description": "Provide the `id` of a segment containing people you want to search for."
                        }
                      },
                      "description": "Filter for people who belong to a segment."
                    },
                    {
                      "type": "object",
                      "title": "audience",
                      "properties": {
                        "attribute": {
                          "type": "object",
                          "title": "attribute",
                          "example": {
                            "field": "unsubscribed",
                            "value": true,
                            "operator": "eq"
                          },
                          "required": [
                            "field",
                            "operator"
                          ],
                          "properties": {
                            "field": {
                              "type": "string",
                              "example": "first_name",
                              "description": "The name of the attribute you want to filter against."
                            },
                            "value": {
                              "type": "string",
                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                            },
                            "operator": {
                              "enum": [
                                "eq",
                                "exists"
                              ],
                              "type": "string",
                              "description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
                            }
                          },
                          "description": "Filter your audience by attribute."
                        }
                      },
                      "description": "filter for people who have an attribute or an attribute value."
                    }
                  ]
                },
                "description": "Returns results matching *all* conditions."
              },
              "not": {
                "oneOf": [
                  {
                    "type": "object",
                    "title": "and",
                    "properties": {
                      "and": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "object",
                              "title": "segment",
                              "properties": {
                                "segment": {
                                  "type": "object",
                                  "title": "segment",
                                  "properties": {
                                    "id": {
                                      "type": "integer",
                                      "example": 4,
                                      "description": "The ID of the segment you want to return people from."
                                    }
                                  },
                                  "description": "Provide the `id` of a segment containing people you want to search for."
                                }
                              },
                              "description": "Filter for people who belong to a segment."
                            },
                            {
                              "type": "object",
                              "title": "audience",
                              "properties": {
                                "attribute": {
                                  "type": "object",
                                  "title": "attribute",
                                  "example": {
                                    "field": "unsubscribed",
                                    "value": true,
                                    "operator": "eq"
                                  },
                                  "required": [
                                    "field",
                                    "operator"
                                  ],
                                  "properties": {
                                    "field": {
                                      "type": "string",
                                      "example": "first_name",
                                      "description": "The name of the attribute you want to filter against."
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                    },
                                    "operator": {
                                      "enum": [
                                        "eq",
                                        "exists"
                                      ],
                                      "type": "string",
                                      "description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
                                    }
                                  },
                                  "description": "Filter your audience by attribute."
                                }
                              },
                              "description": "filter for people who have an attribute or an attribute value."
                            }
                          ]
                        },
                        "description": "Match *all* conditions to return results."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "or",
                    "properties": {
                      "or": {
                        "type": "array",
                        "items": {
                          "anyOf": [
                            {
                              "type": "object",
                              "title": "segment",
                              "properties": {
                                "segment": {
                                  "type": "object",
                                  "title": "segment",
                                  "properties": {
                                    "id": {
                                      "type": "integer",
                                      "example": 4,
                                      "description": "The ID of the segment you want to return people from."
                                    }
                                  },
                                  "description": "Provide the `id` of a segment containing people you want to search for."
                                }
                              },
                              "description": "Filter for people who belong to a segment."
                            },
                            {
                              "type": "object",
                              "title": "audience",
                              "properties": {
                                "attribute": {
                                  "type": "object",
                                  "title": "attribute",
                                  "example": {
                                    "field": "unsubscribed",
                                    "value": true,
                                    "operator": "eq"
                                  },
                                  "required": [
                                    "field",
                                    "operator"
                                  ],
                                  "properties": {
                                    "field": {
                                      "type": "string",
                                      "example": "first_name",
                                      "description": "The name of the attribute you want to filter against."
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                    },
                                    "operator": {
                                      "enum": [
                                        "eq",
                                        "exists"
                                      ],
                                      "type": "string",
                                      "description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
                                    }
                                  },
                                  "description": "Filter your audience by attribute."
                                }
                              },
                              "description": "filter for people who have an attribute or an attribute value."
                            }
                          ]
                        },
                        "description": "Match *any* condition to return results."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "segment",
                    "properties": {
                      "segment": {
                        "type": "object",
                        "title": "segment",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "example": 4,
                            "description": "The ID of the segment you want to return people from."
                          }
                        },
                        "description": "Provide the `id` of a segment containing people you want to search for."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "attribute",
                    "properties": {
                      "attribute": {
                        "type": "object",
                        "title": "attribute",
                        "example": {
                          "field": "unsubscribed",
                          "value": true,
                          "operator": "eq"
                        },
                        "required": [
                          "field",
                          "operator"
                        ],
                        "properties": {
                          "field": {
                            "type": "string",
                            "example": "first_name",
                            "description": "The name of the attribute you want to filter against."
                          },
                          "value": {
                            "type": "string",
                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                          },
                          "operator": {
                            "enum": [
                              "eq",
                              "exists"
                            ],
                            "type": "string",
                            "description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
                          }
                        },
                        "description": "Filter your audience by attribute."
                      }
                    }
                  }
                ],
                "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
              },
              "segment": {
                "type": "object",
                "title": "segment",
                "properties": {
                  "id": {
                    "type": "integer",
                    "example": 4,
                    "description": "The ID of the segment you want to return people from."
                  }
                },
                "description": "Provide the `id` of a segment containing people you want to search for."
              },
              "attribute": {
                "type": "object",
                "title": "attribute",
                "example": {
                  "field": "unsubscribed",
                  "value": true,
                  "operator": "eq"
                },
                "required": [
                  "field",
                  "operator"
                ],
                "properties": {
                  "field": {
                    "type": "string",
                    "example": "first_name",
                    "description": "The name of the attribute you want to filter against."
                  },
                  "value": {
                    "type": "string",
                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                  },
                  "operator": {
                    "enum": [
                      "eq",
                      "exists"
                    ],
                    "type": "string",
                    "description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
                  }
                },
                "description": "Filter your audience by attribute."
              }
            },
            "description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
          },
          "description": "Match *any* condition to return results."
        }
      }
    },
    {
      "type": "object",
      "title": "segment",
      "properties": {
        "segment": {
          "type": "object",
          "title": "segment",
          "properties": {
            "id": {
              "type": "integer",
              "example": 4,
              "description": "The ID of the segment you want to return people from."
            }
          },
          "description": "Provide the `id` of a segment containing people you want to search for."
        }
      }
    },
    {
      "type": "object",
      "title": "attribute",
      "properties": {
        "attribute": {
          "type": "object",
          "title": "attribute",
          "example": {
            "field": "unsubscribed",
            "value": true,
            "operator": "eq"
          },
          "required": [
            "field",
            "operator"
          ],
          "properties": {
            "field": {
              "type": "string",
              "example": "first_name",
              "description": "The name of the attribute you want to filter against."
            },
            "value": {
              "type": "string",
              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
            },
            "operator": {
              "enum": [
                "eq",
                "exists"
              ],
              "type": "string",
              "description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
            }
          },
          "description": "Filter your audience by attribute."
        }
      }
    }
  ],
  "title": "not",
  "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
}
string not_nullable_customer_id
{
  "type": "string",
  "example": "42",
  "description": "The ID of a customer profile, analogous to a \"person\" in the UI."
}
string not_nullable_email_address
{
  "type": "string",
  "example": "test@example.com",
  "description": "The email address of the customer."
}
object objectFilter
{
  "oneOf": [
    {
      "type": "object",
      "title": "and",
      "properties": {
        "and": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "or": {
                "type": "array",
                "items": {
                  "type": "object",
                  "title": "object attribute",
                  "example": {
                    "field": "cancelled",
                    "value": true,
                    "operator": "eq"
                  },
                  "required": [
                    "field",
                    "operator"
                  ],
                  "properties": {
                    "field": {
                      "type": "string",
                      "example": "location",
                      "description": "The name of the attribute you want to filter against."
                    },
                    "value": {
                      "type": "string",
                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                    },
                    "operator": {
                      "enum": [
                        "eq",
                        "exists"
                      ],
                      "type": "string",
                      "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                    }
                  },
                  "description": "Filter your objects by their attributes."
                },
                "description": "Returns results matching *any* conditions."
              },
              "not": {
                "oneOf": [
                  {
                    "type": "object",
                    "title": "and",
                    "properties": {
                      "and": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "title": "object attribute",
                          "example": {
                            "field": "cancelled",
                            "value": true,
                            "operator": "eq"
                          },
                          "required": [
                            "field",
                            "operator"
                          ],
                          "properties": {
                            "field": {
                              "type": "string",
                              "example": "location",
                              "description": "The name of the attribute you want to filter against."
                            },
                            "value": {
                              "type": "string",
                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                            },
                            "operator": {
                              "enum": [
                                "eq",
                                "exists"
                              ],
                              "type": "string",
                              "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                            }
                          },
                          "description": "Filter your objects by their attributes."
                        },
                        "description": "Match *all* conditions to return results."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "or",
                    "properties": {
                      "or": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "title": "object attribute",
                          "example": {
                            "field": "cancelled",
                            "value": true,
                            "operator": "eq"
                          },
                          "required": [
                            "field",
                            "operator"
                          ],
                          "properties": {
                            "field": {
                              "type": "string",
                              "example": "location",
                              "description": "The name of the attribute you want to filter against."
                            },
                            "value": {
                              "type": "string",
                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                            },
                            "operator": {
                              "enum": [
                                "eq",
                                "exists"
                              ],
                              "type": "string",
                              "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                            }
                          },
                          "description": "Filter your objects by their attributes."
                        },
                        "description": "Match *any* condition to return results."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "object attribute",
                    "properties": {
                      "object_attribute": {
                        "type": "object",
                        "title": "object attribute",
                        "example": {
                          "field": "cancelled",
                          "value": true,
                          "type_id": 1,
                          "operator": "eq"
                        },
                        "required": [
                          "field",
                          "operator",
                          "type_id"
                        ],
                        "properties": {
                          "field": {
                            "type": "string",
                            "example": "location",
                            "description": "The name of the attribute you want to filter against."
                          },
                          "value": {
                            "type": "string",
                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                          },
                          "type_id": {
                            "type": "string",
                            "example": "1",
                            "nullable": false,
                            "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
                          },
                          "operator": {
                            "enum": [
                              "eq",
                              "exists"
                            ],
                            "type": "string",
                            "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                          }
                        },
                        "description": "Filter your objects by their attributes."
                      }
                    }
                  }
                ],
                "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
              },
              "object_attribute": {
                "type": "object",
                "title": "object attribute",
                "example": {
                  "field": "cancelled",
                  "value": true,
                  "type_id": 1,
                  "operator": "eq"
                },
                "required": [
                  "field",
                  "operator",
                  "type_id"
                ],
                "properties": {
                  "field": {
                    "type": "string",
                    "example": "location",
                    "description": "The name of the attribute you want to filter against."
                  },
                  "value": {
                    "type": "string",
                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                  },
                  "type_id": {
                    "type": "string",
                    "example": "1",
                    "nullable": false,
                    "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
                  },
                  "operator": {
                    "enum": [
                      "eq",
                      "exists"
                    ],
                    "type": "string",
                    "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                  }
                },
                "description": "Filter your objects by their attributes."
              }
            }
          },
          "description": "Match *all* conditions to return results."
        }
      }
    },
    {
      "type": "object",
      "title": "or",
      "properties": {
        "or": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "and": {
                "type": "array",
                "items": {
                  "type": "object",
                  "title": "object attribute",
                  "example": {
                    "field": "cancelled",
                    "value": true,
                    "operator": "eq"
                  },
                  "required": [
                    "field",
                    "operator"
                  ],
                  "properties": {
                    "field": {
                      "type": "string",
                      "example": "location",
                      "description": "The name of the attribute you want to filter against."
                    },
                    "value": {
                      "type": "string",
                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                    },
                    "operator": {
                      "enum": [
                        "eq",
                        "exists"
                      ],
                      "type": "string",
                      "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                    }
                  },
                  "description": "Filter your objects by their attributes."
                },
                "description": "Returns results matching *all* conditions."
              },
              "not": {
                "oneOf": [
                  {
                    "type": "object",
                    "title": "and",
                    "properties": {
                      "and": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "title": "object attribute",
                          "example": {
                            "field": "cancelled",
                            "value": true,
                            "operator": "eq"
                          },
                          "required": [
                            "field",
                            "operator"
                          ],
                          "properties": {
                            "field": {
                              "type": "string",
                              "example": "location",
                              "description": "The name of the attribute you want to filter against."
                            },
                            "value": {
                              "type": "string",
                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                            },
                            "operator": {
                              "enum": [
                                "eq",
                                "exists"
                              ],
                              "type": "string",
                              "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                            }
                          },
                          "description": "Filter your objects by their attributes."
                        },
                        "description": "Match *all* conditions to return results."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "or",
                    "properties": {
                      "or": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "title": "object attribute",
                          "example": {
                            "field": "cancelled",
                            "value": true,
                            "operator": "eq"
                          },
                          "required": [
                            "field",
                            "operator"
                          ],
                          "properties": {
                            "field": {
                              "type": "string",
                              "example": "location",
                              "description": "The name of the attribute you want to filter against."
                            },
                            "value": {
                              "type": "string",
                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                            },
                            "operator": {
                              "enum": [
                                "eq",
                                "exists"
                              ],
                              "type": "string",
                              "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                            }
                          },
                          "description": "Filter your objects by their attributes."
                        },
                        "description": "Match *any* condition to return results."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "object attribute",
                    "properties": {
                      "object_attribute": {
                        "type": "object",
                        "title": "object attribute",
                        "example": {
                          "field": "cancelled",
                          "value": true,
                          "type_id": 1,
                          "operator": "eq"
                        },
                        "required": [
                          "field",
                          "operator",
                          "type_id"
                        ],
                        "properties": {
                          "field": {
                            "type": "string",
                            "example": "location",
                            "description": "The name of the attribute you want to filter against."
                          },
                          "value": {
                            "type": "string",
                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                          },
                          "type_id": {
                            "type": "string",
                            "example": "1",
                            "nullable": false,
                            "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
                          },
                          "operator": {
                            "enum": [
                              "eq",
                              "exists"
                            ],
                            "type": "string",
                            "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                          }
                        },
                        "description": "Filter your objects by their attributes."
                      }
                    }
                  }
                ],
                "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
              },
              "object_attribute": {
                "type": "object",
                "title": "object attribute",
                "example": {
                  "field": "cancelled",
                  "value": true,
                  "type_id": 1,
                  "operator": "eq"
                },
                "required": [
                  "field",
                  "operator",
                  "type_id"
                ],
                "properties": {
                  "field": {
                    "type": "string",
                    "example": "location",
                    "description": "The name of the attribute you want to filter against."
                  },
                  "value": {
                    "type": "string",
                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                  },
                  "type_id": {
                    "type": "string",
                    "example": "1",
                    "nullable": false,
                    "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
                  },
                  "operator": {
                    "enum": [
                      "eq",
                      "exists"
                    ],
                    "type": "string",
                    "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                  }
                },
                "description": "Filter your objects by their attributes."
              }
            }
          },
          "description": "Match *any* condition to return results."
        }
      }
    },
    {
      "type": "object",
      "title": "not",
      "properties": {
        "not": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "or": {
                "type": "array",
                "items": {
                  "type": "object",
                  "title": "object attribute",
                  "example": {
                    "field": "cancelled",
                    "value": true,
                    "operator": "eq"
                  },
                  "required": [
                    "field",
                    "operator"
                  ],
                  "properties": {
                    "field": {
                      "type": "string",
                      "example": "location",
                      "description": "The name of the attribute you want to filter against."
                    },
                    "value": {
                      "type": "string",
                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                    },
                    "operator": {
                      "enum": [
                        "eq",
                        "exists"
                      ],
                      "type": "string",
                      "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                    }
                  },
                  "description": "Filter your objects by their attributes."
                },
                "description": "Returns results matching *any* conditions."
              },
              "and": {
                "type": "array",
                "items": {
                  "type": "object",
                  "title": "object attribute",
                  "example": {
                    "field": "cancelled",
                    "value": true,
                    "operator": "eq"
                  },
                  "required": [
                    "field",
                    "operator"
                  ],
                  "properties": {
                    "field": {
                      "type": "string",
                      "example": "location",
                      "description": "The name of the attribute you want to filter against."
                    },
                    "value": {
                      "type": "string",
                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                    },
                    "operator": {
                      "enum": [
                        "eq",
                        "exists"
                      ],
                      "type": "string",
                      "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                    }
                  },
                  "description": "Filter your objects by their attributes."
                },
                "description": "Returns results matching *all* conditions."
              },
              "object_attribute": {
                "type": "object",
                "title": "object attribute",
                "example": {
                  "field": "cancelled",
                  "value": true,
                  "type_id": 1,
                  "operator": "eq"
                },
                "required": [
                  "field",
                  "operator",
                  "type_id"
                ],
                "properties": {
                  "field": {
                    "type": "string",
                    "example": "location",
                    "description": "The name of the attribute you want to filter against."
                  },
                  "value": {
                    "type": "string",
                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                  },
                  "type_id": {
                    "type": "string",
                    "example": "1",
                    "nullable": false,
                    "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
                  },
                  "operator": {
                    "enum": [
                      "eq",
                      "exists"
                    ],
                    "type": "string",
                    "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                  }
                },
                "description": "Filter your objects by their attributes."
              }
            }
          },
          "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
        }
      },
      "description": null
    },
    {
      "type": "object",
      "title": "object attribute",
      "properties": {
        "object_attribute": {
          "type": "object",
          "title": "object attribute",
          "example": {
            "field": "cancelled",
            "value": true,
            "type_id": 1,
            "operator": "eq"
          },
          "required": [
            "field",
            "operator",
            "type_id"
          ],
          "properties": {
            "field": {
              "type": "string",
              "example": "location",
              "description": "The name of the attribute you want to filter against."
            },
            "value": {
              "type": "string",
              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
            },
            "type_id": {
              "type": "string",
              "example": "1",
              "nullable": false,
              "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
            },
            "operator": {
              "enum": [
                "eq",
                "exists"
              ],
              "type": "string",
              "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
            }
          },
          "description": "Filter your objects by their attributes."
        }
      },
      "description": "A simple filter to find objects matching an attribute condition."
    }
  ],
  "title": "Object Filter",
  "description": "When filtering for objects, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `object_attribute` represents the individual conditions you can filter a group of people for.\n\nThe top level of this object can only contain a single property, but you can nest `and` and `or` properties to produce complex filters.\n"
}
object objectFilter-2
{
  "type": "object",
  "title": "object attribute",
  "example": {
    "field": "cancelled",
    "value": true,
    "operator": "eq"
  },
  "required": [
    "field",
    "operator"
  ],
  "properties": {
    "field": {
      "type": "string",
      "example": "location",
      "description": "The name of the attribute you want to filter against."
    },
    "value": {
      "type": "string",
      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
    },
    "operator": {
      "enum": [
        "eq",
        "exists"
      ],
      "type": "string",
      "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
    }
  },
  "description": "Filter your objects by their attributes."
}
object objectFilterAnd
{
  "type": "object",
  "title": "and",
  "properties": {
    "and": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "or": {
            "type": "array",
            "items": {
              "type": "object",
              "title": "object attribute",
              "example": {
                "field": "cancelled",
                "value": true,
                "operator": "eq"
              },
              "required": [
                "field",
                "operator"
              ],
              "properties": {
                "field": {
                  "type": "string",
                  "example": "location",
                  "description": "The name of the attribute you want to filter against."
                },
                "value": {
                  "type": "string",
                  "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                },
                "operator": {
                  "enum": [
                    "eq",
                    "exists"
                  ],
                  "type": "string",
                  "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                }
              },
              "description": "Filter your objects by their attributes."
            },
            "description": "Returns results matching *any* conditions."
          },
          "not": {
            "oneOf": [
              {
                "type": "object",
                "title": "and",
                "properties": {
                  "and": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "title": "object attribute",
                      "example": {
                        "field": "cancelled",
                        "value": true,
                        "operator": "eq"
                      },
                      "required": [
                        "field",
                        "operator"
                      ],
                      "properties": {
                        "field": {
                          "type": "string",
                          "example": "location",
                          "description": "The name of the attribute you want to filter against."
                        },
                        "value": {
                          "type": "string",
                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                        },
                        "operator": {
                          "enum": [
                            "eq",
                            "exists"
                          ],
                          "type": "string",
                          "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                        }
                      },
                      "description": "Filter your objects by their attributes."
                    },
                    "description": "Match *all* conditions to return results."
                  }
                }
              },
              {
                "type": "object",
                "title": "or",
                "properties": {
                  "or": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "title": "object attribute",
                      "example": {
                        "field": "cancelled",
                        "value": true,
                        "operator": "eq"
                      },
                      "required": [
                        "field",
                        "operator"
                      ],
                      "properties": {
                        "field": {
                          "type": "string",
                          "example": "location",
                          "description": "The name of the attribute you want to filter against."
                        },
                        "value": {
                          "type": "string",
                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                        },
                        "operator": {
                          "enum": [
                            "eq",
                            "exists"
                          ],
                          "type": "string",
                          "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                        }
                      },
                      "description": "Filter your objects by their attributes."
                    },
                    "description": "Match *any* condition to return results."
                  }
                }
              },
              {
                "type": "object",
                "title": "object attribute",
                "properties": {
                  "object_attribute": {
                    "type": "object",
                    "title": "object attribute",
                    "example": {
                      "field": "cancelled",
                      "value": true,
                      "type_id": 1,
                      "operator": "eq"
                    },
                    "required": [
                      "field",
                      "operator",
                      "type_id"
                    ],
                    "properties": {
                      "field": {
                        "type": "string",
                        "example": "location",
                        "description": "The name of the attribute you want to filter against."
                      },
                      "value": {
                        "type": "string",
                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                      },
                      "type_id": {
                        "type": "string",
                        "example": "1",
                        "nullable": false,
                        "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
                      },
                      "operator": {
                        "enum": [
                          "eq",
                          "exists"
                        ],
                        "type": "string",
                        "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                      }
                    },
                    "description": "Filter your objects by their attributes."
                  }
                }
              }
            ],
            "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
          },
          "object_attribute": {
            "type": "object",
            "title": "object attribute",
            "example": {
              "field": "cancelled",
              "value": true,
              "type_id": 1,
              "operator": "eq"
            },
            "required": [
              "field",
              "operator",
              "type_id"
            ],
            "properties": {
              "field": {
                "type": "string",
                "example": "location",
                "description": "The name of the attribute you want to filter against."
              },
              "value": {
                "type": "string",
                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
              },
              "type_id": {
                "type": "string",
                "example": "1",
                "nullable": false,
                "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
              },
              "operator": {
                "enum": [
                  "eq",
                  "exists"
                ],
                "type": "string",
                "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
              }
            },
            "description": "Filter your objects by their attributes."
          }
        }
      },
      "description": "Match *all* conditions to return results."
    }
  }
}
object objectFilterNot
{
  "type": "object",
  "title": "not",
  "properties": {
    "not": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "or": {
            "type": "array",
            "items": {
              "type": "object",
              "title": "object attribute",
              "example": {
                "field": "cancelled",
                "value": true,
                "operator": "eq"
              },
              "required": [
                "field",
                "operator"
              ],
              "properties": {
                "field": {
                  "type": "string",
                  "example": "location",
                  "description": "The name of the attribute you want to filter against."
                },
                "value": {
                  "type": "string",
                  "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                },
                "operator": {
                  "enum": [
                    "eq",
                    "exists"
                  ],
                  "type": "string",
                  "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                }
              },
              "description": "Filter your objects by their attributes."
            },
            "description": "Returns results matching *any* conditions."
          },
          "and": {
            "type": "array",
            "items": {
              "type": "object",
              "title": "object attribute",
              "example": {
                "field": "cancelled",
                "value": true,
                "operator": "eq"
              },
              "required": [
                "field",
                "operator"
              ],
              "properties": {
                "field": {
                  "type": "string",
                  "example": "location",
                  "description": "The name of the attribute you want to filter against."
                },
                "value": {
                  "type": "string",
                  "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                },
                "operator": {
                  "enum": [
                    "eq",
                    "exists"
                  ],
                  "type": "string",
                  "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                }
              },
              "description": "Filter your objects by their attributes."
            },
            "description": "Returns results matching *all* conditions."
          },
          "object_attribute": {
            "type": "object",
            "title": "object attribute",
            "example": {
              "field": "cancelled",
              "value": true,
              "type_id": 1,
              "operator": "eq"
            },
            "required": [
              "field",
              "operator",
              "type_id"
            ],
            "properties": {
              "field": {
                "type": "string",
                "example": "location",
                "description": "The name of the attribute you want to filter against."
              },
              "value": {
                "type": "string",
                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
              },
              "type_id": {
                "type": "string",
                "example": "1",
                "nullable": false,
                "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
              },
              "operator": {
                "enum": [
                  "eq",
                  "exists"
                ],
                "type": "string",
                "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
              }
            },
            "description": "Filter your objects by their attributes."
          }
        }
      },
      "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
    }
  },
  "description": null
}
object objectFilterOr
{
  "type": "object",
  "title": "or",
  "properties": {
    "or": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "and": {
            "type": "array",
            "items": {
              "type": "object",
              "title": "object attribute",
              "example": {
                "field": "cancelled",
                "value": true,
                "operator": "eq"
              },
              "required": [
                "field",
                "operator"
              ],
              "properties": {
                "field": {
                  "type": "string",
                  "example": "location",
                  "description": "The name of the attribute you want to filter against."
                },
                "value": {
                  "type": "string",
                  "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                },
                "operator": {
                  "enum": [
                    "eq",
                    "exists"
                  ],
                  "type": "string",
                  "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                }
              },
              "description": "Filter your objects by their attributes."
            },
            "description": "Returns results matching *all* conditions."
          },
          "not": {
            "oneOf": [
              {
                "type": "object",
                "title": "and",
                "properties": {
                  "and": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "title": "object attribute",
                      "example": {
                        "field": "cancelled",
                        "value": true,
                        "operator": "eq"
                      },
                      "required": [
                        "field",
                        "operator"
                      ],
                      "properties": {
                        "field": {
                          "type": "string",
                          "example": "location",
                          "description": "The name of the attribute you want to filter against."
                        },
                        "value": {
                          "type": "string",
                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                        },
                        "operator": {
                          "enum": [
                            "eq",
                            "exists"
                          ],
                          "type": "string",
                          "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                        }
                      },
                      "description": "Filter your objects by their attributes."
                    },
                    "description": "Match *all* conditions to return results."
                  }
                }
              },
              {
                "type": "object",
                "title": "or",
                "properties": {
                  "or": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "title": "object attribute",
                      "example": {
                        "field": "cancelled",
                        "value": true,
                        "operator": "eq"
                      },
                      "required": [
                        "field",
                        "operator"
                      ],
                      "properties": {
                        "field": {
                          "type": "string",
                          "example": "location",
                          "description": "The name of the attribute you want to filter against."
                        },
                        "value": {
                          "type": "string",
                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                        },
                        "operator": {
                          "enum": [
                            "eq",
                            "exists"
                          ],
                          "type": "string",
                          "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                        }
                      },
                      "description": "Filter your objects by their attributes."
                    },
                    "description": "Match *any* condition to return results."
                  }
                }
              },
              {
                "type": "object",
                "title": "object attribute",
                "properties": {
                  "object_attribute": {
                    "type": "object",
                    "title": "object attribute",
                    "example": {
                      "field": "cancelled",
                      "value": true,
                      "type_id": 1,
                      "operator": "eq"
                    },
                    "required": [
                      "field",
                      "operator",
                      "type_id"
                    ],
                    "properties": {
                      "field": {
                        "type": "string",
                        "example": "location",
                        "description": "The name of the attribute you want to filter against."
                      },
                      "value": {
                        "type": "string",
                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                      },
                      "type_id": {
                        "type": "string",
                        "example": "1",
                        "nullable": false,
                        "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
                      },
                      "operator": {
                        "enum": [
                          "eq",
                          "exists"
                        ],
                        "type": "string",
                        "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
                      }
                    },
                    "description": "Filter your objects by their attributes."
                  }
                }
              }
            ],
            "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
          },
          "object_attribute": {
            "type": "object",
            "title": "object attribute",
            "example": {
              "field": "cancelled",
              "value": true,
              "type_id": 1,
              "operator": "eq"
            },
            "required": [
              "field",
              "operator",
              "type_id"
            ],
            "properties": {
              "field": {
                "type": "string",
                "example": "location",
                "description": "The name of the attribute you want to filter against."
              },
              "value": {
                "type": "string",
                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
              },
              "type_id": {
                "type": "string",
                "example": "1",
                "nullable": false,
                "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
              },
              "operator": {
                "enum": [
                  "eq",
                  "exists"
                ],
                "type": "string",
                "description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
              }
            },
            "description": "Filter your objects by their attributes."
          }
        }
      },
      "description": "Match *any* condition to return results."
    }
  }
}
object object_add_relationships
{
  "allOf": [
    {
      "allOf": [
        {
          "type": "object",
          "required": [
            "identifiers"
          ],
          "properties": {
            "identifiers": {
              "type": "object",
              "required": [
                "object_type_id",
                "object_id"
              ],
              "properties": {
                "object_id": {
                  "type": "string",
                  "example": "acme",
                  "nullable": false,
                  "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly."
                },
                "object_type_id": {
                  "type": "string",
                  "example": "1",
                  "nullable": false,
                  "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
                }
              },
              "description": "Represents an individual object, where the `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object."
            }
          }
        },
        {
          "type": "object",
          "required": [
            "type"
          ],
          "properties": {
            "type": {
              "enum": [
                "object"
              ],
              "type": "string",
              "description": "The operation modifies a single object—non person data."
            }
          }
        }
      ]
    },
    {
      "type": "object",
      "required": [
        "action",
        "cio_relationships"
      ],
      "properties": {
        "action": {
          "enum": [
            "add_relationships"
          ],
          "type": "string",
          "description": "This operation associates an object with one or more people."
        },
        "cio_relationships": {
          "type": "array",
          "items": {
            "type": "object",
            "example": {
              "identifiers": {
                "id": "42X"
              },
              "relationship_attributes": {
                "role": "admin",
                "date_created": 1702480414
              }
            },
            "properties": {
              "identifiers": {
                "oneOf": [
                  {
                    "type": "object",
                    "title": "id",
                    "properties": {
                      "id": {
                        "type": "string",
                        "example": "42",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "email",
                    "properties": {
                      "email": {
                        "type": "string",
                        "example": "test@example.com",
                        "description": "The email address of the customer."
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "cio_id",
                    "properties": {
                      "cio_id": {
                        "type": "string",
                        "example": "a3000001",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
                      }
                    }
                  }
                ]
              },
              "relationship_attributes": {
                "type": "object",
                "description": "[Coming January 2024](https://customer.io/docs/api/app/) - If we have not rolled out relationship attributes to your account yet and you send them with your request, your request will go through but we won't store your relationship attributes. The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                "additionalProperties": {
                  "x-additionalPropertiesName": "Relationship Attributes"
                }
              }
            }
          },
          "description": "The people you want to associate with an object. Each object in the array represents a person."
        }
      }
    }
  ],
  "title": "add_relationships",
  "description": "Add relationships between an object and one or more people."
}
Load more schemas