Skip to main content
Version: 2.0

Connect agents to Zoom Contact Center

Connect a Vectara agent to Zoom Contact Center so it answers customer engagements routed to the Zoom Contact Center chatbot surface.

Limited availability

The current integration depends on a private Zoom Contact Center feature that Zoom must enable for the account. Zoom-side setup also requires Contact Center Flow and Campaign Management configuration. Those setup steps and operation without the private feature have not been fully tested, so this page is not a complete production setup procedure.

How Zoom connectors work

A Zoom Contact Center connector enables asynchronous message handoff between Zoom and a Vectara agent:

  1. Webhook ingestion: Zoom sends chatbot requests to the connector webhook.
  2. Token verification: Vectara verifies the x-zoom-connector-token header against the connector's generated token.
  3. Agent execution: The agent processes the customer message in an agent session keyed to the engagement.
  4. Response callback: Vectara posts the agent's response back to the Zoom callback URL when the run completes.

The connector response includes both the webhook path and the generated connector token. Configure both values in Zoom Contact Center.

Create a Zoom Contact Center connector

Before you begin

You need:

  • A Vectara account with agent creation permissions.
  • Zoom Contact Center administrator access.
  • The callback URL Zoom uses for asynchronous chatbot replies.
  • Optionally, the callback access token Zoom issues for that URL.

Step 1: Create the connector

curl -X POST https://api.vectara.io/v2/agents/<agent_key>/connectors \
-H "x-api-key: $VECTARA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Support Zoom Contact Center",
"description": "Receives Zoom Contact Center chatbot messages",
"enabled": true,
"configuration": {
"type": "zoom",
"callback_url": "https://zoom.example.com/callback",
"callback_access_token": "your-zoom-callback-access-token",
"typing_duration_seconds": 60
}
}'

Expected response:

{
"id": "con_3Kx9QpVn2mZr8YbLc5TdWe",
"agent_key": "support_agent",
"name": "Support Zoom Contact Center",
"type": "zoom",
"status": "active",
"enabled": true,
"configuration": {
"type": "zoom",
"webhook_path": "/v2/agents/support_agent/connectors/con_3Kx9QpVn2mZr8YbLc5TdWe/zoom",
"connector_token": "generated-token",
"callback_url": "https://zoom.example.com/callback",
"callback_access_token": "your-zoom-callback-access-token",
"typing_duration_seconds": 60
},
"created_at": "2024-01-15T10:30:00Z"
}

When supplied, the callback_access_token is encrypted at rest and returned in create, get, and list responses. The connector_token is platform-generated and also returned, by design. Copy configuration.webhook_path and configuration.connector_token for the Zoom setup.

Step 2: Configure Zoom Contact Center

In a Zoom Contact Center Flow:

  1. Add an HTTP request node and set its method to POST.
  2. Set the request URL to https://api.vectara.io plus the connector webhook_path.
  3. Configure the request to send the connector token in the x-zoom-connector-token header.
  4. Map the consumer message into the request's message field.
  5. Ensure Zoom sends customData.signature and customData.engagementId in chatbot requests. Vectara uses these values to correlate asynchronous replies to the engagement.
  6. Configure how the app appears through Zoom Contact Center Campaign Management.

The exact Campaign Management steps and whether a separate Zoom Developer Console app is required have not been verified.

Step 3: Test the connector

  1. Start a test Zoom Contact Center engagement that routes to the chatbot.
  2. Confirm Zoom receives the typing response immediately.
  3. Confirm the agent response is posted back through the callback URL.
  4. If Zoom rejects the webhook, list connectors and inspect last_webhook_status.

Manage connectors

List connectors

curl https://api.vectara.io/v2/agents/<agent_key>/connectors \
-H "x-api-key: $VECTARA_API_KEY"

Update connector

curl -X PATCH https://api.vectara.io/v2/agents/<agent_key>/connectors/<connector_id> \
-H "x-api-key: $VECTARA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"configuration": {
"type": "zoom",
"callback_url": "https://zoom.example.com/new-callback",
"callback_access_token": "new-callback-access-token",
"typing_duration_seconds": 45
}
}'

When a PATCH includes configuration, that object fully replaces the caller-supplied configuration. Include every caller-supplied field you want to keep. The platform preserves the generated connector_token across updates.

Delete connector

curl -X DELETE https://api.vectara.io/v2/agents/<agent_key>/connectors/<connector_id> \
-H "x-api-key: $VECTARA_API_KEY"

Deleting a connector removes the configuration and stops event processing. Active sessions are not affected.

Troubleshooting

Webhook requests return 401

  • Verify the Zoom endpoint URL uses the connector's exact webhook_path.
  • Verify Zoom sends the x-zoom-connector-token header with the generated connector token.
  • Check that the connector still exists and has type zoom.

Zoom receives the misconfiguration message

Vectara sends a static misconfiguration message when Zoom omits fields required for asynchronous replies.

  • Confirm the request includes customData.signature.
  • Confirm the request includes customData.engagementId.
  • List connectors and inspect last_webhook_status for missing_signature or missing_engagement.

The agent response is not delivered

  • Verify the connector callback_url is reachable by Vectara.
  • If configured, verify the callback_access_token is current.
  • A last_webhook_status value of success means Vectara accepted the event and launched processing. It does not confirm that the agent run completed or that the callback was delivered.