# Trigger Use `features.marketplace_triggers` to declare Marketplace triggers in your app manifest. A trigger starts a workflow when a supported Zoom product event occurs. The information in the `marketplace_triggers` section of the manifest JSON represents the values on the **[Triggers](/docs/build-flow/triggers/)** page of the app build-flow. This page covers the generally available built-in trigger definitions for manifest-based triggers. Built-in definitions provide the Zoom-managed event contract, including the trigger name, command ID, supported location, and output fields. Your manifest references the built-in definition and supplies only the app-specific delivery configuration. ## Manifest JSON ```json { "features": { "marketplace_triggers": { "enable": true, "triggers": [ { "name": "Zoom Phone All Events", "command_id": "zoom_phone_all_events", "trigger_type": "static_webhook", "built_in_config": { "definition_id": "ZoomPhoneAllEvents2025_Consolidated", "version": "1.0.0" }, "static_webhook_config": { "connector_webhook_key": "zoom_phone_call_events", "connection_required": false } } ] } } } ``` > **Built-in triggers** > > For built-in triggers, `name` and `command_id` are canonical values from the built-in definition. Use the exact values shown in the built-in definitions table. Do not customize them. > **connector_webhook_key** > > `connector_webhook_key` is app-specific. It must match a webhook key configured for your app's Connect/webhook setup. --- ## Available built-in definitions Use the values exactly as shown. These values are case-sensitive. | Product area | Trigger | Location | name | command_id | definition_id | Version | | :------------------ | :-------------------- | :---------- | :-------------------- | :---------------------- | :------------------------------------ | :------ | | Zoom Phone | Zoom Phone All Events | `PHONE` | Zoom Phone All Events | `zoom_phone_all_events` | `ZoomPhoneAllEvents2025_Consolidated` | 1.0.0 | | Zoom Contact Center | Voice Bot All Events | `VOICE_BOT` | Voice Bot All Events | `voicebot_all_events` | `VoiceBotAllEvents2025_Consolidated` | 1.0.0 | --- ## Zoom Phone example Use this built-in trigger for Zoom Phone call events. The trigger output includes the call ID, event type, conversation summary text, and call metadata labels/variables. ```json { "features": { "marketplace_triggers": { "enable": true, "triggers": [ { "name": "Zoom Phone All Events", "command_id": "zoom_phone_all_events", "trigger_type": "static_webhook", "built_in_config": { "definition_id": "ZoomPhoneAllEvents2025_Consolidated", "version": "1.0.0" }, "static_webhook_config": { "connector_webhook_key": "zoom_phone_call_events", "connection_required": false } } ] } } } ``` ## Zoom Phone output fields | Output key | Type | Description | | :----------------- | :----- | :------------------------------------------ | | `callId` | string | Unique identifier for the Zoom Phone call. | | `event_type` | string | Type of call event emitted by Zoom. | | `text` | string | Conversation summary text for the call. | | `metadata[]` | array | Labels and variables captured for the call. | | `metadata[].key` | string | Metadata field name. | | `metadata[].value` | string | Metadata field value. | --- ## Zoom Contact Center voice bot example Use this built-in trigger for Zoom Contact Center Voice Bot conversation events. The trigger output includes the conversation ID, event type, summary text, transcript messages, and metadata variables. ```json { "features": { "marketplace_triggers": { "enable": true, "triggers": [ { "name": "Voice Bot All Events", "command_id": "voicebot_all_events", "trigger_type": "static_webhook", "built_in_config": { "definition_id": "VoiceBotAllEvents2025_Consolidated", "version": "1.0.0" }, "static_webhook_config": { "connector_webhook_key": "voice_bot_conversation_events", "connection_required": false } } ] } } } ``` --- ## Voice Bot output fields | Output key | Type | Description | | :--------------------- | :------ | :-------------------------------------------------------------------------------------- | | `conversationId` | string | Unique identifier for the Voice Bot conversation. | | `event_type` | string | Type of Voice Bot event emitted by Zoom. | | `text` | string | Summary text for the conversation. | | `messages[]` | array | Ordered transcript messages exchanged during the conversation. | | `messages[].bot` | boolean | `true` when the message was produced by the bot; `false` when produced by the consumer. | | `messages[].message` | string | Plain-text message content. | | `messages[].timestamp` | number | Message timestamp. | | `metadata[]` | array | Variables captured during the conversation. | | `metadata[].key` | string | Metadata field name. | | `metadata[].value` | string | Metadata field value. | --- ## Field Description | Field | Required | Description | | :-------------------------------------------- | :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | | `enable` | No | Enables manifest-managed triggers when `true`. Defaults to `true`. Set to `false` only if you want to disable manifest-managed triggers for the app. | | `triggers` | Yes | Array of trigger definitions. | | `name` | Yes | Canonical built-in trigger name. Use the exact value shown in the built-in definitions table. Do not customize this value. | | `command_id` | Yes | Canonical built-in trigger command ID. Use the exact value shown in the built-in definitions table. Must be unique within the manifest payload. | | `trigger_type` | Yes | Delivery type for the trigger. Use `static_webhook` for the built-in examples on this page. | | `built_in_config.definition_id` | Yes | Built-in definition identifier. Use the exact value shown in the built-in definitions table. | | `built_in_config.version` | Yes | Built-in definition version. Use the exact version shown in the built-in definitions table. | | `static_webhook_config.connector_webhook_key` | Yes, for static_webhook | Webhook key configured for your app. Maximum 128 characters. | | `static_webhook_config.connection_required` | No | Whether the trigger requires an app connection before it can run. | --- ## Built-in fields supplied by Zoom Do not include custom values for the built-in trigger contract. Zoom supplies these from the built-in definition: - Trigger display name - Trigger command ID - Supported product location - Output fields - Output field data types Your manifest should only select the built-in definition and provide delivery configuration such as the webhook key. --- ## Validation rules - `name`, `command_id`, `definition_id`, and `version` must match the built-in definition values shown on this page. - `command_id` values must be unique in the `triggers` array. - For `static_webhook` triggers, include `static_webhook_config.connector_webhook_key`. - Do not include `locations` for the built-in triggers listed here. The supported location comes from the built-in definition. - Do not include `output_definition` for the built-in triggers listed here. Zoom supplies the output contract. - Do not include `script`, `global_webhook_config`, or `resthook_config` when `trigger_type` is `static_webhook`. - Keep `connector_webhook_key` at 128 characters or fewer. ## Choosing the right trigger - Use `ZoomPhoneAllEvents2025_Consolidated` when your workflow should react to Zoom Phone call events. - Use `VoiceBotAllEvents2025_Consolidated` when your workflow should react to Zoom Contact Center Voice Bot conversation events. If a product area or trigger definition is not listed on this page, do not add it to a public manifest until Zoom documents it as available for manifest use.