Archive unmapped call transcripts to general folder.
When a call transcript can't be matched to a specific company, it still gets archived in a shared catch-all folder for review.
Reference build
Save a copy of every recorded call into one shared folder — no company resolution, no routing, no LLM. Whether the meeting is tied to a portfolio company, a fresh deal, an LP, or no record at all, the transcript lands in the same place. It's the safety net under the company-folder automation: if routing fails, the file still exists somewhere you can grep.
Why bother? A complete transcript archive is a long-term data asset. Once every call sits in one drive, you can layer search, embeddings, a chat-with-your-history app, or quarterly review tooling on top of it later. The cheapest version of "we have institutional memory" is a folder of text files.
Fields produced along the way
Deliberately small payload — this automation is one input, one output, no branching.
| Field | What it holds |
|---|---|
| meeting_id | From the webhook payload — used to fetch the meeting record and recording |
| call_recording_id | From the webhook payload — used to walk the transcript pages |
| meeting_title | Title from the meeting record — becomes the file name after sanitization |
| full_transcript | Paginated transcript, concatenated with a newline before each [hh:mm:ss] speaker turn |
| clean_title | Title stripped to letters / numbers / single spaces — safe for SharePoint |
| site_id / drive_id / folder_id | Hardcoded pointers to the single 'all transcripts' folder |
Gotchas
- 01Settle delay matters: notetakers stamp the recording as 'ready' before the transcript pages are actually written. The 3-minute delay before the first fetch dramatically cuts empty-transcript runs.
- 02Pagination is non-optional: the transcript endpoint cursors through pages. Without walking the cursor you silently truncate every long call to its first page.
- 03Filename sanitization: SharePoint rejects `/ \ : * ? " < > |` and trims trailing dots. Strip to `[a-zA-Z0-9 ]+`, collapse whitespace. Without this, ~5% of uploads silently fail.
- 04conflictBehavior = rename: two meetings with the same title don't overwrite. SharePoint appends a numeric suffix so the archive stays append-only.
- 05Fixed destination on purpose: no company resolver, no folder search, no LLM call. This is the dumb-but-reliable sibling of the company-folder automation. Run both — this one is the safety net.
- 06Privacy gate (if needed): if any meetings are confidential, gate this on a meeting tag or a participant-domain check before uploading. The default is 'archive everything.'
Swap matrix
Every layer is replaceable. The point is the archive, not the vendor.