Webhooks send an HTTPS POST to your server when something happens in your organization. There is one event today, capture.processed. It fires when a meeting has finished processing, and it carries the full analysis: summary, participants, topics, action items, coaching tips, signals and skill results.

<aside> 💡

A workspace in the app is a project in the API, and a meeting is a capture. Payload fields use the API names.

</aside>

How it works

  1. You register an endpoint: a target URL plus the events it wants.
  2. Nonverbia generates a signing secret for that endpoint and shows it to you once.
  3. When a meeting in any workspace of the organization finishes processing, Nonverbia sends the event to every endpoint subscribed to it.
  4. Your endpoint checks the signature, answers 2xx quickly, and processes the event.

Webhooks belong to the organization, not to a workspace or a token. Every subscribed endpoint receives events from all workspaces in the organization. If you only care about some workspaces, filter on data.projectUuid.

Set up an endpoint

In the app

You need to be an organization owner.

  1. Open a workspace and go to Integrations → Webhooks.
  2. Click Add endpoint.
  3. Select the Events (capture.processed) and enter the Target URL (must start with https://).
  4. Click Create and copy the Signing secret from the Webhook created dialog. It is shown only once.

Each endpoint's menu has Send test event, View last delivery, Edit and Delete. The Edit dialog also has Rotate signing secret.

Through the API

curl -X POST https://api.nonverbia.com/api/v1/webhooks \
  -H "Authorization: Bearer $NONVERBIA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "events": ["capture.processed"],
    "targetUrl": "https://example.com/webhooks/nonverbia"
  }'

The token needs the webhooks:write scope and must act for an organization owner. The response contains the secret. See the API reference for listing, updating, deleting and testing webhooks.

The delivery request