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

# meeting intelligence: botless transcripts and summaries

> Use screenpipe for botless meeting memory: live transcripts, speaker naming, calendar context, summaries, transcript copy, and API automation.

{/* https://screenpi.pe */}

screenpipe records meetings without a bot joining the call. it captures the meeting window, microphone, optional system audio, transcript, speaker labels, calendar context, and the surrounding screen history.

<img src="https://docs.screenpi.pe/public/app-screenshots/settings-recording.png" alt="screenpipe recording settings" width="1200" />

## summarize in one click

open a meeting note and hit **Summarize** — screenpipe reads the transcript *and* the screen captured during the call, then writes decisions, action items, and follow-ups into the note. summarize buttons sit at the top and bottom of the note dock.

<Frame caption="one-click summary from the meeting note — decisions, actions, risks">
  <img src="https://mintcdn.com/mediar-ai/UvdTG-8x2rDOZRPa/public/app-screenshots/np21-meeting.gif?s=32110262f1f103bc19b68030b30b971a" alt="clicking Summarize on a meeting note generates a summary" data-path="public/app-screenshots/np21-meeting.gif" />
</Frame>

## what screenpipe captures

| layer    | what it adds                                                                                    |
| -------- | ----------------------------------------------------------------------------------------------- |
| screen   | slides, docs, pricing pages, dashboards, chat, and CRM screens shared or viewed during the call |
| audio    | local transcript from your microphone and selected audio sources                                |
| speakers | speaker IDs, names, aliases, similar-speaker suggestions, and merge history                     |
| calendar | attendee names, meeting title, and time window for better labeling                              |
| notes    | AI summaries, action items, and follow-up context                                               |
| timeline | frame links and time anchors you can revisit later                                              |

## setup checklist

1. open **settings -> recording** and choose the microphone and system audio sources you want.
2. connect **Google Calendar** in **settings -> connections** if you want attendee-aware speaker naming.
3. open the meeting app normally: Zoom, Google Meet, Microsoft Teams, Slack huddles, or another call surface.
4. let screenpipe record and transcribe in the background.
5. open the meeting from the timeline or search with `content_type=audio`.

quick verification:

```bash theme={null}
curl http://localhost:3030/health
curl "http://localhost:3030/search?content_type=audio&limit=1"
```

<Tip>
  calendar context is especially strong for 1:1 meetings. when the meeting has exactly two attendees, screenpipe can infer the other speaker more reliably.
</Tip>

## live transcript workflow

Use the meeting transcript sidebar to:

* rename a speaker once and propagate the label through the meeting
* search for similar speakers before merging duplicates
* copy the full transcript as plain text
* open the related timeline moment when you need visual context
* summarize the meeting with your default AI or a selected pipe

## summarize with a pipe

meeting summaries can use any installed or store pipe. use a pipe when you want a repeatable output format, CRM writeback, an Obsidian note, or a sales-call summary that always includes the same fields.

good summary-pipe instructions include:

```markdown theme={null}
Summarize the meeting in this format:

## decision
## customer pain
## objections
## action items
## follow-up email draft

Use transcript evidence and include timeline links when useful.
```

for customer calls, add evidence fields so the output is usable:

```markdown theme={null}
Summarize the meeting.
Include:
- customer goal
- current workflow
- objections or privacy concerns
- requested integrations
- next action
- exact transcript quotes only when useful
```

## speaker cleanup

```bash theme={null}
curl "http://localhost:3030/speakers/unnamed?limit=10"

curl -X POST http://localhost:3030/speakers/update \
  -H "Content-Type: application/json" \
  -d '{"id": 1, "name": "Sarah Chen"}'

curl "http://localhost:3030/speakers/similar?speaker_id=1"

curl -X POST http://localhost:3030/speakers/merge \
  -H "Content-Type: application/json" \
  -d '{"speaker_to_keep_id": 1, "speaker_to_merge_id": 2}'
```

name speakers from the UI first when you can. use the API when building cleanup tools or recurring workflows.

## meeting APIs

### list and search meetings

```bash theme={null}
# list recent meetings
curl "http://localhost:3030/meetings?limit=20"

# search by title, attendees, or notes (case-insensitive)
curl "http://localhost:3030/meetings?q=customer+sync&limit=20"

# filter by date range
curl "http://localhost:3030/meetings?start_time=2026-05-01T00:00:00Z&end_time=2026-05-31T23:59:59Z"

# combine search with date range
curl "http://localhost:3030/meetings?q=sprint&start_time=2026-05-01T00:00:00Z&limit=10"
```

the `q` parameter searches across meeting title, attendees, and notes with case-insensitive substring matching.

### manage meetings

```bash theme={null}
curl "http://localhost:3030/meetings/status"

curl -X POST http://localhost:3030/meetings/start
curl -X POST http://localhost:3030/meetings/stop

curl -X POST http://localhost:3030/meetings/merge \
  -H "Content-Type: application/json" \
  -d '{"meeting_ids": [12, 13]}'
```

use the meetings API when an automation needs meeting lists, search, current meeting status, merge cleanup, or downstream note updates.

## Zoom, Meet, and Teams tradeoffs

| tool            | best setup                                                                      | notes                                                                      |
| --------------- | ------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| Zoom            | mic plus system audio, Zoom connection when you need cloud recording metadata   | OAuth can enrich meeting metadata; local capture still works without a bot |
| Google Meet     | mic plus system audio, Google Calendar connection                               | calendar attendee context helps speaker naming                             |
| Microsoft Teams | mic plus system audio, Teams or Microsoft 365 connection for structured context | useful for enterprise rollouts and meeting-linked docs                     |

## troubleshooting

| symptom                | try this                                                                                                |
| ---------------------- | ------------------------------------------------------------------------------------------------------- |
| empty transcript       | verify microphone permission, selected device, and `content_type=audio` search                          |
| late transcript        | wait for the transcription batch to finish or switch to realtime transcription                          |
| speaker names wrong    | connect calendar, rename the speaker, then merge similar speakers                                       |
| duplicated meeting     | use merge from the UI or `/meetings/merge`                                                              |
| summary missed context | choose a custom pipe that also searches screen text and accessibility context during the meeting window |
| audio dropouts         | reduce batch duration, select fewer audio devices, or use a faster/cloud transcription engine           |

## related pages

* [meeting transcription](/meeting-transcription)
* [connections](/connections)
* [API recipes](/api-recipes)
* [pipe debugging](/pipe-debugging)
