Skip to main content
Cortex does not tie you to one meeting tool. Instead it defines a simple transcript format, and accepts it from anything that can make an HTTP request: your note-taker’s export, a script, a webhook, an automation platform. If a tool can POST a file, it can feed your brain.

The format

A markdown file with a small header block, then the transcript itself:
Two fields matter most:
  • attendees with email addresses. The meeting skill resolves people by email, not by guessing names from the dialogue, so filled-in attendees make the difference between “linked to the right Jane” and “a new page for a second Jane”.
  • externalId. A stable id from the source tool. If the same transcript is sent twice, Cortex recognises it and does not create a duplicate.
Everything else is optional. Even a bare transcript with no header works; the filing just has less to go on.

Where to send it

Any of the normal entry points. The transcript lands in the brain’s inbox and is filed like anything else, by your agent, by auto-ingest, or by you in the review queue.
  • The API, with a service credential: POST /api/v1/inbox (your default brain) or POST /api/v1/brains/{brain}/inbox (a named brain). See the API reference.
  • A webhook source on the brain: POST /api/ingest/{brainId} with the source’s secret. See webhooks.
You can add ?path=meetings (or any folder) to either URL to suggest where the meeting should file. It is a hint for the filing pass, not an order; the content itself can never choose its own destination.

Which client is this?

In a partitioned brain (a clients brain, say), every transcript is matched to a client when it arrives. Add ?partition=acme to the address if the sender already knows. Otherwise the attendee email domains decide: a call with people from acme.com and nobody from another client’s domain is Acme’s, and your own company’s domains never count. A transcript that cannot be placed waits as “needs a client” with its candidates, one click to assign, and the assignment can remember the domain for next time. Attendees with email addresses are therefore doubly valuable in a partitioned brain: they identify the people and they identify the client.

A reference pusher for Granola

If your team records calls with Granola, the Cortex repository ships a small script, the Granola collector, that reads each person’s notes through the Granola API, writes them in the format above and pushes them in. It routes by attendee: a call with anyone outside your own domains goes to the shared clients brain and Cortex decides the client; a call with only your own people goes to that person’s own brain, or nowhere. It runs on your side, on a schedule, with your Granola tokens; Cortex never polls Granola itself.

Duplicates and retries

Send the same transcript twice, or let a flaky integration retry: as long as externalId (or simply the identical content) matches, Cortex returns the existing item instead of creating a copy.