> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vowen.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Send transcription data to any external service.

<div style={{ marginTop: "-2.5rem" }}>
  <Info>The <a href="https://vowen.ai" className="font-semibold underline-offset-2" style={{ color: "#8b5cf6", backgroundColor: "rgba(139, 92, 246, 0.12)", border: "1px solid rgba(139, 92, 246, 0.35)", padding: "2px 8px", borderRadius: "6px", fontSize: "0.85em", textDecoration: "none", whiteSpace: "nowrap" }}>Pro plan</a> unlocks Webhooks and MCP integrations so you can send transcription data to any external service.</Info>
</div>

## Overview

Webhooks let you send transcription data to any URL via HTTP POST. Use this to connect Vowen with Zapier, Make, custom servers, or any automation platform.

## Setup

1. Go to **Settings > Integrations** (or find the Webhook option)
2. Enter your **webhook URL**
3. Enable the integration

## Payload Format

Each transcription triggers a POST request with a JSON body:

```json theme={null}
{
  "timestamp": "2026-05-10T14:30:00.000Z",
  "text": "The transcribed and enhanced text",
  "originalText": "The raw transcription before AI enhancement",
  "model": "base.en",
  "language": "en",
  "duration": 5.2,
  "aiEnhanced": true
}
```

## Use Cases

* **Zapier/Make automation** — trigger workflows when you dictate
* **Custom logging** — send transcriptions to your own database
* **Slack/Teams posting** — automatically post meeting summaries
* **CRM integration** — log voice notes against contacts
* **Task creation** — create tasks in Linear, Jira, or Todoist from voice

## Meeting Note Webhooks

Beyond per-transcription webhooks, you can fire a webhook with each **meeting note summary**. Configure it under **Settings > Meeting Notes > Integrations > Configure Webhook**.

### Payload Format

For any non-Slack, non-Discord URL, the meeting note is sent as a JSON body:

```json theme={null}
{
  "transcript": "Speaker 1: ...\nSpeaker 2: ...",
  "summary": "The AI-generated meeting summary",
  "tags": ["Sales", "Follow-up"]
}
```

`tags` is always present and is an empty array (`[]`) when no tags are assigned to the note.

### Slack and Discord formatting

Vowen detects Slack and Discord webhook URLs automatically — just paste the URL, there's no format selector to set:

* **Slack** (`hooks.slack.com/services/...`) — the summary is posted as **Block Kit** with proper headings, dividers, and Slack `mrkdwn` (bold, italic, links, bullets), so it renders cleanly instead of as raw text
* **Discord** (`discord.com/api/webhooks/...`) — the summary is posted as rich **embeds**, with the note title as the embed title
* **Any other URL** — the summary is sent as plain text in the POST body

### Delivery logs

Vowen keeps a log of recent webhook deliveries so you can confirm they're landing and debug failures. Click **Logs** in the Configure Webhook screen to open the **Webhook Logs** view.

* The **last 25 deliveries** are retained (oldest drop off automatically)
* Each row shows **Time, Status, Trigger** (`auto` or `manual`), **Note**, and **Duration**, and expands to reveal the endpoint, payload format (`plain`, `slack`, or `discord`), request headers, request body, and response body
* Sensitive headers (Authorization, Cookie, anything that looks like a key or token) are **redacted**, and large bodies are truncated
* **Refresh** re-reads the log; **Clear logs** empties it

## Error Handling

If the webhook URL returns an error, Vowen logs the failure but continues recording normally. Webhook failures don't interrupt your transcription workflow.
