Webhook Events
Receive meeting data automatically via outbound webhooks, ideal for n8n, Make, Zapier, or any HTTP endpoint.
Optiverse can send meeting data to your own HTTP endpoints (webhooks) whenever a meeting finishes processing. This is ideal for connecting Optiverse to workflow automation tools like n8n, Make, or Zapier, or for pushing data directly to your own backend.
How It Works
- You create one or more webhook configurations in Settings → Integrations → n8n Webhooks.
- Each webhook points to an HTTPS endpoint (e.g. your n8n webhook URL).
- When a meeting ends and processing completes, Optiverse sends a
POSTrequest to your URL with the meeting data you selected.
You can configure multiple webhooks with different data selections, protocols, and custom metadata — each fires independently.
Trigger Modes
Each webhook supports two trigger modes:
| Mode | Description |
|---|---|
| Automatic | Fires automatically after every meeting finishes processing. No manual action required. |
| Manual | Only fires when you explicitly trigger it from the meeting summary screen. Useful for selective workflows. |
You can always trigger any webhook manually, regardless of the automatic setting.
Payload Format
Webhooks deliver a POST request with a JSON body. The exact fields included depend on your webhook configuration.
Full Payload Example
{
"timestamp": "2026-05-19T14:30:00.000Z",
"userId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"recordId": "54e7e4e4-4417-4662-90db-18456f71ecbb",
"meetingTitle": "Q2 Planning Session",
"eventStart": "2026-05-19T14:00:00.000Z",
"participants": ["john@example.ai", "jane@example.ai"],
"organizer": "john@example.ai",
"message": "The team discussed the Q2 roadmap and assigned action items...",
"summary": {
"sections": [
{
"question": "What are the action items?",
"answers": ["John will prepare the Q2 report by Friday", "Jane will finalize the designs"]
}
]
},
"transcript": "[John Doe]:\nLet's start with the roadmap discussion...\n\n[Jane Smith]:\nI think we should prioritize...",
"shareUrl": "https://app.optiverse.ai/share/abc123",
"phoneNumber": "+4930123456"
}Configurable Data Fields
You choose which fields to include for each webhook:
| Field | Key | Description |
|---|---|---|
| Meeting Title | meetingTitle | The calendar event title |
| Date & Time | eventStart | When the meeting occurred (ISO 8601) |
| Attendees | participants | Array of participant email addresses |
| Organizer | organizer | Email of the meeting organizer |
| Summary | message, summary | AI-generated summary (plain text and/or structured sections) |
| Transcript | transcript | Full meeting transcript |
| Phone Number | phoneNumber | For Aircall recordings only |
Fields that are always included regardless of configuration:
timestamp— when the webhook was sentuserId— your user IDrecordId— unique meeting record identifiershareUrl— sharing link (if available)
Custom Properties
You can attach static key-value pairs to any webhook. These are merged into the payload, which is useful for:
- Routing logic in n8n (e.g.
"team": "sales") - Identifying the source in multi-tenant setups
- Passing metadata your workflow needs
{
"timestamp": "2026-05-19T14:30:00.000Z",
"recordId": "...",
"meetingTitle": "...",
"team": "sales",
"priority": "high"
}Custom HTTP Headers
You can add custom HTTP headers to each webhook request. This is useful for:
- Authentication tokens expected by your endpoint
- Routing headers for API gateways
- Custom identifiers
For security, certain headers are blocked (e.g. Authorization, Cookie, Host, proxy headers). The Content-Type: application/json header is always set automatically.
Summary Protocol Override
By default, webhooks include the summary generated by the meeting's default protocol. You can optionally select a specific protocol template per webhook — for example, using a "CRM Update" protocol that extracts just the fields your CRM needs.
This means you can have multiple webhooks for the same meeting, each delivering a differently structured summary.
URL Requirements
Webhook URLs must currently follow the n8n webhook URL pattern:
https://your-instance.app.n8n.cloud/webhook/your-webhook-id
https://your-instance.app.n8n.cloud/webhook-test/your-webhook-idSelf-hosted n8n instances are supported as long as the URL matches the pattern https://<host>/webhook/<id> or https://<host>/webhook-test/<id>.
Webhook support is currently limited to n8n-compatible URLs. Support for arbitrary HTTPS endpoints (Make, Zapier, custom backends) is on the roadmap.
Setting Up a Webhook
- Go to Settings → Integrations in Optiverse.
- In the n8n Webhooks section, click Add Webhook.
- Enter a name, your n8n webhook URL, and optionally a description.
- Choose whether to trigger automatically or manually.
- Expand Data to Include to select which fields to send.
- Optionally configure a custom summary protocol, custom properties, or HTTP headers.
- Click Save.
Your webhook is now active and will fire based on your trigger configuration.
Example: n8n Workflow
A typical n8n workflow connected to Optiverse:
- Webhook trigger node — receives the POST from Optiverse
- IF node — filters by meeting title or attendees
- Action nodes — send to Slack, update a CRM, create a task in Notion, etc.
Optiverse Meeting → Webhook POST → n8n → Slack / CRM / Email / NotionExecution Status
Each webhook tracks its last execution status, which you can see in the integrations dashboard:
- Last triggered at — timestamp of the most recent delivery
- Last meeting — title of the meeting that triggered it
- Status —
SuccessorErrorwith the error message
Next Steps
- API Reference — use the REST API alongside webhooks for a complete integration