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

# Push Meeting Notes

> Send a note-taker's output (raw transcript, summary, AI-enriched recap, action items) against an existing meeting. Designed for webhooks from Fathom, Granola, Otter, Zoom AI Companion, or any in-house note-taker flow (Make / Zapier / custom).

The note attaches to a `calendar_event` that already exists in Nexor. There are no orphan notes in v1: if no meeting resolves, you get a `404`.

**Meeting resolution.** The endpoint tries the following in order, stopping at the first match:

1. `calendar_event_id` (direct).
2. `external_calendar_provider` + `external_calendar_event_id` (matches meetings created via `POST /meetings` with those dedup keys).
3. `meeting_url` (exact match on the calendar\_event's meeting URL).
4. `lead_email` + `meeting_date` (lead's meeting within ±60 minutes of `meeting_date`).
5. `lead_email` alone (the lead's most recent past meeting; no time-window floor).

**Idempotency.** If you supply `external_meeting_id` together with a `provider`, replays of the same `(provider, external_meeting_id)` under your client update the existing row instead of creating duplicates. The timeline `note_added` activity fires only on the first insert, not on replays.

**Reserved providers.** These values are rejected to protect internal sync pipelines: `fireflies`, `diio`, `gemini`, `retell`. Pick any other lowercase alphanumeric string (e.g. `fathom`, `granola`, `otter`, `manual`, `zoom_ai`). Regex: `^[a-z0-9_-]{1,64}$`.

**Minimum payload:** one way to resolve a meeting (`calendar_event_id`, `external_calendar_event_id` + `external_calendar_provider`, `meeting_url`, or `lead_email`) **and** one non-empty content field (`notes`, `transcript_text`, `summary`, `manual_ai_summary`, or `action_items`).


## API Specification

The full API specification for this endpoint is available in the [documentation index](https://docs.getnexor.ai/llms.txt).
