此 MCP 可以做什么
Provides notification delivery infrastructure for users, tenants, lists, templates, preferences, journeys, automations, brands, and multi-channel messaging.
工具
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id'], 'properties': {'list_id': {'type': 'string', 'description': 'The list ID'}}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['audience_id'], 'properties': {'audience_id': {'type': 'string', 'description': 'The audience ID'}}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['brand_id'], 'properties': {'brand_id': {'type': 'string', 'description': 'The brand ID'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['broadcast_id'], 'properties': {'broadcast_id': {'type': 'string', 'description': 'The broadcast id'}}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id'], 'properties': {'list_id': {'type': 'string', 'description': 'The list ID'}}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['message_id'], 'properties': {'message_id': {'type': 'string', 'description': 'The message ID'}}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tenant_id'], 'properties': {'tenant_id': {'type': 'string', 'description': 'The tenant ID'}}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'cursor': {'type': 'string', 'description': 'Pagination cursor'}}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['user_id'], 'properties': {'user_id': {'type': 'string', 'description': 'The user ID'}}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['list_id'], 'properties': {'list_id': {'type': 'string', 'description': 'The list ID'}}, 'additionalProperties': False}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
输入模式
{'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}
近期工具变更
类似的 MCP 服务器
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, …