Customer.io · Schema
campaignObject
Behavioral DataBroadcastCampaignsCDPCustomer DataCustomer Data PlatformData IngestionEmailEvent TrackingMarketing AutomationMessagingPush NotificationsSegmentsSMSTransactional EmailA2A
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/customer-io/main/json-schema/customer-io-campaign-object-schema.json",
"title": "campaignObject",
"x-generated": "2026-10-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/customer-io-journeys-api-openapi.yml#/components/schemas/campaignObject",
"x-scalar-ignore": true,
"type": "object",
"oneOf": [
{
"title": "Segment",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/campaign_id"
},
"deduplicate_id": {
"$ref": "#/$defs/deduplicate_id"
},
"name": {
"$ref": "#/$defs/campaign_name"
},
"description": {
"$ref": "#/$defs/campaign_description"
},
"type": {
"type": "string",
"deprecated": true,
"description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
"enum": [
"segment"
]
},
"created": {
"$ref": "#/$defs/created"
},
"updated": {
"$ref": "#/$defs/updated"
},
"active": {
"$ref": "#/$defs/active"
},
"state": {
"$ref": "#/$defs/state"
},
"actions": {
"$ref": "#/$defs/campaign_actions"
},
"first_started": {
"$ref": "#/$defs/first_started"
},
"tags": {
"$ref": "#/$defs/tags"
},
"trigger_segment_ids": {
"description": "A list of segments used in the automation trigger, returned if the automation trigger included one or more segment conditions.",
"type": "array",
"items": {
"type": "integer"
}
},
"filter_segment_ids": {
"$ref": "#/$defs/filter_segment_ids"
},
"msg_templates": {
"type": "array",
"deprecated": true,
"description": "Indicates the message templates used in this automation.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The message type the template represents.",
"enum": [
"email",
"sms",
"push",
"slack"
]
},
"id": {
"type": "integer",
"description": "The identifier for the template."
}
}
}
}
}
},
{
"title": "Event",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/campaign_id"
},
"deduplicate_id": {
"$ref": "#/$defs/deduplicate_id"
},
"name": {
"$ref": "#/$defs/campaign_name"
},
"description": {
"$ref": "#/$defs/campaign_description"
},
"type": {
"type": "string",
"deprecated": true,
"description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
"enum": [
"event"
]
},
"created": {
"$ref": "#/$defs/created"
},
"updated": {
"$ref": "#/$defs/updated"
},
"active": {
"$ref": "#/$defs/active"
},
"state": {
"$ref": "#/$defs/state"
},
"actions": {
"$ref": "#/$defs/campaign_actions"
},
"first_started": {
"$ref": "#/$defs/first_started"
},
"tags": {
"$ref": "#/$defs/tags"
},
"filter_segment_ids": {
"$ref": "#/$defs/filter_segment_ids"
},
"event_name": {
"description": "The name of the event. How you reference the event in automations or segments.",
"type": "string"
}
}
},
{
"title": "Form",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/campaign_id"
},
"deduplicate_id": {
"$ref": "#/$defs/deduplicate_id"
},
"name": {
"$ref": "#/$defs/campaign_name"
},
"description": {
"$ref": "#/$defs/campaign_description"
},
"type": {
"type": "string",
"deprecated": true,
"description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
"enum": [
"form"
]
},
"created": {
"$ref": "#/$defs/created"
},
"updated": {
"$ref": "#/$defs/updated"
},
"active": {
"$ref": "#/$defs/active"
},
"state": {
"$ref": "#/$defs/state"
},
"actions": {
"$ref": "#/$defs/campaign_actions"
},
"first_started": {
"$ref": "#/$defs/first_started"
},
"tags": {
"$ref": "#/$defs/tags"
},
"filter_segment_ids": {
"$ref": "#/$defs/filter_segment_ids"
}
}
},
{
"title": "Date",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/campaign_id"
},
"deduplicate_id": {
"$ref": "#/$defs/deduplicate_id"
},
"name": {
"$ref": "#/$defs/campaign_name"
},
"description": {
"$ref": "#/$defs/campaign_description"
},
"type": {
"type": "string",
"deprecated": true,
"description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
"enum": [
"date"
]
},
"created": {
"$ref": "#/$defs/created"
},
"updated": {
"$ref": "#/$defs/updated"
},
"active": {
"$ref": "#/$defs/active"
},
"state": {
"$ref": "#/$defs/state"
},
"actions": {
"$ref": "#/$defs/campaign_actions"
},
"first_started": {
"$ref": "#/$defs/first_started"
},
"tags": {
"$ref": "#/$defs/tags"
},
"filter_segment_ids": {
"$ref": "#/$defs/filter_segment_ids"
},
"frequency": {
"description": "How often a person will receive this automation based on the date specified in the automation trigger.",
"type": "string",
"enum": [
"once",
"monthly",
"yearly"
]
},
"date_attribute": {
"description": "The attribute on people's profiles you use to configure the date of the automation trigger.",
"type": "string"
},
"timezone": {
"description": "The time zone you set to configure the date of the automation trigger.",
"type": "string"
},
"use_customer_timezone": {
"description": "If you chose \"the user's time zone\" while configuring the date of the automation trigger, this is `true`. Otherwise, you set a specific time zone so it's `false`.",
"type": "boolean"
},
"start_hour": {
"description": "The hour you set the automation to trigger. Follows the 24-hour clock.",
"type": "integer"
},
"start_minutes": {
"description": "The minutes you set the automation to trigger. Follows the 24-hour clock.",
"type": "integer"
}
}
},
{
"title": "Relationship",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/campaign_id"
},
"deduplicate_id": {
"$ref": "#/$defs/deduplicate_id"
},
"name": {
"$ref": "#/$defs/campaign_name"
},
"description": {
"$ref": "#/$defs/campaign_description"
},
"type": {
"type": "string",
"deprecated": true,
"description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
"enum": [
"relationship"
]
},
"created": {
"$ref": "#/$defs/created"
},
"updated": {
"$ref": "#/$defs/updated"
},
"active": {
"$ref": "#/$defs/active"
},
"state": {
"$ref": "#/$defs/state"
},
"actions": {
"$ref": "#/$defs/campaign_actions"
},
"first_started": {
"$ref": "#/$defs/first_started"
},
"tags": {
"$ref": "#/$defs/tags"
},
"filter_segment_ids": {
"$ref": "#/$defs/filter_segment_ids"
},
"object_type_id": {
"$ref": "#/$defs/object_type_id_trigger"
},
"filter_object_attributes": {
"$ref": "#/$defs/filter_object_attributes"
},
"filter_relationship_attributes": {
"$ref": "#/$defs/filter_relationship_attributes"
},
"audience": {
"description": "Defines the people who will start a journey in your automation.",
"type": "object",
"properties": {
"type": {
"description": "The selected audience type. `0` means person added to object; `1` can mean every or certain people in the object. Filters appear only for subset audiences.",
"type": "integer",
"minimum": 0,
"maximum": 1
},
"person_filters": {
"description": "Returns the profile attributes you filtered the audience by, if any. Only applies to `type 1`, \"Certain people in the object\".",
"type": "object"
},
"relationship_filters": {
"description": "Returns the relationship attributes you filtered the audience by, if any. Only applies to `type 1`, \"Certain people in the object\".",
"type": "object"
}
}
},
"relationship_attribute_triggers": {
"description": "A list of relationship attributes used to trigger the automation.",
"type": "object"
}
}
},
{
"title": "Object",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/campaign_id"
},
"deduplicate_id": {
"$ref": "#/$defs/deduplicate_id"
},
"name": {
"$ref": "#/$defs/campaign_name"
},
"description": {
"$ref": "#/$defs/campaign_description"
},
"type": {
"type": "string",
"deprecated": true,
"description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
"enum": [
"object"
]
},
"created": {
"$ref": "#/$defs/created"
},
"updated": {
"$ref": "#/$defs/updated"
},
"active": {
"$ref": "#/$defs/active"
},
"state": {
"$ref": "#/$defs/state"
},
"actions": {
"$ref": "#/$defs/campaign_actions"
},
"first_started": {
"$ref": "#/$defs/first_started"
},
"tags": {
"$ref": "#/$defs/tags"
},
"filter_segment_ids": {
"$ref": "#/$defs/filter_segment_ids"
},
"object_type_id": {
"$ref": "#/$defs/object_type_id_trigger"
},
"filter_object_attributes": {
"$ref": "#/$defs/filter_object_attributes"
},
"filter_relationship_attributes": {
"$ref": "#/$defs/filter_relationship_attributes"
},
"audience": {
"description": "Defines the people who will start a journey in your automation.",
"type": "object",
"properties": {
"type": {
"description": "The type of audience selected. \"Every person in the object\" is `1`. \"Certain people in the object\" is also `1`. \"Certain people\" will always have one or more audience filters (see below). \"Every person\" will never have an audience filter.",
"type": "integer",
"minimum": 0,
"maximum": 1
},
"person_filters": {
"description": "Returns the profile attributes you filtered the audience by, if any. Only applies to `type 1`, \"Certain people in the object\".",
"type": "object"
},
"relationship_filters": {
"description": "Returns the relationship attributes you filtered the audience by, if any. Only applies to `type 1`, \"Certain people in the object\".",
"type": "object"
}
}
},
"object_attribute_triggers": {
"description": "A list of object attributes used to trigger the automation.",
"type": "object"
}
}
},
{
"title": "Webhook",
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/campaign_id"
},
"deduplicate_id": {
"$ref": "#/$defs/deduplicate_id"
},
"name": {
"$ref": "#/$defs/campaign_name"
},
"description": {
"$ref": "#/$defs/campaign_description"
},
"type": {
"type": "string",
"deprecated": true,
"description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
"enum": [
"webhook"
]
},
"created": {
"$ref": "#/$defs/created"
},
"updated": {
"$ref": "#/$defs/updated"
},
"active": {
"$ref": "#/$defs/active"
},
"state": {
"$ref": "#/$defs/state"
},
"actions": {
"$ref": "#/$defs/campaign_actions"
},
"first_started": {
"$ref": "#/$defs/first_started"
},
"tags": {
"$ref": "#/$defs/tags"
},
"webhook_id": {
"description": "The ID of the webhook trigger generated by Customer.io.",
"type": "integer"
}
}
}
],
"$defs": {
"active": {
"x-scalar-ignore": true,
"type": "boolean",
"description": "If true, the automation is active and can still send messages."
},
"campaign_actions": {
"x-scalar-ignore": true,
"type": "array",
"description": "An array of actions contained within the automation.",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The action type."
},
"id": {
"type": "integer",
"description": "The identifier for the action."
}
}
}
},
"campaign_description": {
"x-scalar-ignore": true,
"type": "string",
"description": "The description of the automation, if one was set."
},
"campaign_id": {
"x-scalar-ignore": true,
"description": "The identifier for an automation.",
"type": "integer"
},
"campaign_name": {
"x-scalar-ignore": true,
"type": "string",
"description": "The name of the automation.",
"readOnly": true
},
"created": {
"x-scalar-ignore": true,
"type": "integer",
"format": "unix timestamp",
"description": "The date time when the referenced ID was created.",
"readOnly": true
},
"deduplicate_id": {
"x-scalar-ignore": true,
"type": "string",
"readOnly": true,
"description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated."
},
"filter_object_attributes": {
"x-scalar-ignore": true,
"description": "A list of object attributes used in the automation filter, returned if the automation audience was filtered on one or more object attributes.",
"type": "string"
},
"filter_relationship_attributes": {
"x-scalar-ignore": true,
"description": "A list of relationship attributes used in the automation filter, returned if the automation audience was filtered on one or more relationship attributes.",
"type": "string"
},
"filter_segment_ids": {
"x-scalar-ignore": true,
"description": "A list of segments used in the automation filter, returned if the automation audience was filtered on one or more segments.",
"type": "array",
"items": {
"type": "integer"
}
},
"first_started": {
"x-scalar-ignore": true,
"type": "integer",
"format": "unix timestamp",
"description": "The date and time when you first started the automation and it first became eligible to be triggered."
},
"object_type_id_trigger": {
"x-scalar-ignore": true,
"description": "The object type ID of the trigger.",
"type": "integer"
},
"state": {
"x-scalar-ignore": true,
"type": "string",
"description": "The status of the automation.",
"enum": [
"running",
"draft",
"stopped"
]
},
"tags": {
"x-scalar-ignore": true,
"type": "array",
"description": "An array of tags you set on this automation.",
"items": {
"type": "string"
}
},
"updated": {
"x-scalar-ignore": true,
"type": "integer",
"format": "unix timestamp",
"description": "The date time when the referenced ID was last updated.",
"readOnly": true
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/customer-io-campaign-object"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.