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

# Zoom

> Sync Zoom meeting transcripts and recordings as searchable knowledge for your AI agent.

## What Zoom adds to Halo

Zoom is an ingest-only integration:

| Mode | What it does |
| - | - |
| **Ingest** | Sync meeting transcripts and recordings into Halo. Transcripts are matched to known customers by participant email and become searchable knowledge. |

This means the AI can reference what was said in a customer call when answering future questions. Enterprise teams find this especially useful for kickoff conversations, technical discussions, and demos.

Connect at **Integrations > Zoom**.

## Setup

### Connecting

Click **Connect Zoom**. You'll be redirected to Zoom's OAuth consent screen. Required scopes include:

* `cloud_recording:read:*` — read cloud recordings and transcripts
* `meeting:read:*` — read meeting metadata
* `user:read:*` — identify Zoom users

After approval, Halo registers a webhook automatically and triggers an initial sync of recent meetings.

### Webhook

Webhook endpoint: `POST /api/integrations/zoom/webhook`

Verification:

* **URL validation**: HMAC of `plainToken` with `ZOOM_WEBHOOK_SECRET_TOKEN`
* **Real events**: HMAC `v0:{timestamp}:{body}`

Real-time event processed:

* **`recording.transcript_completed`** — when a meeting transcript becomes available, Halo enqueues it for processing

The webhook resolves your org by `zoom_account_id` on team settings.

## Ingest mode

When ingest is on, Halo syncs:

| Data | Where it lands |
| - | - |
| **Meetings** | `meetings` table with `provider: zoom`, linked to customers via participant email matching |
| **Transcripts** | Indexed in your knowledge base under `zoom:` |
| **Distilled transcripts** | Optional summarization pass adds entries under `distilled:zoom:` |

### Customer matching

When a Zoom meeting transcript syncs, Halo matches participant emails against your `end_users` and `companies` tables. Successful matches link the meeting to the customer record, making it visible on the company detail page and accessible to the AI as customer-scoped context.

If no participant email matches a known customer, the transcript still ingests as general knowledge (helpful for FAQ-style internal meetings).

### Sync behavior

* **First connect**: pulls recent meetings (configurable lookback window)
* **Cron**: hourly background sync (`cronSync: true`)
* **Webhook**: real-time on transcript completion
* **Manual sync**: button on the integration detail page

## Knowledge contributions

Zoom transcripts are **distillable** — Halo runs an additional pass to extract structured insights:

* Customer pain points and feature requests
* Action items
* Pricing discussions
* Product feedback

Distillation can be controlled via [Learning Rules](https://docs.haloagents.ai/knowledge/learning-rules.md) — for example, a rule to focus on action items and skip small talk.

## Stats

The integration page shows:

* Total meetings synced
* Linked meetings (those associated with known Halo customers)
* Recent transcript activity
* Last sync time

## Where to go next

> **[Fathom](https://docs.haloagents.ai/integrations/fathom.md)**
>
> Alternative meeting recorder with the same ingest behavior.

> **[Learning Rules](https://docs.haloagents.ai/knowledge/learning-rules.md)**
>
> Filter what gets learned from meeting transcripts.

> **[Knowledge Overview](https://docs.haloagents.ai/knowledge/overview.md)**
>
> The full knowledge ingestion pipeline.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.