Integrations

Let other apps and scripts react when a meeting is done

Overview

Integrations start something elsewhere when a recording, upload, transcript, or summary finishes. Add them in Settings → Connections. They are for automation; the app already tells you when work is done.

What you can add

  • Webhook: sends a signed JSON request to an address you paste. Works with Zapier, Make, n8n, Power Automate, Home Assistant, or your own server. Addresses must use https://; plain http:// is allowed only for this computer or your local network.
  • Run a script (macOS and Windows): runs a program on your computer.
  • Run a Shortcut (macOS): runs a Shortcut with the event as a JSON file.

Each integration has an on/off switch, a Test button, and a Recent activity list where you can use Send again.

What gets sent

Nothing is sent until you add an integration. Each one has its own content level:

  • Details only (default): title, time, length, folder, tags, and speaker names. No meeting content.
  • Details and summary: adds the summary.
  • Details, summary and transcript: adds the full transcript. Long transcripts are cut at 900 KB and flagged as truncated.

You can leave out titles, and limit an integration to certain folders and tags. Webhook addresses and secrets are stored in your system's keychain. Deleted meetings are never sent afterwards.

Events

  • session.processed: the meeting is fully processed. Sent once per meeting after automatic transcription and summary. This is the default.
  • recording.started, recording.completed, recording.failed
  • upload.completed
  • transcript.ready, transcript.failed
  • summary.ready, summary.failed: summary.ready fires for every new summary, including regenerated ones.

Webhook delivery

Webhooks are real-time. Brief outages are retried for up to 10 minutes with the same event id, so receivers can drop duplicates. Anything older is dropped, so a laptop waking up the next morning doesn't replay yesterday. To send an old event, use Send again.

Verifying a signature

Requests follow the Standard Webhooks spec, with the headers webhook-id, webhook-timestamp, and webhook-signature. Each webhook has its own signing secret, which you can show, copy, or replace in Settings.

Payload

Payloads are versioned. Fields may be added, but their meaning never changes. summary.content_markdown and transcript appear only at the content levels that include them.

{
                      "version": 1,
                      "id": "evt_0193…",
                      "type": "summary.ready",
                      "occurred_at": "2026-11-01T14:03:22Z",
                      "app": { "name": "MeetingDebrief", "version": "6.0.0" },
                      "trigger": "auto_after_recording",
                      "session": {
                        "id": 412,
                        "title": "Weekly sync",
                        "duration_seconds": 3412.5,
                        "language": "en",
                        "folder": "Clients / ACME",
                        "tags": ["client-acme"],
                        "speakers": ["Sarah", "Anna", "Speaker 3"]
                      },
                      "summary": { "id": 977, "template": "General", "content_markdown": "…" },
                      "transcript": { "text": "…" },
                      "error": null
                    }

Scripts and Shortcuts

A script receives the event as JSON on stdin and in a temporary file named by MEETINGDEBRIEF_EVENT_FILE, plus the environment variables MEETINGDEBRIEF_EVENT, MEETINGDEBRIEF_EVENT_ID, and MEETINGDEBRIEF_SESSION_ID. Runs stop after 60 seconds and a non-zero exit counts as failed. Runs aren't retried automatically, because a script may not be safe to run twice.

Event stream for local tools

With the Local HTTP API on, local tools can listen to GET /api/events without adding an integration. Events are details only.

Posting to Slack, Teams, or Discord

MeetingDebrief doesn't post to chat apps itself, because auto-posting every meeting risks a private one-on-one landing in a team channel. If you want it, build it on a webhook with Zapier, Make, n8n, or Power Automate, which also lets you add an approval step.

Tap image to zoom