Courier
Was dieses MCP kann
Provides notification delivery infrastructure for users, tenants, lists, templates, preferences, journeys, automations, brands, and multi-channel messaging.
Tools
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id'], 'properties': {'list_id': {'type': 'string', 'description': 'The list ID'}}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audience_id'], 'properties': {'audience_id': {'type': 'string', 'description': 'The audience ID'}}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['brand_id'], 'properties': {'brand_id': {'type': 'string', 'description': 'The brand ID'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id'], 'properties': {'list_id': {'type': 'string', 'description': 'The list ID'}}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['message_id'], 'properties': {'message_id': {'type': 'string', 'description': 'The message ID'}}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id'], 'properties': {'tenant_id': {'type': 'string', 'description': 'The tenant ID'}}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cursor': {'type': 'string', 'description': 'Pagination cursor'}}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id'], 'properties': {'list_id': {'type': 'string', 'description': 'The list ID'}}, 'additionalProperties': False}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Eingabeschema
{'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}
Letzte Tool-Änderungen
Ähnliche MCP-Server
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, …