Courier
Qué hace este MCP
Provides notification delivery infrastructure for users, tenants, lists, templates, preferences, journeys, automations, brands, and multi-channel messaging.
Herramientas
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id', 'users'], 'properties': {'users': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}, 'description': 'Array of user objects to add'}, 'job_id': {'type': 'string', 'description': 'The bulk job ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id', 'recipients'], 'properties': {'list_id': {'type': 'string', 'description': 'The list ID'}, 'recipients': {'type': 'array', 'items': {'type': 'object', 'required': ['recipientId'], 'properties': {'recipientId': {'type': 'string', 'description': 'Recipient ID'}}, 'additionalProperties': False}, 'description': 'Recipients to set on the list'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'tenant_id'], 'properties': {'profile': {'type': 'object', 'description': 'Tenant-scoped profile overrides', 'additionalProperties': {}}, 'user_id': {'type': 'string', 'description': 'The user ID'}, 'tenant_id': {'type': 'string', 'description': 'The tenant ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['journey_id'], 'properties': {'journey_id': {'type': 'string', 'description': 'The journey template ID to archive'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'journey_id'], 'properties': {'journey_id': {'type': 'string', 'description': 'The journey template ID that owns this notification'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id'], 'properties': {'notification_id': {'type': 'string', 'description': 'The notification template ID to archive'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['section_id'], 'properties': {'section_id': {'type': 'string', 'description': 'Id of the preference section to archive'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['section_id', 'topic_id'], 'properties': {'topic_id': {'type': 'string', 'description': 'Id of the subscription preference topic to archive'}, 'section_id': {'type': 'string', 'description': 'Id of the preference section'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['device_set_id'], 'properties': {'device_set_id': {'type': 'string', 'description': 'The device set id (pvs_...)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['request_id'], 'properties': {'request_id': {'type': 'string', 'description': 'The request ID (requestId returned from /send)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['routing_strategy_id'], 'properties': {'routing_strategy_id': {'type': 'string', 'description': 'The routing strategy ID to archive'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'tenants'], 'properties': {'tenants': {'type': 'array', 'items': {'type': 'object', 'required': ['tenant_id'], 'properties': {'profile': {'type': 'object', 'description': 'Tenant-scoped profile overrides', 'additionalProperties': {}}, 'tenant_id': {'type': 'string', 'description': 'Tenant ID'}}, 'additionalProperties': False}, 'description': 'Array of tenant associations'}, 'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'tokens'], 'properties': {'tokens': {'type': 'array', 'items': {'type': 'object', 'required': ['token', 'provider_key'], 'properties': {'token': {'type': 'string', 'description': 'The token string'}, 'device': {'type': 'object', 'properties': {'ad_id': {'type': 'string'}, 'model': {'type': 'string'}, 'app_id': {'type': 'string'}, 'platform': {'type': 'string'}, 'device_id': {'type': 'string'}, 'manufacturer': {'type': 'string'}}, 'description': 'Device metadata', 'additionalProperties': False}, 'tracking': {}, 'properties': {}, 'expiry_date': {'type': ['string', 'boolean'], 'description': 'Expiry as ISO string, false to disable, or omit for default'}, 'provider_key': {'enum': ['firebase-fcm', 'apn', 'expo', 'onesignal'], 'type': 'string', 'description': 'Push provider'}}, 'additionalProperties': False}, 'minItems': 1, 'description': 'Token records to upsert'}, 'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'topics'], 'properties': {'topics': {'type': 'array', 'items': {'type': 'object', 'required': ['topic_id', 'status'], 'properties': {'status': {'enum': ['OPTED_IN', 'OPTED_OUT', 'REQUIRED'], 'type': 'string', 'description': 'Preference status'}, 'topic_id': {'type': 'string', 'description': 'The subscription topic ID'}, 'custom_routing': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Custom channel routing order (e.g. inbox, email)'}, 'has_custom_routing': {'type': 'boolean', 'description': 'Whether custom channel routing is set'}}, 'additionalProperties': False}, 'description': 'The complete set of topic overrides. An empty array resets every existing override.'}, 'user_id': {'type': 'string', 'description': 'The user ID'}, 'tenant_id': {'type': 'string', 'description': 'Scope the replacement to a specific tenant context'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id', 'recipients'], 'properties': {'list_id': {'type': 'string', 'description': 'The list ID'}, 'recipients': {'type': 'array', 'items': {'type': 'object', 'required': ['recipientId'], 'properties': {'recipientId': {'type': 'string', 'description': 'Recipient ID'}}, 'additionalProperties': False}, 'description': 'Recipients to set on the list'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'topics'], 'properties': {'topics': {'type': 'array', 'items': {'type': 'object', 'required': ['topic_id', 'status'], 'properties': {'status': {'enum': ['OPTED_IN', 'OPTED_OUT', 'REQUIRED'], 'type': 'string', 'description': 'Preference status'}, 'topic_id': {'type': 'string', 'description': 'The subscription topic ID'}, 'custom_routing': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Custom channel routing order (e.g. inbox, email)'}, 'has_custom_routing': {'type': 'boolean', 'description': 'Whether custom channel routing is set'}}, 'additionalProperties': False}, 'description': 'Topics to create or update'}, 'user_id': {'type': 'string', 'description': 'The user ID'}, 'tenant_id': {'type': 'string', 'description': 'Scope the update to a specific tenant context'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cancelation_token'], 'properties': {'cancelation_token': {'type': 'string', 'description': 'The cancelation_token that was set when the automation was originally invoked'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'run_id': {'type': 'string', 'description': 'Cancels a single run by id. Mutually exclusive with cancelation_token.'}, 'cancelation_token': {'type': 'string', 'description': 'Cancels every run associated with this token. Mutually exclusive with run_id.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['message_id'], 'properties': {'message_id': {'type': 'string', 'description': 'The message ID to cancel'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'submission_id'], 'properties': {'submission_id': {'type': 'string', 'description': 'The submission ID to cancel'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['platform'], 'properties': {'platform': {'enum': ['nodejs', 'python', 'react', 'ios', 'android', 'flutter', 'react native'], 'type': 'string', 'description': 'Which SDK to return the installation guide for.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'id': {'type': 'string', 'description': 'Optional brand ID; auto-generated if omitted'}, 'name': {'type': 'string', 'description': 'Brand display name'}, 'settings': {'type': 'object', 'properties': {'email': {'type': 'object', 'description': 'Email template settings (header, footer)', 'additionalProperties': {}}, 'inapp': {'type': 'object', 'description': 'In-app notification settings', 'additionalProperties': {}}, 'colors': {'type': 'object', 'required': ['primary', 'secondary'], 'properties': {'primary': {'type': 'string', 'description': 'Primary brand color (hex, e.g. "#1a73e8")'}, 'tertiary': {'type': 'string', 'description': 'Tertiary brand color (hex)'}, 'secondary': {'type': 'string', 'description': 'Secondary brand color (hex, e.g. "#ffffff")'}}, 'description': 'Brand colors', 'additionalProperties': False}}, 'description': 'Brand appearance settings. If omitted, defaults to { colors: { primary: "#000000", secondary: "#ffffff" } }.', 'additionalProperties': False}, 'snippets': {'type': 'object', 'description': 'Brand snippets', 'additionalProperties': {}}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'channel'], 'properties': {'name': {'type': 'string', 'description': 'Human-readable name'}, 'channel': {'enum': ['email', 'sms', 'push', 'inbox', 'slack', 'msteams'], 'type': 'string', 'description': 'The single delivery channel for this broadcast'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['message'], 'properties': {'message': {'type': 'object', 'description': 'Bulk message definition with event/template and content', 'additionalProperties': {}}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'nodes'], 'properties': {'name': {'type': 'string', 'description': 'Journey display name'}, 'nodes': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}, 'description': 'The trigger node, then a terminal exit node â\x80\x94 both required. Send and delay nodes are added later by replace_journey. Node ids are server-generated â\x80\x94 do NOT include an id field. Example: [{ type: "trigger", trigger_type: "api-invoke" }, { type: "exit" }].'}, 'state': {'enum': ['DRAFT'], 'type': 'string', 'description': 'Must be "DRAFT". These tools cannot publish.'}, 'enabled': {'type': 'boolean', 'description': 'Whether the journey is active. Defaults to true.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['journey_id', 'channel', 'notification'], 'properties': {'state': {'enum': ['DRAFT'], 'type': 'string', 'description': 'Must be "DRAFT". These tools cannot publish.'}, 'channel': {'type': 'string', 'description': 'Channel for this template (e.g. "email", "push", "sms", "inbox")'}, 'journey_id': {'type': 'string', 'description': 'The journey template ID. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}, 'notification': {'type': 'object', 'required': ['name', 'tags', 'brand', 'subscription', 'content'], 'properties': {'name': {'type': 'string', 'description': 'Template display name'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tag list (use [] if none)'}, 'brand': {'anyOf': [{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Brand to apply, or null'}, 'content': {'type': 'object', 'required': ['version', 'elements'], 'properties': {'scope': {'enum': ['default', 'strict'], 'type': 'string'}, 'version': {'type': 'string', 'const': '2022-01-01'}, 'elements': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}, 'description': 'Elemental content nodes. Must be wrapped in a channel block â\x80\x94 the API rejects bare elements. Example: [{ type: "channel", channel: "email", elements: [{ type: "text", content: "Hello!" }] }].'}}, 'additionalProperties': False}, 'subscription': {'anyOf': [{'type': 'object', 'required': ['topic_id'], 'properties': {'topic_id': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Subscription topic, or null'}}, 'description': 'Notification template definition', 'additionalProperties': False}, 'provider_key': {'type': 'string', 'description': 'Specific provider key to target'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Display name for the list'}, 'list_id': {'type': 'string', 'description': 'The list ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification'], 'properties': {'state': {'enum': ['DRAFT'], 'type': 'string', 'description': 'Must be "DRAFT". These tools cannot publish.'}, 'notification': {'type': 'object', 'required': ['name', 'tags', 'brand', 'subscription', 'routing', 'content'], 'properties': {'name': {'type': 'string', 'description': 'Template display name'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tag list (use [] if none)'}, 'brand': {'anyOf': [{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Brand to apply, or null for none. Required on every call â\x80\x94 never omit this key, and never send {}.'}, 'content': {'type': 'object', 'required': ['version', 'elements'], 'properties': {'version': {'type': 'string', 'description': 'Content version identifier, e.g. "2022-01-01"'}, 'elements': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}, 'description': 'Elemental content nodes'}}, 'description': 'Elemental content, required on every call. Example: { version: "2022-01-01", elements: [{ type: "text", content: "Hello!" }] }.', 'additionalProperties': False}, 'routing': {'anyOf': [{'type': 'object', 'required': ['strategy_id'], 'properties': {'strategy_id': {'type': 'string', 'description': "From a get_routing_strategy or list_notifications/get_notification response for THIS template's own intended strategy â\x80\x94 never an id borrowed from an unrelated template found while searching for one."}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Routing strategy reference, or null to use the workspace default. Required on every call â\x80\x94 never omit this key, and never send {}: the API rejects both an absent routing key and an empty object; if you have no strategy id, send null explicitly.'}, 'subscription': {'anyOf': [{'type': 'object', 'required': ['topic_id'], 'properties': {'topic_id': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Subscription topic reference, or null for none. Required on every call â\x80\x94 never omit this key, and never send {}.'}}, 'description': 'Notification template payload', 'additionalProperties': False}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'profile': {'type': 'object', 'default': {}, 'description': 'Profile data to create or merge (e.g. { email: "...", phone_number: "..." })', 'additionalProperties': {}}, 'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'token', 'provider_key'], 'properties': {'token': {'type': 'string', 'description': 'The token string'}, 'device': {'type': 'object', 'properties': {'ad_id': {'type': 'string'}, 'model': {'type': 'string'}, 'app_id': {'type': 'string'}, 'platform': {'type': 'string'}, 'device_id': {'type': 'string'}, 'manufacturer': {'type': 'string'}}, 'description': 'Device metadata', 'additionalProperties': False}, 'user_id': {'type': 'string', 'description': 'The user ID'}, 'provider_key': {'enum': ['firebase-fcm', 'apn', 'expo', 'onesignal'], 'type': 'string', 'description': 'Push provider'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Display name for the tenant'}, 'brand_id': {'type': 'string', 'description': 'Brand ID to associate with this tenant'}, 'tenant_id': {'type': 'string', 'description': 'The tenant ID'}, 'properties': {'type': 'object', 'description': 'Custom properties for the tenant', 'additionalProperties': {}}, 'user_profile': {'type': 'object', 'description': 'Default profile data for users in this tenant', 'additionalProperties': {}}, 'parent_tenant_id': {'type': 'string', 'description': 'Parent tenant ID for hierarchical tenants'}, 'default_preferences': {'type': 'object', 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string', 'description': 'Subscription topic ID this default applies to'}, 'type': {'type': 'string', 'const': 'subscription_topic', 'description': 'Always "subscription_topic" when provided'}, 'status': {'enum': ['OPTED_IN', 'OPTED_OUT', 'REQUIRED'], 'type': 'string', 'description': 'Default status for the topic. "REQUIRED" prevents users from opting out'}, 'custom_routing': {'type': 'array', 'items': {'enum': ['direct_message', 'email', 'push', 'sms', 'webhook', 'inbox'], 'type': 'string'}, 'description': 'Channels this topic delivers on when has_custom_routing is true'}, 'has_custom_routing': {'type': 'boolean', 'description': "Whether custom_routing overrides the topic's default channels"}}, 'additionalProperties': False}, 'description': 'One entry per subscription topic'}}, 'description': 'Default notification preferences applied to users in this tenant. Example: { "items": [{ "id": "topic_abc", "status": "OPTED_IN", "type": "subscription_topic" }] }', 'additionalProperties': False}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Human-readable name for the section'}, 'routing_options': {'type': 'array', 'items': {'enum': ['direct_message', 'email', 'push', 'sms', 'webhook', 'inbox'], 'type': 'string'}, 'description': 'Default channels for the section. Defaults to empty if omitted.'}, 'has_custom_routing': {'type': 'boolean', 'description': 'Whether the section defines custom routing for its topics'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['section_id', 'name', 'default_status'], 'properties': {'name': {'type': 'string', 'description': 'Human-readable name for the preference topic'}, 'digest': {'anyOf': [{'type': 'object', 'required': ['template_id', 'schedules'], 'properties': {'schedules': {'type': 'array', 'items': {'type': 'object', 'required': ['frequency'], 'properties': {'time': {'type': 'string', 'description': '24-hour local delivery time, HH:MM. Required for every frequency except instant.'}, 'disabled': {'type': 'boolean', 'description': 'Whether the schedule is disabled'}, 'timezone': {'type': 'string', 'description': 'IANA timezone for `time` and the day fields, e.g. America/New_York'}, 'frequency': {'enum': ['instant', 'daily', 'weekdays', 'weekly', 'custom_days', 'monthly'], 'type': 'string', 'description': 'How often the digest delivers. `instant` delivers each event immediately.'}, 'is_default': {'type': 'boolean', 'description': 'The schedule recipients are placed on when they have not chosen one'}, 'day_of_week': {'enum': ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'], 'type': 'string', 'description': 'Required when frequency is weekly'}, 'schedule_id': {'type': 'string', 'description': 'Id of an existing schedule to update. Omit to create a new one.'}, 'day_of_month': {'type': 'integer', 'description': 'Required when frequency is monthly'}, 'days_of_week': {'type': 'array', 'items': {'enum': ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'], 'type': 'string'}, 'description': 'Required when frequency is custom_days'}}, 'additionalProperties': False}, 'minItems': 1, 'description': 'The cadences this digest delivers on. At least one is required.'}, 'categories': {'type': 'array', 'items': {'type': 'object', 'required': ['category_key'], 'properties': {'limit': {'type': 'integer', 'description': 'How many collected events reach the rendered digest. Defaults to 10.'}, 'retain': {'enum': ['FIRST', 'LAST', 'HIGHEST', 'LOWEST', 'NONE'], 'type': 'string', 'description': 'Which collected events survive the limit'}, 'sort_key': {'type': 'string', 'description': 'Data key to rank events by. Required when retain is HIGHEST or LOWEST.'}, 'category_key': {'type': 'string', 'description': 'Key identifying the category within the digest'}}, 'additionalProperties': False}, 'description': 'Retention rules per category key. Defaults to a single `digest` category.'}, 'audience_id': {'type': 'string', 'description': 'Optional audience the digest is scoped to'}, 'template_id': {'type': 'string', 'description': 'The notification template that renders the digest'}, 'trigger_empty': {'type': 'boolean', 'description': 'Deliver the digest even when nothing was collected'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': "Batch this topic's notifications into a scheduled digest. Omit to leave any existing digest untouched; pass null to turn it off."}, 'section_id': {'type': 'string', 'description': 'Id of the preference section to create the topic in'}, 'topic_data': {'type': 'object', 'description': 'Arbitrary metadata associated with the topic', 'additionalProperties': {}}, 'default_status': {'enum': ['OPTED_OUT', 'OPTED_IN', 'REQUIRED'], 'type': 'string', 'description': 'Default subscription status applied when a recipient has not set their own'}, 'routing_options': {'type': 'array', 'items': {'enum': ['direct_message', 'email', 'push', 'sms', 'webhook', 'inbox'], 'type': 'string'}, 'description': 'Default channels delivered for this topic. Defaults to empty if omitted.'}, 'allowed_preferences': {'type': 'array', 'items': {'enum': ['snooze', 'channel_preferences'], 'type': 'string'}, 'description': 'Preference controls a recipient may customize for this topic'}, 'include_unsubscribe_header': {'type': 'boolean', 'description': 'Whether to include a list-unsubscribe header on emails for this topic'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'device_ids'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'Human-readable name for the set'}, 'device_ids': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Device ids (pvd_...) from list_preview_devices. An id the catalog does not list is rejected.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['template_id'], 'properties': {'data': {'type': 'object', 'description': 'Variables for the template, the same shape as the data a send would carry', 'additionalProperties': {}}, 'locale': {'type': 'string', 'description': 'Locale to render, e.g. "en-US"'}, 'device_ids': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Device ids (pvd_...) from list_preview_devices. An id the catalog does not list is rejected.'}, 'template_id': {'type': 'string', 'description': 'The notification template id (nt_...). It must be a Design Studio template with an email channel.'}, 'device_set_id': {'type': 'string', 'description': 'A saved device set id (pvs_...). Use the Courier Recommended set from list_preview_device_sets for a sensible default.'}, 'template_version': {'type': 'string', 'description': 'Which version renders: omit for the latest draft, "published" for the live version, or a publish such as "v002".'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['provider'], 'properties': {'alias': {'type': 'string', 'description': 'Short alias for referencing this provider'}, 'title': {'type': 'string', 'description': 'Display name for this provider configuration'}, 'provider': {'type': 'string', 'description': 'Provider key from the catalog (e.g. sendgrid, twilio, firebase-fcm)'}, 'settings': {'type': 'object', 'description': 'Provider-specific settings (API keys, credentials, etc.)', 'additionalProperties': {}}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name', 'routing'], 'properties': {'name': {'type': 'string', 'description': 'Human-readable name for the routing strategy'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags for categorization'}, 'routing': {'type': 'object', 'required': ['method', 'channels'], 'properties': {'method': {'enum': ['all', 'single'], 'type': 'string', 'description': 'Deliver to all channels or stop after first success'}, 'channels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Ordered list of channel names'}}, 'description': 'Routing tree defining channel selection method and order', 'additionalProperties': False}, 'channels': {'type': 'object', 'description': 'Per-channel delivery configuration', 'additionalProperties': {}}, 'providers': {'type': 'object', 'description': 'Per-provider delivery configuration', 'additionalProperties': {}}, 'description': {'type': 'string', 'description': 'Description of the routing strategy'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audience_id'], 'properties': {'audience_id': {'type': 'string', 'description': 'The audience ID to delete'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['brand_id'], 'properties': {'brand_id': {'type': 'string', 'description': 'The brand ID to delete'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id'], 'properties': {'list_id': {'type': 'string', 'description': 'The list ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID to delete'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['provider_id'], 'properties': {'provider_id': {'type': 'string', 'description': 'The provider configuration ID to delete'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id'], 'properties': {'tenant_id': {'type': 'string', 'description': 'The tenant ID to delete'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id', 'topic_id'], 'properties': {'topic_id': {'type': 'string', 'description': 'The subscription topic ID'}, 'tenant_id': {'type': 'string', 'description': 'The tenant ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id', 'template_id'], 'properties': {'tenant_id': {'type': 'string', 'description': 'The tenant ID that owns the template'}, 'template_id': {'type': 'string', 'description': 'The notification template ID to delete'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'topic_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID'}, 'topic_id': {'type': 'string', 'description': 'The subscription topic ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'token'], 'properties': {'token': {'type': 'string', 'description': 'The token identifier to delete'}, 'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast to copy'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'scopes': {'type': 'array', 'items': {'type': 'string'}, 'default': ['write:user-tokens', 'inbox:read:messages', 'inbox:write:events', 'read:preferences', 'write:preferences', 'read:brands'], 'description': 'Permission scopes for the token'}, 'user_id': {'type': 'string', 'description': 'The user ID to scope the token to'}, 'expires_in': {'type': 'string', 'default': '1h', 'description': 'Token expiry duration (e.g. "1h", "2 days")'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audience_id'], 'properties': {'audience_id': {'type': 'string', 'description': 'The audience ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audit_event_id'], 'properties': {'audit_event_id': {'type': 'string', 'description': 'The audit event ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['brand_id'], 'properties': {'brand_id': {'type': 'string', 'description': 'The brand ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'description': 'The bulk job ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['journey_id'], 'properties': {'version': {'type': 'string', 'description': 'Version to retrieve: "draft", "published" (default), or a version string like "v001"'}, 'journey_id': {'type': 'string', 'description': 'The journey template ID. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['run_id'], 'properties': {'run_id': {'type': 'string', 'description': 'The journey run id'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'journey_id'], 'properties': {'version': {'type': 'string', 'description': 'Version to retrieve: "draft", "published" (default), or "vN"'}, 'journey_id': {'type': 'string', 'description': 'The journey template ID that owns this notification. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'journey_id'], 'properties': {'version': {'type': 'string', 'description': 'Version to retrieve: "draft", "published" (default), or a version string like "v001"'}, 'journey_id': {'type': 'string', 'description': 'The journey template ID that owns this notification. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id'], 'properties': {'list_id': {'type': 'string', 'description': 'The list ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id'], 'properties': {'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}, 'list_id': {'type': 'string', 'description': 'The list ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['message_id'], 'properties': {'message_id': {'type': 'string', 'description': 'The message ID to retrieve'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['message_id'], 'properties': {'message_id': {'type': 'string', 'description': 'The message ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['message_id'], 'properties': {'type': {'type': 'string', 'description': 'Filter by event type'}, 'message_id': {'type': 'string', 'description': 'The message ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id'], 'properties': {'version': {'type': 'string', 'description': 'Version to retrieve: "draft", "published" (default â\x80\x94 omit this to get it), or a version string like "v001"'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id'], 'properties': {'notification_id': {'type': 'string', 'description': 'The notification template ID. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id'], 'properties': {'notification_id': {'type': 'string', 'description': 'The notification template ID. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id'], 'properties': {'end': {'type': 'string', 'maxLength': 64, 'description': 'Window end, ISO 8601 with offset. Requires start. Must not be combined with lookback.'}, 'start': {'type': 'string', 'maxLength': 64, 'description': 'Inclusive window start, ISO 8601 with offset (2026-04-01T00:00:00Z). Requires end. Must not be combined with lookback.'}, 'lookback': {'type': 'string', 'maxLength': 32, 'description': 'Window length counted back from now, as an ISO 8601 duration (P30D, P12W, PT12H). Defaults to P30D. Must not be combined with start/end.'}, 'granularity': {'enum': ['HOUR', 'DAY', 'WEEK', 'MONTH'], 'type': 'string', 'default': 'DAY', 'description': 'Bucket size. HOUR covers at most 7 days, DAY at most 90. Defaults to DAY.'}, 'notification_id': {'type': 'string', 'minLength': 1, 'description': 'The notification template ID to report on (no commas or whitespace)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['section_id'], 'properties': {'section_id': {'type': 'string', 'description': 'Id of the preference section'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['section_id', 'topic_id'], 'properties': {'topic_id': {'type': 'string', 'description': 'Id of the subscription preference topic'}, 'section_id': {'type': 'string', 'description': 'Id of the preference section'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['device_set_id'], 'properties': {'device_set_id': {'type': 'string', 'description': 'The device set id (pvs_...)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['template_id', 'preview_run_id'], 'properties': {'template_id': {'type': 'string', 'description': 'The notification template id (nt_...) the run previewed'}, 'preview_run_id': {'type': 'string', 'description': 'The preview run id (pvr_...)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['provider_id'], 'properties': {'provider_id': {'type': 'string', 'description': 'The provider configuration ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['routing_strategy_id'], 'properties': {'routing_strategy_id': {'type': 'string', 'description': 'The routing strategy ID (rs_ prefix)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id'], 'properties': {'tenant_id': {'type': 'string', 'description': 'The tenant ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id', 'template_id'], 'properties': {'tenant_id': {'type': 'string', 'description': 'The tenant ID'}, 'template_id': {'type': 'string', 'description': 'The template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id', 'template_id', 'version'], 'properties': {'version': {'type': 'string', 'description': 'Version identifier (latest, published, or v-prefixed)'}, 'tenant_id': {'type': 'string', 'description': 'The tenant ID'}, 'template_id': {'type': 'string', 'description': 'The template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['locale'], 'properties': {'domain': {'type': 'string', 'default': 'default', 'description': 'Translation domain (only "default" is supported currently)'}, 'locale': {'type': 'string', 'description': 'Locale code (e.g. en_US, fr_FR)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}, 'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID'}, 'tenant_id': {'type': 'string', 'description': "Omit this to get the user's workspace-level preferences â\x80\x94 that answers most preference questions. Only pass it when you need the tenant-scoped overrides for one specific tenant instead."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'topic_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID'}, 'topic_id': {'type': 'string', 'description': 'The subscription topic ID'}, 'tenant_id': {'type': 'string', 'description': "Omit this for the user's workspace-level choice, which answers most questions. Only pass it when you need this topic as scoped to one specific tenant."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID to look up'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'token'], 'properties': {'token': {'type': 'string', 'description': 'The token identifier'}, 'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['automation'], 'properties': {'data': {'type': 'object', 'additionalProperties': {}}, 'brand': {'type': 'string'}, 'profile': {'type': 'object', 'additionalProperties': {}}, 'template': {'type': 'string'}, 'recipient': {'type': 'string'}, 'automation': {'type': 'object', 'required': ['steps'], 'properties': {'steps': {'type': 'array', 'items': {'anyOf': [{'type': 'object', 'required': ['action'], 'properties': {'if': {'type': 'string', 'description': 'Condition expression'}, 'data': {'type': 'object', 'additionalProperties': {}}, 'brand': {'type': 'string'}, 'action': {'type': 'string', 'const': 'send'}, 'profile': {'type': 'object', 'additionalProperties': {}}, 'template': {'type': 'string', 'description': 'Notification template ID or key'}, 'recipient': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action', 'list'], 'properties': {'if': {'type': 'string'}, 'data': {'type': 'object', 'additionalProperties': {}}, 'list': {'type': 'string', 'description': 'List ID to send to'}, 'brand': {'type': 'string'}, 'action': {'type': 'string', 'const': 'send-list'}, 'template': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action'], 'properties': {'if': {'type': 'string'}, 'until': {'type': 'string', 'description': 'ISO 8601 timestamp to wait until'}, 'action': {'type': 'string', 'const': 'delay'}, 'duration': {'type': 'string', 'description': 'ISO 8601 duration (e.g. "PT1H" for 1 hour)'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action', 'cancelation_token'], 'properties': {'if': {'type': 'string'}, 'action': {'type': 'string', 'const': 'cancel'}, 'cancelation_token': {'type': 'string', 'description': 'The token set when the original automation was invoked (single "l" spelling)'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action'], 'properties': {'if': {'type': 'string'}, 'merge': {'enum': ['none', 'overwrite', 'soft-merge', 'replace'], 'type': 'string'}, 'action': {'type': 'string', 'const': 'update-profile'}, 'profile': {'type': 'object', 'additionalProperties': {}}, 'recipient_id': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action', 'template'], 'properties': {'if': {'type': 'string'}, 'action': {'type': 'string', 'const': 'invoke'}, 'template': {'type': 'string', 'description': 'Automation template ID to invoke'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action', 'webhook'], 'properties': {'if': {'type': 'string'}, 'action': {'type': 'string', 'const': 'fetch-data'}, 'webhook': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}, 'body': {'type': 'object', 'additionalProperties': {}}, 'method': {'enum': ['GET', 'POST', 'PUT', 'PATCH'], 'type': 'string'}, 'headers': {'type': 'object', 'additionalProperties': {'type': 'string'}}}, 'description': 'HTTP request configuration', 'additionalProperties': False}, 'merge_strategy': {'enum': ['replace', 'overwrite', 'soft-merge'], 'type': 'string'}}, 'additionalProperties': False}]}, 'description': 'Ordered array of automation steps'}, 'cancelation_token': {'type': 'string', 'description': 'Token for cancelling this automation later (single "l" spelling)'}}, 'description': 'The automation definition with typed steps', 'additionalProperties': False}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['template_id', 'recipient'], 'properties': {'data': {'type': 'object', 'description': 'Data to pass to the automation', 'additionalProperties': {}}, 'brand': {'type': 'string', 'description': 'Brand ID override'}, 'profile': {'type': 'object', 'description': 'Profile data for the recipient', 'additionalProperties': {}}, 'template': {'type': 'string', 'description': 'Notification template override'}, 'recipient': {'type': 'string', 'description': 'Recipient user ID'}, 'template_id': {'type': 'string', 'description': 'The automation template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['template_id'], 'properties': {'data': {'type': 'object', 'description': 'Data payload passed to the journey for conditions and template variables', 'additionalProperties': {}}, 'profile': {'type': 'object', 'description': 'Profile data for the user (email, phone, custom fields)', 'additionalProperties': {}}, 'user_id': {'type': 'string', 'description': 'Recipient user ID. Can also be resolved from profile or data.'}, 'template_id': {'type': 'string', 'description': 'The journey template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audience_id'], 'properties': {'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}, 'audience_id': {'type': 'string', 'description': 'The audience ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cursor': {'type': 'string', 'description': 'Pagination cursor'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Runs per page, 1 to 50. Defaults to 20.'}, 'cursor': {'type': 'string', 'description': 'next_cursor from a previous response'}, 'status': {'type': 'string', 'description': 'Comma-separated run statuses to filter on, e.g. PROCESSED,ERROR'}, 'end_date': {'type': 'string', 'description': 'Inclusive upper bound on created_at, ISO 8601 date or timestamp'}, 'start_date': {'type': 'string', 'description': 'Inclusive lower bound on created_at, ISO 8601 date or timestamp'}, 'template_id': {'type': 'string', 'description': 'Comma-separated automation template ids to filter on'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['run_id'], 'properties': {'run_id': {'type': 'string', 'description': 'The automation run id'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}, 'version': {'enum': ['published', 'draft'], 'type': 'string', 'description': 'Return only templates in this state. Omit to return every automation template regardless of state.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'description': 'Max broadcasts per page'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor from a previous response'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id'], 'properties': {'cursor': {'type': 'string', 'description': 'Pagination cursor'}, 'job_id': {'type': 'string', 'description': 'The bulk job ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['schedule_id'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum instances to return. Defaults to 20; the API caps this at 100.'}, 'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}, 'schedule_id': {'type': 'string', 'description': 'The digest schedule id, in the form "sch/{uuid}"'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Runs per page, 1 to 50. Defaults to 20.'}, 'cursor': {'type': 'string', 'description': 'next_cursor from a previous response'}, 'status': {'type': 'string', 'description': 'Comma-separated run statuses to filter on, e.g. PROCESSED,ERROR'}, 'end_date': {'type': 'string', 'description': 'Inclusive upper bound on created_at, ISO 8601 date or timestamp'}, 'start_date': {'type': 'string', 'description': 'Inclusive lower bound on created_at, ISO 8601 date or timestamp'}, 'template_id': {'type': 'string', 'description': 'Comma-separated journey ids to filter on'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['run_id'], 'properties': {'run_id': {'type': 'string', 'description': 'The journey run id'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cursor': {'type': 'string', 'description': "If a response has no cursor, every journey already came back â\x80\x94 calling this again with the same arguments returns the same page, not new data. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}, 'version': {'enum': ['published', 'draft'], 'type': 'string', 'description': "Filter by version state. Defaults to published, and the two are never combined in one call. If you don't know whether the journey you want is published or still a draft, calling this twice â\x80\x94 once per value â\x80\x94 is the correct way to check both, not a repeat."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['journey_id'], 'properties': {'limit': {'type': 'number', 'description': 'Page size (1â\x80\x93100)'}, 'cursor': {'type': 'string', 'description': "Check the response's paging.more before calling again â\x80\x94 false means every template already came back, and calling again with the same arguments returns the same page, not new data. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}, 'journey_id': {'type': 'string', 'description': 'The journey template ID. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'journey_id'], 'properties': {'journey_id': {'type': 'string', 'description': 'The journey template ID that owns this notification'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['journey_id'], 'properties': {'journey_id': {'type': 'string', 'description': 'The journey template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}, 'pattern': {'type': 'string', 'description': 'Filter by list id pattern, where * matches a segment â\x80\x94 for example "example.list.*". Omit to return every list.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'tag': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter by metadata tags'}, 'list': {'type': 'string', 'description': 'Filter by list ID'}, 'tags': {'type': 'string', 'description': 'Comma-delimited list of tags'}, 'event': {'type': 'string', 'description': 'Filter by event ID'}, 'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}, 'status': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter by status (e.g. DELIVERED, UNDELIVERABLE)'}, 'traceId': {'type': 'string', 'description': 'Filter by trace ID'}, 'archived': {'type': 'boolean', 'description': 'This NARROWS, it does not widen: true returns ONLY archived messages, excluding every active one. Omit it entirely to search active messages â\x80\x94 the default view for a normal delivery question. Setting it true is not the thorough or safe choice; it is a different, much smaller result set.'}, 'provider': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter by provider key (e.g. sendgrid, twilio)'}, 'messageId': {'type': 'string', 'description': 'Filter by message ID'}, 'recipient': {'type': 'string', 'description': 'Filter by recipient user ID'}, 'tenant_id': {'type': 'string', 'description': 'Filter by tenant ID'}, 'notification': {'type': 'string', 'description': 'Filter by notification ID'}, 'enqueued_after': {'type': 'string', 'description': 'ISO 8601 timestamp; only return messages enqueued after this time'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'submission_id'], 'properties': {'submission_id': {'type': 'string', 'description': 'The submission ID whose checks to list'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'tags': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'description': 'Only return templates carrying ALL of these tags, matched case-insensitively on the tag name shown in a template\'s tags field (e.g. ["onboarding"]). Omit to list every template.'}, 'cursor': {'type': 'string', 'description': "This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum versions to return per page. Defaults to 10, which is also the maximum.'}, 'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}, 'notification_id': {'type': 'string', 'description': 'The notification template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Entries per page, 1 to 100. Defaults to 25.'}, 'since': {'type': 'string', 'description': 'Only changes at or after this time, as an ISO 8601 date or date-time. A date alone is the start of that day in UTC.'}, 'cursor': {'type': 'string', 'description': 'paging.cursor from a previous response'}, 'user_id': {'type': 'string', 'description': "Return only this user's changes. Omit to read every change in the environment."}, 'tenant_id': {'type': 'string', 'description': 'Narrow to the changes the user made in one tenant context. Requires user_id.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['section_id'], 'properties': {'section_id': {'type': 'string', 'description': 'Id of the preference section'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['template_id'], 'properties': {'limit': {'type': 'integer', 'description': 'Max runs per page', 'exclusiveMinimum': 0}, 'cursor': {'type': 'string', 'description': 'Pagination cursor from a previous response'}, 'template_id': {'type': 'string', 'description': 'The notification template id (nt_...)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'keys': {'type': 'string', 'description': 'Comma-separated provider keys to return, for example "sendgrid,twilio".'}, 'name': {'type': 'string', 'description': "Substring match against the provider's display name."}, 'channel': {'type': 'string', 'description': 'Return only providers serving this channel, for example email, sms or push.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cursor': {'type': 'string', 'description': "This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'description': 'Maximum strategies to return per page. Defaults to 20; the API caps this at 100.'}, 'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['routing_strategy_id'], 'properties': {'limit': {'type': 'number', 'description': 'Max results per page (default 20, max 100)'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor'}, 'routing_strategy_id': {'type': 'string', 'description': 'The routing strategy ID (rs_ prefix)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'number', 'description': 'Maximum tenants to return per page.'}, 'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id'], 'properties': {'limit': {'type': 'number', 'description': 'Max results per page (default 20, max 100)'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor'}, 'tenant_id': {'type': 'string', 'description': 'The tenant ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum users to return per page. Defaults to 20; the API caps this at 100.'}, 'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}, 'tenant_id': {'type': 'string', 'description': 'The tenant ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'limit': {'type': 'number', 'description': 'Maximum tenants to return per page.'}, 'cursor': {'type': 'string', 'description': "For fetching the next page. This is an opaque token â\x80\x94 never decode it, edit it, or rebuild it. Pass it back exactly as it appeared in the previous response's cursor field, byte for byte. Omit this entirely when you don't have one from a prior response of this exact call."}, 'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'patch'], 'properties': {'patch': {'type': 'array', 'items': {'type': 'object', 'required': ['op', 'path'], 'properties': {'op': {'type': 'string', 'description': 'Patch operation (add, remove, replace, move, copy, test)'}, 'path': {'type': 'string', 'description': 'JSON pointer path (e.g. /email, /phone_number)'}, 'value': {'description': 'Value for the operation (any JSON type)'}}, 'additionalProperties': False}, 'description': 'Array of JSON Patch operations to apply to the profile'}, 'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'token', 'patch'], 'properties': {'patch': {'type': 'array', 'items': {'type': 'object', 'required': ['op', 'path'], 'properties': {'op': {'type': 'string', 'description': 'Patch operation (add, remove, replace, move, copy, test)'}, 'path': {'type': 'string', 'description': 'JSON pointer path'}, 'value': {'description': 'Value for the operation (any JSON type)'}}, 'additionalProperties': False}, 'description': 'Array of JSON Patch operations'}, 'token': {'type': 'string', 'description': 'The token identifier'}, 'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['journey_id'], 'properties': {'version': {'type': 'string', 'description': 'Historical version to roll back to (e.g. "v001"). Omit to publish the current draft.'}, 'journey_id': {'type': 'string', 'description': 'The journey template ID to publish'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'journey_id'], 'properties': {'version': {'type': 'string', 'description': 'Version to roll back to (e.g. "v1"). Omit to publish current draft.'}, 'journey_id': {'type': 'string', 'description': 'The journey template ID that owns this notification'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id'], 'properties': {'version': {'type': 'string', 'description': 'Historical version to publish (e.g. v001); omit to publish current draft'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID to publish'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id', 'template_id'], 'properties': {'version': {'type': 'string', 'description': 'Version to publish (e.g. v1, latest); defaults to latest if omitted'}, 'tenant_id': {'type': 'string', 'description': 'The tenant ID'}, 'template_id': {'type': 'string', 'description': 'The template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id', 'content'], 'properties': {'state': {'enum': ['DRAFT', 'PUBLISHED'], 'type': 'string', 'description': 'Template state. Defaults to DRAFT.'}, 'content': {'type': 'object', 'description': 'Elemental content, e.g. { "version": "2022-01-01", "elements": [...] }. version defaults when omitted.', 'additionalProperties': {}}, 'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'journey_id', 'elements'], 'properties': {'state': {'enum': ['DRAFT'], 'type': 'string', 'description': 'Template state after update. Must be "DRAFT". These tools cannot publish.'}, 'version': {'type': 'string', 'description': 'Content version string (e.g. "2022-01-01"). Server defaults when omitted.'}, 'elements': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}, 'description': 'Array of elemental content nodes. Likely must be wrapped in a channel block, the same way create_journey_template\'s content requires â\x80\x94 not independently confirmed for this call, but they write the same field. Example: [{ type: "channel", channel: "email", elements: [{ type: "text", content: "Hello!" }] }].'}, 'journey_id': {'type': 'string', 'description': 'The journey template ID that owns this notification. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'journey_id', 'locale_id', 'elements'], 'properties': {'state': {'enum': ['DRAFT'], 'type': 'string', 'description': 'Template state after update. Must be "DRAFT". These tools cannot publish.'}, 'elements': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Target element ID to override, from a prior get_journey_template or get_journey_template_content response. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': {}}, 'description': 'Array of element overrides with id and locale-specific content'}, 'locale_id': {'type': 'string', 'description': 'Locale identifier (e.g. es, fr, pt-BR)'}, 'journey_id': {'type': 'string', 'description': 'The journey template ID that owns this notification. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'elements'], 'properties': {'state': {'enum': ['DRAFT'], 'type': 'string', 'description': 'Must be "DRAFT". These tools cannot publish.'}, 'version': {'type': 'string', 'description': 'Content version string (e.g. "2022-01-01"). Server defaults when omitted.'}, 'elements': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}, 'description': 'Array of elemental content nodes'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID (nt_ prefix). Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'element_id', 'type'], 'properties': {'if': {'type': 'string', 'description': 'Conditional expression for element visibility'}, 'ref': {'type': 'string', 'description': 'Reference identifier'}, 'data': {'type': 'object', 'description': 'Element data payload', 'additionalProperties': {}}, 'loop': {'type': 'string', 'description': 'Loop expression for repeating elements'}, 'type': {'type': 'string', 'description': 'Element type (e.g. text, action, image, divider, meta)'}, 'state': {'enum': ['DRAFT'], 'type': 'string', 'description': 'Must be "DRAFT". These tools cannot publish.'}, 'channels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Channels this element applies to'}, 'element_id': {'type': 'string', 'description': 'The element ID to update, from a prior get_notification or get_notification_draft_content response. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID (nt_ prefix). Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'locale_id', 'elements'], 'properties': {'state': {'enum': ['DRAFT'], 'type': 'string', 'description': 'Must be "DRAFT". These tools cannot publish.'}, 'elements': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': 'Target element ID to override, from a prior get_notification or get_notification_draft_content response. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': {}}, 'description': 'Array of element overrides with id and locale-specific content'}, 'locale_id': {'type': 'string', 'description': 'Locale identifier (e.g. es, fr, pt-BR)'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID (nt_ prefix). Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['schedule_id'], 'properties': {'schedule_id': {'type': 'string', 'description': 'The digest schedule id, in the form "sch/{uuid}"'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['section_id', 'topic_id', 'user_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The recipient whose digest to release'}, 'topic_id': {'type': 'string', 'description': 'Id of the digest topic'}, 'tenant_id': {'type': 'string', 'description': "The recipient's tenant, when they were sent to as part of one"}, 'section_id': {'type': 'string', 'description': 'Id of the preference section the topic belongs to'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'tenant_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID'}, 'tenant_id': {'type': 'string', 'description': 'The tenant ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id', 'name'], 'properties': {'name': {'type': 'string', 'description': 'The new name'}, 'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['journey_id', 'name', 'nodes'], 'properties': {'name': {'type': 'string', 'description': 'Journey display name'}, 'nodes': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}, 'description': 'Complete array of journey nodes: the trigger first, a terminal exit last, and everything else between them. Use server-assigned node ids from get_journey â\x80\x94 do NOT invent new ids. Send node example: { type: "send", channel: "email", message: { template: "nt_journey_1" } } â\x80\x94 the template goes inside message, never at node level, and the id is a journey-scoped one returned by create_journey_template rather than a workspace template id. Copy that id character-for-character from the create_journey_template or get_journey response you got it from â\x80\x94 never retype or reconstruct it from memory, since a single dropped or altered character produces a different, non-existent id and the reference silently fails to resolve. channel must always be set to one of "email", "sms", "push", "inbox", "slack", or "msteams" on every send node â\x80\x94 do not omit it even though the field is optional. An unset channel makes Studio silently render the node as email: for sms, push, and inbox sends this means the wrong title, an Email Address field shown instead of the real recipient field, no provider picker, and a hard-blocked "+Create message" button, with nothing shown to warn the user. The stored recipient data is not lost and delivery is not affected â\x80\x94 this only breaks how the journey looks and works for a human editing it in Studio. Delay node example: { type: "delay", mode: "duration", duration: "PT1H" }. Branch node example: { type: "branch", paths: [{ conditions: ["data.plan", "is equal", "pro"], nodes: [] }], default: { nodes: [] } } â\x80\x94 paths and default are both required, and the key inside a path is "conditions", not "condition".'}, 'state': {'enum': ['DRAFT'], 'type': 'string', 'description': 'Must be "DRAFT". These tools cannot publish.'}, 'enabled': {'type': 'boolean', 'description': 'Whether the journey is active.'}, 'journey_id': {'type': 'string', 'description': 'The journey template ID to update. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'journey_id', 'notification'], 'properties': {'state': {'type': 'string', 'description': '"PUBLISHED" to publish immediately after replace'}, 'journey_id': {'type': 'string', 'description': 'The journey template ID that owns this notification'}, 'notification': {'type': 'object', 'required': ['name', 'tags', 'brand', 'subscription', 'content'], 'properties': {'name': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'brand': {'anyOf': [{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'content': {'type': 'object', 'required': ['version', 'elements'], 'properties': {'scope': {'enum': ['default', 'strict'], 'type': 'string'}, 'version': {'type': 'string', 'const': '2022-01-01'}, 'elements': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}}}, 'additionalProperties': False}, 'subscription': {'anyOf': [{'type': 'object', 'required': ['topic_id'], 'properties': {'topic_id': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'description': 'Full notification template definition', 'additionalProperties': False}, 'notification_id': {'type': 'string', 'description': 'The notification template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'notification'], 'properties': {'state': {'enum': ['DRAFT'], 'type': 'string', 'description': 'Must be "DRAFT". These tools cannot publish.'}, 'notification': {'type': 'object', 'required': ['name', 'tags', 'brand', 'subscription', 'routing', 'content'], 'properties': {'name': {'type': 'string', 'description': 'Template display name'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tag list (use [] if none)'}, 'brand': {'anyOf': [{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Brand to apply, or null for none. Required on every call â\x80\x94 never omit this key, and never send {}.'}, 'content': {'type': 'object', 'required': ['version', 'elements'], 'properties': {'version': {'type': 'string', 'description': 'Content version identifier, e.g. "2022-01-01"'}, 'elements': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}, 'description': 'Elemental content nodes'}}, 'description': 'Elemental content, required on every call. Example: { version: "2022-01-01", elements: [{ type: "text", content: "Hello!" }] }.', 'additionalProperties': False}, 'routing': {'anyOf': [{'type': 'object', 'required': ['strategy_id'], 'properties': {'strategy_id': {'type': 'string', 'description': "From a get_routing_strategy or list_notifications/get_notification response for THIS template's own intended strategy â\x80\x94 never an id borrowed from an unrelated template found while searching for one."}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Routing strategy reference, or null to use the workspace default. Required on every call â\x80\x94 never omit this key, and never send {}: the API rejects both an absent routing key and an empty object; if you have no strategy id, send null explicitly.'}, 'subscription': {'anyOf': [{'type': 'object', 'required': ['topic_id'], 'properties': {'topic_id': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Subscription topic reference, or null for none. Required on every call â\x80\x94 never omit this key, and never send {}.'}}, 'description': 'Full notification template payload', 'additionalProperties': False}, 'notification_id': {'type': 'string', 'description': 'The notification template ID to replace. Copy it exactly, character for character, from the response that returned it â\x80\x94 never retype it from memory or reconstruct it.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['section_id', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Human-readable name for the section'}, 'section_id': {'type': 'string', 'description': 'Id of the preference section'}, 'routing_options': {'type': 'array', 'items': {'enum': ['direct_message', 'email', 'push', 'sms', 'webhook', 'inbox'], 'type': 'string'}, 'description': 'Default channels for the section. Omit to clear.'}, 'has_custom_routing': {'type': 'boolean', 'description': 'Whether the section defines custom routing for its topics'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['section_id', 'topic_id', 'name', 'default_status'], 'properties': {'name': {'type': 'string', 'description': 'Human-readable name for the preference topic'}, 'digest': {'anyOf': [{'type': 'object', 'required': ['template_id', 'schedules'], 'properties': {'schedules': {'type': 'array', 'items': {'type': 'object', 'required': ['frequency'], 'properties': {'time': {'type': 'string', 'description': '24-hour local delivery time, HH:MM. Required for every frequency except instant.'}, 'disabled': {'type': 'boolean', 'description': 'Whether the schedule is disabled'}, 'timezone': {'type': 'string', 'description': 'IANA timezone for `time` and the day fields, e.g. America/New_York'}, 'frequency': {'enum': ['instant', 'daily', 'weekdays', 'weekly', 'custom_days', 'monthly'], 'type': 'string', 'description': 'How often the digest delivers. `instant` delivers each event immediately.'}, 'is_default': {'type': 'boolean', 'description': 'The schedule recipients are placed on when they have not chosen one'}, 'day_of_week': {'enum': ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'], 'type': 'string', 'description': 'Required when frequency is weekly'}, 'schedule_id': {'type': 'string', 'description': 'Id of an existing schedule to update. Omit to create a new one.'}, 'day_of_month': {'type': 'integer', 'description': 'Required when frequency is monthly'}, 'days_of_week': {'type': 'array', 'items': {'enum': ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'], 'type': 'string'}, 'description': 'Required when frequency is custom_days'}}, 'additionalProperties': False}, 'minItems': 1, 'description': 'The cadences this digest delivers on. At least one is required.'}, 'categories': {'type': 'array', 'items': {'type': 'object', 'required': ['category_key'], 'properties': {'limit': {'type': 'integer', 'description': 'How many collected events reach the rendered digest. Defaults to 10.'}, 'retain': {'enum': ['FIRST', 'LAST', 'HIGHEST', 'LOWEST', 'NONE'], 'type': 'string', 'description': 'Which collected events survive the limit'}, 'sort_key': {'type': 'string', 'description': 'Data key to rank events by. Required when retain is HIGHEST or LOWEST.'}, 'category_key': {'type': 'string', 'description': 'Key identifying the category within the digest'}}, 'additionalProperties': False}, 'description': 'Retention rules per category key. Defaults to a single `digest` category.'}, 'audience_id': {'type': 'string', 'description': 'Optional audience the digest is scoped to'}, 'template_id': {'type': 'string', 'description': 'The notification template that renders the digest'}, 'trigger_empty': {'type': 'boolean', 'description': 'Deliver the digest even when nothing was collected'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': "Batch this topic's notifications into a scheduled digest. Omit to leave any existing digest untouched; pass null to turn it off."}, 'topic_id': {'type': 'string', 'description': 'Id of the subscription preference topic'}, 'section_id': {'type': 'string', 'description': 'Id of the preference section'}, 'topic_data': {'type': 'object', 'description': 'Arbitrary metadata associated with the topic. Omit to clear.', 'additionalProperties': {}}, 'default_status': {'enum': ['OPTED_OUT', 'OPTED_IN', 'REQUIRED'], 'type': 'string', 'description': 'Default subscription status applied when a recipient has not set their own'}, 'routing_options': {'type': 'array', 'items': {'enum': ['direct_message', 'email', 'push', 'sms', 'webhook', 'inbox'], 'type': 'string'}, 'description': 'Default channels delivered for this topic. Omit to clear.'}, 'allowed_preferences': {'type': 'array', 'items': {'enum': ['snooze', 'channel_preferences'], 'type': 'string'}, 'description': 'Preference controls a recipient may customize. Omit to clear.'}, 'include_unsubscribe_header': {'type': 'boolean', 'description': 'Whether to include a list-unsubscribe header on emails for this topic'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['device_set_id', 'name', 'device_ids'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'The new name'}, 'device_ids': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Device ids (pvd_...) from list_preview_devices. An id the catalog does not list is rejected.'}, 'device_set_id': {'type': 'string', 'description': 'The device set id (pvs_...)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'profile'], 'properties': {'profile': {'type': 'object', 'description': 'Complete profile data to replace with', 'additionalProperties': {}}, 'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['routing_strategy_id', 'name', 'routing'], 'properties': {'name': {'type': 'string', 'description': 'Human-readable name'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags. Omit to clear.'}, 'routing': {'type': 'object', 'required': ['method', 'channels'], 'properties': {'method': {'enum': ['all', 'single'], 'type': 'string', 'description': 'Deliver to all channels or stop after first success'}, 'channels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Ordered list of channel names'}}, 'description': 'Routing tree', 'additionalProperties': False}, 'channels': {'type': 'object', 'description': 'Per-channel delivery configuration. Omit to clear.', 'additionalProperties': {}}, 'providers': {'type': 'object', 'description': 'Per-provider delivery configuration. Omit to clear.', 'additionalProperties': {}}, 'description': {'type': 'string', 'description': 'Description. Omit to clear.'}, 'routing_strategy_id': {'type': 'string', 'description': 'The routing strategy ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id', 'template_id', 'content'], 'properties': {'title': {'type': 'string', 'description': 'Optional title merged into template content when provided'}, 'content': {'type': 'object', 'required': ['version', 'elements'], 'properties': {'scope': {'enum': ['default', 'strict'], 'type': 'string', 'description': '"strict" reads send data only under the `data.` prefix, e.g. {{data.name}}. Under "default", data is spread to the root and {{data.name}} renders empty'}, 'version': {'type': 'string', 'const': '2022-01-01', 'description': 'Elemental schema version'}, 'elements': {'type': 'array', 'items': {'anyOf': [{'anyOf': [{'type': 'object', 'required': ['type'], 'properties': {'if': {'type': 'string', 'description': 'Expression; the element renders only when truthy'}, 'ref': {'type': 'string', 'description': 'Reference name for this element'}, 'loop': {'type': 'string', 'description': 'Expression resolving to a list to repeat this element over'}, 'type': {'type': 'string', 'const': 'text'}, 'align': {'enum': ['center', 'left', 'right', 'full'], 'type': 'string'}, 'format': {'type': 'string', 'const': 'markdown', 'description': 'Set to "markdown" to render markdown'}, 'content': {'type': 'string', 'description': 'The text to render'}, 'locales': {'type': 'object', 'description': 'Overrides keyed by locale code', 'additionalProperties': {'type': 'object', 'properties': {'content': {'type': 'string'}}, 'additionalProperties': False}}, 'padding': {'type': 'string'}, 'channels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Restrict this element to these channels'}, 'font_size': {'type': 'string', 'description': 'CSS px size, e.g. "16px"'}, 'text_style': {'enum': ['text', 'h1', 'h2', 'h3', 'subtext'], 'type': 'string'}, 'border_size': {'type': 'string'}, 'line_height': {'type': 'string'}, 'border_color': {'type': 'string'}, 'background_color': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'if': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/if'}, 'ref': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/ref'}, 'loop': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/loop'}, 'type': {'type': 'string', 'const': 'meta'}, 'title': {'type': 'string', 'description': 'Message title (email subject, push title, etc.)'}, 'locales': {'type': 'object', 'description': 'Overrides keyed by locale code', 'additionalProperties': {'type': 'object', 'properties': {'title': {'type': 'string'}}, 'additionalProperties': False}}, 'channels': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/channels'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'src'], 'properties': {'if': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/if'}, 'ref': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/ref'}, 'src': {'type': 'string', 'description': 'Image URL'}, 'href': {'type': 'string', 'description': 'Link the image points to'}, 'loop': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/loop'}, 'type': {'type': 'string', 'const': 'image'}, 'align': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/align'}, 'width': {'type': 'string', 'description': 'Rendered width, e.g. "300px"'}, 'locales': {'type': 'object', 'description': 'Overrides keyed by locale code', 'additionalProperties': {'type': 'object', 'properties': {'src': {'type': 'string'}, 'href': {'type': 'string'}}, 'additionalProperties': False}}, 'padding': {'type': 'string'}, 'alt_text': {'type': 'string'}, 'channels': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/channels'}, 'border_size': {'type': 'string'}, 'border_color': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'content', 'href'], 'properties': {'if': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/if'}, 'ref': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/ref'}, 'href': {'type': 'string', 'description': 'URL the action opens'}, 'loop': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/loop'}, 'type': {'type': 'string', 'const': 'action'}, 'align': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/align'}, 'style': {'enum': ['button', 'secondary', 'tertiary', 'link'], 'type': 'string', 'description': 'How prominent the action is. `button` (default) is filled, `secondary` and `tertiary` are the other two button styles, and `link` is inline text'}, 'content': {'type': 'string', 'description': 'Button or link label'}, 'locales': {'type': 'object', 'description': 'Overrides keyed by locale code', 'additionalProperties': {'type': 'object', 'properties': {'href': {'type': 'string'}, 'content': {'type': 'string'}}, 'additionalProperties': False}}, 'padding': {'type': 'string'}, 'channels': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/channels'}, 'action_id': {'type': 'string', 'description': 'Identifier reported with click tracking'}, 'font_size': {'type': 'string'}, 'border_size': {'type': 'string'}, 'border_radius': {'type': 'string'}, 'background_color': {'type': 'string', 'description': 'Fill for `button`; border and label color for `secondary`'}, 'disable_tracking': {'type': 'boolean', 'description': 'Skip click tracking for this href'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type'], 'properties': {'if': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/if'}, 'ref': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/ref'}, 'loop': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/loop'}, 'type': {'type': 'string', 'const': 'divider'}, 'color': {'type': 'string'}, 'width': {'type': 'string'}, 'padding': {'type': 'string'}, 'channels': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/channels'}, 'border_width': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'content'], 'properties': {'if': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/if'}, 'ref': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/ref'}, 'loop': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/loop'}, 'type': {'type': 'string', 'const': 'quote'}, 'align': {'enum': ['center', 'left', 'right', 'full', 'justify'], 'type': 'string'}, 'content': {'type': 'string'}, 'locales': {'type': 'object', 'description': 'Overrides keyed by locale code', 'additionalProperties': {'type': 'object', 'properties': {'content': {'type': 'string'}}, 'additionalProperties': False}}, 'padding': {'type': 'string'}, 'channels': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/channels'}, 'font_size': {'type': 'string'}, 'text_style': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/text_style'}, 'border_size': {'type': 'string'}, 'line_height': {'type': 'string'}, 'border_color': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'content'], 'properties': {'if': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/if'}, 'ref': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/ref'}, 'loop': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/loop'}, 'type': {'type': 'string', 'const': 'html'}, 'content': {'type': 'string', 'description': 'Raw HTML, rendered as-is'}, 'locales': {'type': 'object', 'description': 'Overrides keyed by locale code', 'additionalProperties': {'type': 'object', 'properties': {'content': {'type': 'string'}}, 'additionalProperties': False}}, 'channels': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/channels'}}, 'additionalProperties': False}]}, {'type': 'object', 'required': ['type', 'channel'], 'properties': {'if': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/if'}, 'raw': {'type': 'object', 'description': 'Channel-native payload passed through untouched', 'additionalProperties': {}}, 'ref': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/ref'}, 'loop': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/loop'}, 'type': {'type': 'string', 'const': 'channel'}, 'channel': {'type': 'string', 'description': 'Channel these elements target, e.g. "email", "push", "inbox"'}, 'channels': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/channels'}, 'elements': {'type': 'array', 'items': {'$ref': '#/properties/content/properties/elements/items'}, 'description': 'Elements rendered for this channel'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['type', 'elements'], 'properties': {'if': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/if'}, 'ref': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/ref'}, 'loop': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/loop'}, 'type': {'type': 'string', 'const': 'group'}, 'channels': {'$ref': '#/properties/content/properties/elements/items/anyOf/0/anyOf/0/properties/channels'}, 'elements': {'type': 'array', 'items': {'$ref': '#/properties/content/properties/elements/items'}, 'description': 'Grouped elements'}}, 'additionalProperties': False}]}, 'description': 'Elemental nodes. Channel and group containers nest to any depth'}}, 'description': 'Elemental content document. Example: { "version": "2022-01-01", "elements": [{ "type": "meta", "title": "Welcome" }, { "type": "text", "content": "Thanks for signing up." }] }', 'additionalProperties': False}, 'routing': {'type': 'object', 'required': ['method', 'channels'], 'properties': {'method': {'enum': ['all', 'single'], 'type': 'string', 'description': '"all" delivers to every channel; "single" stops after the first success'}, 'channels': {'type': 'array', 'items': {'anyOf': [{'type': 'string'}, {'type': 'object', 'required': ['channel'], 'properties': {'if': {'type': 'string'}, 'config': {'type': 'object', 'additionalProperties': {}}, 'method': {'enum': ['all', 'single'], 'type': 'string'}, 'channel': {'type': 'string', 'description': 'Channel name'}, 'providers': {'type': 'array', 'items': {'anyOf': [{'type': 'object', 'required': ['name'], 'properties': {'if': {'type': 'string'}, 'name': {'type': 'string', 'description': 'Provider name'}, 'config': {'type': 'object', 'additionalProperties': {}}, 'metadata': {'type': 'object', 'properties': {'utm': {'$ref': '#/properties/channels/additionalProperties/properties/metadata/properties/utm'}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'string'}]}}}, 'additionalProperties': False}, {'$ref': '#/properties/routing/properties/channels/items/anyOf/1/properties/providers/items/anyOf/0'}]}, 'description': 'Channels to attempt, in order. Entries may be names or config objects'}}, 'description': 'Message routing tree. Example: { "method": "single", "channels": ["email", "sms"] }', 'additionalProperties': False}, 'channels': {'type': 'object', 'description': 'Per-channel delivery configuration, keyed by channel name. Example: { "email": { "providers": ["sendgrid"], "routing_method": "single" } }', 'additionalProperties': {'type': 'object', 'properties': {'if': {'type': 'string', 'description': 'Expression; the channel is used only when truthy'}, 'brand_id': {'type': 'string', 'description': 'Brand applied when delivering on this channel'}, 'metadata': {'type': 'object', 'properties': {'utm': {'type': 'object', 'properties': {'term': {'type': 'string'}, 'medium': {'type': 'string'}, 'source': {'type': 'string'}, 'content': {'type': 'string'}, 'campaign': {'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'override': {'type': 'object', 'description': 'Channel-specific overrides, e.g. email subject/from or push title/icon', 'additionalProperties': {}}, 'timeouts': {'type': 'object', 'properties': {'channel': {'type': 'number', 'description': 'Whole-channel timeout in ms'}, 'provider': {'type': 'number', 'description': 'Per-provider timeout in ms'}}, 'additionalProperties': False}, 'providers': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Providers eligible for this channel, in preference order'}, 'routing_method': {'enum': ['all', 'single'], 'type': 'string', 'description': '"all" delivers via every provider; "single" stops after the first success'}}, 'additionalProperties': False}}, 'providers': {'type': 'object', 'description': 'Per-provider configuration, keyed by provider name. Example: { "sendgrid": { "override": { "from": "noreply@example.com" } } }', 'additionalProperties': {'type': 'object', 'properties': {'if': {'type': 'string', 'description': 'Expression; the provider is used only when truthy'}, 'override': {'type': 'object', 'description': 'Provider-native payload fields merged into the request', 'additionalProperties': {}}, 'timeouts': {'type': 'number', 'description': 'Provider timeout in ms'}}, 'additionalProperties': False}}, 'published': {'type': 'boolean', 'description': 'When true, publish immediately after save'}, 'tenant_id': {'type': 'string', 'description': 'The tenant ID'}, 'template_id': {'type': 'string', 'description': 'The template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['message_id'], 'properties': {'message_id': {'type': 'string', 'description': 'The message ID of the original message to resend'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id'], 'properties': {'list_id': {'type': 'string', 'description': 'The list ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'description': 'The bulk job ID to run'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id', 'recipient_type', 'recipient_id', 'scheduled_to'], 'properties': {'timezone': {'type': 'string', 'description': 'IANA timezone scheduled_to is expressed in, e.g. America/New_York'}, 'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}, 'recipient_id': {'type': 'string', 'description': 'The list or audience id'}, 'scheduled_to': {'type': 'string', 'description': 'Wall-clock time of the send with no timezone offset, e.g. 2026-10-01T09:00:00'}, 'recipient_type': {'enum': ['list', 'audience'], 'type': 'string', 'description': 'Whether to send to a list or an audience'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id', 'recipient_type', 'recipient_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}, 'recipient_id': {'type': 'string', 'description': 'The list or audience id'}, 'recipient_type': {'enum': ['list', 'audience'], 'type': 'string', 'description': 'Whether to send to a list or an audience'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'title', 'body'], 'properties': {'body': {'type': 'string', 'description': 'Message body'}, 'data': {'type': 'object', 'description': 'Key-value data to include with the message', 'additionalProperties': {}}, 'title': {'type': 'string', 'description': 'Message title'}, 'method': {'enum': ['all', 'single'], 'type': 'string', 'default': 'all', 'description': 'Routing method: deliver to all channels or stop after first success'}, 'user_id': {'type': 'string', 'description': 'The recipient user ID'}, 'channels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Channel names to route through (e.g. email, sms, push). Omit to use default routing.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'template'], 'properties': {'data': {'type': 'object', 'description': 'Key-value data for template variables', 'additionalProperties': {}}, 'method': {'enum': ['all', 'single'], 'type': 'string', 'default': 'all', 'description': 'Routing method'}, 'user_id': {'type': 'string', 'description': 'The recipient user ID'}, 'channels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Channel names to route through. Omit to use template routing config.'}, 'template': {'type': 'string', 'description': 'Template ID or notification slug'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id', 'title', 'body'], 'properties': {'body': {'type': 'string', 'description': 'Message body'}, 'data': {'type': 'object', 'description': 'Key-value data to include', 'additionalProperties': {}}, 'title': {'type': 'string', 'description': 'Message title'}, 'method': {'enum': ['all', 'single'], 'type': 'string', 'default': 'all', 'description': 'Routing method'}, 'list_id': {'type': 'string', 'description': 'The list ID to send to'}, 'channels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Channel names to route through. Omit to use default routing.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id', 'template'], 'properties': {'data': {'type': 'object', 'description': 'Key-value data for template variables', 'additionalProperties': {}}, 'method': {'enum': ['all', 'single'], 'type': 'string', 'default': 'all', 'description': 'Routing method'}, 'list_id': {'type': 'string', 'description': 'The list ID to send to'}, 'channels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Channel names to route through. Omit to use template routing config.'}, 'template': {'type': 'string', 'description': 'Template ID or notification slug'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id', 'user_id'], 'properties': {'list_id': {'type': 'string', 'description': 'The list ID'}, 'user_id': {'type': 'string', 'description': 'The user ID to subscribe'}, 'preferences': {'type': 'object', 'properties': {'categories': {'type': 'object', 'additionalProperties': {}}, 'notifications': {'type': 'object', 'additionalProperties': {}}}, 'description': 'Optional notification preferences', 'additionalProperties': False}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'lists'], 'properties': {'lists': {'type': 'array', 'items': {'type': 'object', 'required': ['listId'], 'properties': {'listId': {'type': 'string', 'description': 'List ID to subscribe to'}, 'preferences': {'description': 'Optional notification preferences for this list'}}, 'additionalProperties': False}, 'description': 'Array of lists to subscribe to'}, 'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 20, 'minimum': 1, 'description': 'Max messages to trace for a trace_id. Defaults to 10.'}, 'trace_id': {'type': 'string', 'description': 'The metadata.trace_id set on the send. Mutually exclusive with message_id.'}, 'message_id': {'type': 'string', 'description': 'A message id, as returned by send. Mutually exclusive with trace_id.'}, 'include_output': {'type': 'boolean', 'description': 'Also return rendered content per provider. Off by default, since rendered email can be large.'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event', 'messageId', 'properties'], 'properties': {'event': {'type': 'string', 'description': 'The event name (appears as trigger in Automation Trigger node)'}, 'userId': {'type': 'string', 'description': 'User ID associated with the event'}, 'messageId': {'type': 'string', 'description': 'Unique ID for deduplication (returns 409 if not unique)'}, 'properties': {'type': 'object', 'description': 'Event properties payload', 'additionalProperties': {}}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id', 'user_id'], 'properties': {'list_id': {'type': 'string', 'description': 'The list ID'}, 'user_id': {'type': 'string', 'description': 'The user ID to unsubscribe'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audience_id'], 'properties': {'name': {'type': 'string', 'description': 'Display name'}, 'filter': {'anyOf': [{'type': 'object', 'required': ['operator', 'path'], 'properties': {'path': {'type': 'string', 'description': 'Dot-notation path into the user profile, e.g. "title" or "location.city"'}, 'value': {'type': ['string', 'number', 'boolean'], 'description': 'Value to compare against. Omit for existence checks like "EXISTS"'}, 'operator': {'enum': ['ENDS_WITH', 'EQ', 'EXISTS', 'GT', 'GTE', 'INCLUDES', 'IS_AFTER', 'IS_BEFORE', 'LT', 'LTE', 'MEMBER_OF', 'NEQ', 'OMIT', 'STARTS_WITH'], 'type': 'string', 'description': 'Comparison to apply, e.g. "EQ", "INCLUDES", "IS_AFTER"'}}, 'description': 'A single condition evaluated against one user profile field', 'additionalProperties': False}, {'type': 'object', 'required': ['operator', 'filters'], 'properties': {'filters': {'type': 'array', 'items': {'$ref': '#/properties/filter'}, 'description': 'Conditions and/or nested groups to combine'}, 'operator': {'enum': ['AND', 'OR'], 'type': 'string', 'description': 'How the nested filters combine. The combinator lives on the group itself'}}, 'description': 'A group combining nested filters with AND/OR', 'additionalProperties': False}], 'description': 'Audience membership filter. Either a single condition ({ operator, path, value }) or a group ({ operator: "AND" | "OR", filters: [...] }) nesting to any depth. Example: { "operator": "AND", "filters": [{ "operator": "EQ", "path": "title", "value": "Engineer" }, { "operator": "INCLUDES", "path": "tags", "value": "beta" }] }'}, 'audience_id': {'type': 'string', 'description': 'The audience ID'}, 'description': {'type': 'string', 'description': 'Description'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['brand_id', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Brand display name'}, 'brand_id': {'type': 'string', 'description': 'The brand ID to update'}, 'settings': {'type': 'object', 'properties': {'email': {'type': 'object', 'additionalProperties': {}}, 'inapp': {'type': 'object', 'additionalProperties': {}}, 'colors': {'type': 'object', 'additionalProperties': {}}}, 'description': 'Brand settings (colors, email, inapp)', 'additionalProperties': False}, 'snippets': {'type': 'object', 'description': 'Brand snippets', 'additionalProperties': {}}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['notification_id', 'submission_id', 'checks'], 'properties': {'checks': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status', 'type'], 'properties': {'id': {'type': 'string', 'description': 'Check ID'}, 'type': {'type': 'string', 'const': 'custom', 'description': 'Check type'}, 'status': {'enum': ['RESOLVED', 'FAILED', 'PENDING'], 'type': 'string', 'description': 'Check status'}}, 'additionalProperties': False}, 'description': 'Checks to update'}, 'submission_id': {'type': 'string', 'description': 'The submission ID for the checks resource'}, 'notification_id': {'type': 'string', 'description': 'The notification template ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['provider_id', 'provider'], 'properties': {'alias': {'type': 'string', 'description': 'Short alias'}, 'title': {'type': 'string', 'description': 'Display name'}, 'provider': {'type': 'string', 'description': 'Provider key (must match existing; changing provider type is not supported)'}, 'settings': {'type': 'object', 'description': 'Provider-specific settings', 'additionalProperties': {}}, 'provider_id': {'type': 'string', 'description': 'The provider configuration ID'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id', 'topic_id', 'status'], 'properties': {'status': {'enum': ['OPTED_IN', 'OPTED_OUT', 'REQUIRED'], 'type': 'string', 'description': 'Subscription status for the topic'}, 'topic_id': {'type': 'string', 'description': 'The subscription topic ID â\x80\x94 must already exist in the workspace. A 404 response means the topic does not exist; create it in the Preferences Editor first.'}, 'tenant_id': {'type': 'string', 'description': 'The tenant ID'}, 'custom_routing': {'type': 'array', 'items': {'enum': ['direct_message', 'email', 'push', 'sms', 'webhook', 'inbox'], 'type': 'string'}, 'description': 'Default channels when has_custom_routing is enabled'}, 'has_custom_routing': {'type': 'boolean', 'description': 'When true, use custom_routing instead of template defaults'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['locale', 'body'], 'properties': {'body': {'type': 'string', 'description': 'Translation content (PO file format)'}, 'domain': {'type': 'string', 'default': 'default', 'description': 'Translation domain'}, 'locale': {'type': 'string', 'description': 'Locale code (e.g. en_US, fr_FR)'}}, 'additionalProperties': False}
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id', 'topic_id', 'status'], 'properties': {'status': {'enum': ['OPTED_IN', 'OPTED_OUT', 'REQUIRED'], 'type': 'string', 'description': 'Preference status'}, 'user_id': {'type': 'string', 'description': 'The user ID'}, 'topic_id': {'type': 'string', 'description': 'The subscription topic ID'}, 'tenant_id': {'type': 'string', 'description': 'Update the preference for this tenant context only'}, 'custom_routing': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Custom channel routing order'}, 'digest_schedule_id': {'type': ['string', 'null'], 'description': "Put the user on one of the topic's digest schedules. Pass null to clear their choice and fall back to the default schedule."}, 'has_custom_routing': {'type': 'boolean', 'description': 'Whether custom channel routing is set'}}, 'additionalProperties': False}
Cambios recientes en herramientas
Servidores MCP similares
FlowCastle
Enables users to build, edit, and deploy Telegram bots through FlowCastle’s hosted visual workflow platform.
Postmark
Provides Postmark email delivery monitoring, including outbound messages, raw message details, delivery statistics, bounces, and …
MinuteMail
Provides temporary mailboxes, simulated inbound email, attachments, custom-domain verification, and mock OAuth identities for tes…
Slack channel name shape, value discarded
Checks the shape of Slack channel names without accessing Slack, alongside generic developer validation utilities.
E.164 shape, number discarded
Validates the shape of E.164 phone numbers without retaining the number.
mailto: shape, address discarded
Validates the shape of a mailto URI.
Slack Webhook Shape
Validates the shape of Slack webhook URLs without retaining secrets, alongside generic developer validation utilities.
furrow-forms
Provisions and manages form backends for websites, including form definitions, embed snippets, submissions, email notifications, …