Documentation

Everything Brieflee does, and how to drive it.

Brieflee is the private AI assistant for the people who run the room. It joins your Teams, Meet or Zoom call as a visible participant, transcribes live, and writes the summary, the decisions and the action items once the call ends. Switch coaching on and a side panel only you can see says what to say and what to ask while you are still on the call.

3
platformsTeams · Meet · Zoom
~20s
to joinafter you send it in
7
live tabsin the meeting panel
3 credits
per coaching hour+10 min grace
Getting started

Overview

Brieflee listens to a meeting and works on it in real time. A notetaker joins the call as a visible participant and the transcript streams back, so the report is written from what was actually said rather than from memory.

During the call: a side panel, one only you can see, fills with a suggested reply, the next question worth asking, risks it heard, and what you still have not covered. Switch coaching on from the panel at any minute; the recording and the report happen either way.

It never speaks, never posts to the meeting chat beyond its own arrival notice, and never renders on the shared screen or in the recording. You stay the only voice in the room.

During the call

The notetaker joins and transcribes. The narrow panel inside Teams, Meet or Zoom fills its seven tabs of live signal once coaching is on.

When it ends

A structured report writes itself: takeaways, decisions, risks, action items.

Afterwards

Tasks, search across every meeting, a shareable read-only link, and a push to your CRM.

Want to see the panel before installing anything? /preview renders the real panel against a sample meeting: no Teams, no account, no backend.
Getting started

Install

There are three ways in. The meeting app puts the panel inside the call. The web app lets you send the notetaker into any call from a link: no install on the meeting platform at all. The desktop app, for Windows and Mac, records calls on your own computer, with nothing joining them.

Microsoft Teams

1

Get the package

The app ships as a zip containing manifest.json and two icons at the archive root. Teams rejects it if the files sit in a subfolder.

2

Sideload or publish

Teams → Apps → Manage your apps → Upload a custom app, or publish the zip to the org from the Teams Developer Portal. Your Teams admin must permit custom app upload.

3

Add it to a meeting

Brieflee appears in the meeting's app list, and can also be added as a tab from the meeting chat or details view.

4

Sign in inside the panel

Tab SSO is off by default, so the panel shows its own sign-in card the first time. Later panel loads reuse that session.

The Teams app requests only the identity permission. It declares no bot and no Graph access, so installing it does not by itself grant Brieflee access to your Teams calls, chats or files.

Google Meet, Zoom, or anything with a link

Open the web app, press Send Brieflee to a meeting in the sidebar, and paste the join link. Brieflee validates it and sends the notetaker in. Recognised links:

PlatformLink forms accepted
Microsoft Teamsteams.microsoft.com
Google Meetmeet.google.com
Zoomzoom.us

In Zoom specifically, opening the Brieflee panel dispatches the notetaker on its own using the join URL the Zoom SDK provides.

Desktop app for Windows and Mac

On Windows 10 and 11, it notices when Teams, Zoom, Google Meet or Webex takes your microphone and records the call from your computer: your microphone and what the computer plays, streamed to Brieflee as you talk. When a Brieflee notetaker is going to the same booked meeting, the app leaves the recording to it, and records instead if the notetaker is turned away or still waiting to be let in after three minutes. Google Meet is recognised from its browser tab while that tab is in front; after that you can switch tabs and it stays one recording.

On a Mac with Apple silicon (M1 or later) and macOS 13 or later, it records the same two sides, with some differences. It starts by itself for a call in the Zoom, Teams or Webex app; for Google Meet or any other call in a browser, press Record. A Zoom recording ends with the meeting, but press Stop when a Teams or Webex call ends: a Mac does not tell Brieflee that the call is over, and left alone the recording carries on until nothing has been heard for five minutes. Installing on a Mac has the steps and the rest of what differs.

On either, nobody sees a notetaker join when the computer records, so tell everyone on the call that an AI notetaker is running. Download it, check its checksum, and find the MSI for IT deployment on Windows at brieflee.ai/download.

Getting started

Your first call

01

Open the Brieflee panel in your meeting, or paste the join link into “Send Brieflee to a meeting”.

02

Pick your seat: the panel asks once which role you sit in, and tunes what it surfaces to it.

03

Add context if you have it: paste a note or drop in the proposal. Optional, but it is what makes the replies specific.

04

Admit “Brieflee Notetaker” from the lobby if your meeting has one. It takes about 20 seconds to appear.

05

Talk normally. Reply, Probe, Risk and Gaps fill as the other side speaks.

06

When the call ends the report writes itself: no button to press.

If the notetaker is never admitted from the lobby, nothing is captured. The panel tells you which state it is in: a green “Notetaker is in this meeting” or an amber “Nothing is being captured”.
In the meeting

The live panel

Seven tabs. Four sit in the bar: Reply, Feed, Probe, AI, and Risk, Gaps and Decided open from the “More ▾” dropdown at the end. Each carries a live count badge; Risk adds a red ! when a flag is high or critical.

The header shows the meeting title, an elapsed clock, a pulsing Rec light once the first line lands, and a running count of captured transcript lines. The clock is anchored to when the meeting actually started, server-side, so switching Teams tabs or reloading the panel does not reset it to zero.

Teams unmounts and remounts the panel every time you switch to another meeting tab, which reboots the whole app. Brieflee is built for that: the tab you were on, your AI-tab conversation, and the fact you dismissed the context step are all remembered per meeting.
In the meeting

The signals

A signal is something the AI produced: one of the four below. It is not the line count in the panel header, which counts lines of speech the notetaker finalised. The two used to share the word and a customer, quite reasonably, asked which was which.

Reply

A whispered answer that streams in word-by-word as soon as the other side finishes a sentence: first person, 1–3 sentences, something you can say out loud. It fires only on other people's lines, never your own, and stays quiet for filler, greetings and acknowledgements.

Probe

The next questions worth asking, each with the reason it matters, a priority and a category, colour-coded and individually copyable.

Risk

Flagged concerns graded critical to low, each with an Evidence line quoting what triggered it and a recommended Move: one concrete next action.

Gaps

What a confident proposal still needs, with severity and why it matters, plus the coverage meter described below.

Decided

Decisions the conversation actually landed on, pulled out as they happen.

AI

Free-form chat about the meeting in progress, grounded in the transcript so far. Costs nothing.

If the client speaks again while a reply is still writing, the stream is cancelled and the half-written text is relabelled superseded rather than left looking finished. Below the live reply sit refined answers from a slower pass: the detected question as a pull-quote, a suggested reply, bullet talking points, a confidence label and a copy button.

Replies are always written in English, even when the meeting is being held in another language.
In the meeting

Coverage & wrap-up

Every meeting is tracked against a fixed ten-point technical checklist, shown as a meter with an NN / 10 count:

IntegrationsData volumeUsersSSOData residencyComplianceTech stackTimelineDeployment modelSuccess criteria

An item is never marked covered or partial without an actual quote from the call; if the AI claims coverage with no evidence, the server forces it back to empty. Expand a row to read the quote it was based on. You can override any item by clicking its status dot to cycle empty → partial → covered, and the change syncs to every device watching that meeting.

Set the expected meeting length (default 60 minutes) and the panel runs a T-minus countdown. With ten minutes left and items still open it writes a single bundled wrap-up question covering the remainder; at two minutes it switches to a red “These will need a follow-up” banner.

In the meeting

Transcript & Ask AI

The Feed tab is the live transcript. Each finalised line carries a timestamp, the speaker's name as the notetaker reported it, and the text; every distinct speaker keeps a consistent colour and your own lines take the accent. A greyed “live” line can show a sentence forming before it settles.

Right-to-left scripts (Urdu, Arabic, Hebrew) are laid out correctly beside a Latin speaker name, both in the panel and in the finished report.

Feed renders the last 80 segments and says so when it truncates. The full transcript is kept server-side and shown in the post-meeting report.

The AI tab answers questions about the meeting in progress from the transcript so far, and is instructed to say plainly when the transcript does not cover something rather than guess. The conversation survives a panel reload. In-meeting questions are free.

The notetaker

How it joins

The notetaker is a browser bot running on Brieflee's own infrastructure. It joins as a guest participant named Brieflee Notetaker, visible to everyone in the participant list. Nothing is captured covertly.

On joining, it posts this to the meeting chat:

To help take notes, this meeting is being recorded and transcribed by Brieflee AI. By staying in the meeting, you're giving consent. A summary may be shared with the meeting organiser. Privacy policy: https://brieflee.ai/privacy

By default no meeting audio is sent to a third-party speech engine at all: the bot turns on the meeting platform's own closed captions and Brieflee ingests the caption text, with speaker attribution coming from the platform itself.

SituationWhat happens
Never admitted from the lobbyNothing is captured. The panel keeps showing “Nothing is being captured”.
You add it twiceThe second request finds the existing bot and reports “already-joined”. No second bot enters.
A bot was denied or crashedIt is replaced, attached to the same meeting.
The meeting endsThe bot leaves by itself, and the report generation starts.
You are out of creditsThe notetaker still joins and records, whether you add it by hand or the calendar sends it; only live coaching cannot be switched on.
A meeting is already liveRefused: one live meeting per account at a time.
A meeting the bot attended has a recording you can replay in the app. The browser is never given a URL to the recording store; the file is streamed through Brieflee's own proxy under a short-lived signature.
The notetaker

Languages

You pick the spoken language of the meeting per account, and it is read at the moment the bot is created, so it applies identically to a notetaker you send in by hand and one dispatched from your calendar.

Once the bot is in the room the language cannot be changed for that call. The panel says so: “Applies to your next meeting; the notetaker already in this one cannot be switched.”
The notetaker

Calendar auto-join

Connect Outlook or Google Calendar and the notetaker turns up on its own, dispatched1, 3 or 5 minutes before each meeting starts (3 unless you change it under Calendar auto-join in Settings, Integrations), so the join and any lobby admission happen before anyone is talking. There is nothing to launch.

How it behaves
ProvidersMicrosoft (Outlook / Microsoft 365) and Google Calendar. No others.
DirectionRead-only. Every calendar request Brieflee makes is a GET, and it never writes to your calendar.
Invitation textThe sync looks through it only for a join link and keeps none of it. “Read from the invitation” in a meeting's agenda reads that one event's description again, when you press it.
Opt-in modelOpt-out per meeting: every mirrored event with a join link starts with the notetaker ON.
SyncEvery 3 minutes, covering the next 14 days, into Brieflee's own copy.
Duplicate invitesThe same invite on two calendars is collapsed to one meeting and one bot.
Recurring meetingsHandled per occurrence: each gets its own decision and its own bot.
No join linkShown as un-joinable, with no toggle offered.

The Calendar page has Day, Week, Month and Year views, filters, and keyboard shortcuts (←/→ to move, T for today, D/W/M/Y to switch view). The view and date live in the URL, so a calendar link can be shared.

Turning auto-join off for a calendar leaves the account connection itself intact; it only stops the notetaker dispatching.
Grounding the AI

Meeting context

Before a call you can attach material to that one meeting: paste a note, or upload documents. Both are stored as extracted plain text and fed into the live prompts, so replies, probes, risks and gaps can draw on your own material.

File types.pdf .docx .txt .md
Size limit10 MB per file
Combined cap30,000 characters per AI call; the model is told when material was truncated
Tables in DOCXRead, including table contents, so pricing and scope tables do reach the AI
Scanned PDFsNot supported: there is no OCR, and a no-text upload is rejected with a message saying so
VisibilityOnly the meeting's owner. Every context endpoint verifies ownership.

Both Start meeting and Skip open the same consent dialog, “Save this meeting's context?”, with a tick-box on by default. Where you consent, documents from your earlier meetings with the same client are pulled into later meetings too, newest first.

Context, playbooks and prior-meeting material are re-read on every analysis pass, so a document added mid-meeting is picked up by the next one. Nothing to restart.
Grounding the AI

Playbooks

Seven discovery playbooks ship with the product, read-only:

Website ProjectCustom Web ApplicationEcommerceMobile ApplicationAPI & IntegrationsCloud & InfrastructureCybersecurity & Compliance

They are substantial: the Website playbook alone carries 40 checklist items and 30 reference questions. Three parts reach the live AI: the discovery checklist feeds the gaps detector, the top questions feed the next-question generator, and the risk flags feed the risk detector. Items are filtered against your stated role first, so what is irrelevant to your seat drops away.

Playbooks are visible to workspace owners and admins, and to solo accounts. Ordinary members are redirected to the dashboard.
Grounding the AI

Objection library

Your workspace keeps cards with a category, trigger phrases and one approved answer. A new organization is seeded with 31 default cards across all ten categories; solo accounts get their own private library.

Detection runs in two stages: a free keyword match against your trigger phrases first, then an AI classifier reading recent transcript when no phrase hits. When one fires, the panel shows an orange card with the matched phrase, a confidence percentage, your approved answer, and, streaming in below, a version tailored to this client.

The tailored version is instructed to keep the spine of your approved answer and invent no new pricing, terms, commitments or capabilities. Edit a card and it takes effect on the very next thing said; cards are re-read on every transcript chunk.
After the call

The report

When a meeting completes the report generates itself; there is no button to press. It usually takes 10–30 seconds, and the owner is emailed the whole thing inline.

The report has eight tabs:

TabWhat is on it
OverviewA 1–2 sentence purpose, 8–12 takeaways, and 4–8 topic-clustered sections
Mind mapThe meeting drawn as a map: its topics, what was decided, what is to do and what is still open, a few points each
Signals & RisksVerbatim buying signals tagged by type, plus risks graded critical to low with evidence
RequirementsWhat the client actually asked for
ActionsEach action item with an owner, priority and a due date in the speaker's own words
Follow-up & CRMA pre-drafted follow-up email, CRM-ready fields, and the push controls
CoachingHow the conversation went
TranscriptThe full speaker-attributed record, with the recording if there was one
The summariser is told not to invent: it must use the participants' own vocabulary, must not complete a half-stated requirement, and must not “repair” a misheard company or product name. Where a section has nothing, it says so: “No action items were captured; nothing was committed this meeting”, rather than padding.

If a call continues an earlier one, the report adds Related past meetings and Carried over from last meeting, checking each past commitment against the new transcript and marking it done, in progress, not done or unclear. A link the model itself grades low-confidence is discarded, so an uncertain match cannot write another customer's history into your report.

With too little speech to summarise honestly, the server refuses and explains why rather than inventing a summary.
Across meetings

Filing a meeting

Every way a meeting starts asks the same four things: what type it is, the client it is with, the project it belongs to, and what it is for. A meeting can name a client and a project together, and neither is required. A Procurement meeting names a vendor where the others name a client. A name that does not exist yet is created in the same field, and the title is suggested from the name and the purpose: ABC Company: Product demonstration.

Meetings from before you started filing are not lost. They sit as Uncategorisedand can be filed one at a time, several at once from the Meetings list, or proposed by Brieflee from the call itself. A proposal always says it is one and waits for you to confirm it, so nothing is filed under a heading you did not choose.

What a meeting is filed under is what everything else filters on: the Meetings list, Tasks, Decisions, the analytics and the scope of a question.

After the call

Tasks

Every action item the AI heard, across every meeting, in one list. Tasks are deduplicated by a hash of the meeting and the normalised action text, so re-syncing never duplicates and a task you already ticked stays ticked.

They group into Open, Overdue and Done. Tick them, cycle priority by clicking the chip, or remove them; changes save immediately. Clicking a task opens that meeting's report on the Actions tab and highlights the exact item it came from.

What the AI hears arrives as a suggestion. It waits in Suggested until somebody approves it, one at a time or a whole meeting at once, because “maybe Ahmed can look into this” is not a commitment. A promise made again in a later meeting joins the task already open rather than becoming a second row, and says how many meetings it has come up in.

A daily email is available in Settings, Notifications, with a switch per kind: overdue, due in the next seven days, raised again, waiting for review, and decisions recorded. Every switch is off until you turn it on, and a day with nothing in the kinds you chose sends no email at all.

Across meetings

Ask Brieflee

Ask Brieflee answers from your recorded meetings rather than from one of them. It is in the navigation and on your home page, not buried inside a call: “What did we agree with ABC Company?”, “What is still unresolved on this project?”, “What objections came up most often?”

Narrow it before you ask: everything, chosen meetings, a meeting type, a client, a vendor, a project, a purpose, a participant or a date range. The page says which meetings it searched. Answers carry their sources, and a source card gives the meeting, the date, the speaker and the timestamp; opening a timestamp opens that transcript line, with the recording ready to play from there.

It answers only from meetings you can already open, says plainly when the answer is not in them rather than inventing one, prefers the latest confirmed position when something changed, and explains a contradiction instead of choosing a side. Follow-up questions keep the thread, and a new chat clears it.

A cross-meeting question costs 1 credit, debited before the answer runs and refunded automatically if the AI request fails. Asking about the meeting you are currently in, from the panel's AI tab, is free.
Across meetings

Decisions

What your meetings decided, kept outside the meetings that decided it: the decision, the call it came from, the date and where it stands. Filter it the way you filter everything else, and group it by meeting, client or vendor, project, type or month.

When a later meeting changes its mind, both are kept. The earlier decision is marked as replaced and linked to the one that replaced it, so the chain reads end to end and the current position is never in doubt. Brieflee never connects two decisions on its own: it offers the ones that look related and you choose, becauseuse Provider A for hosting and use Provider A for email read alike and are two decisions.

Across meetings

The brief before a call

Fifteen minutes before a meeting that follows an earlier one, Brieflee offers a brief at the top of the app: what was decided, what you promised, what others promised and what nobody took. It is also on the meeting's card in the Calendar and beside your next call on Home, so you can open it sooner.

A meeting follows an earlier one when it is the same repeating meeting on your calendar, or when both are filed under the same project, client or vendor. It reads your own finished meetings, so nothing is offered ahead of a first meeting.

Every finished meeting, including one recorded with no calendar entry, has the same brief at the top of its report: Brief for next call. It opens what that meeting decided and what is still open, with anything left from the earlier meetings it follows.

The brief before a meeting can also come by email, fifteen minutes ahead. It is off until you switch it on in Settings, Notifications, and nothing is sent when there is nothing to say.

Tick off a promise you have kept right there; it is the same task as on the Tasks page. A task Brieflee heard and nobody has approved yet is marked Suggested. Opening a brief costs no credits.

After the call

Sharing

One click on Share mints a public link and copies it. Clicking Share again returns the same link, so a link already sent to a customer is never silently invalidated.

Who can open itAnyone with the link: no Brieflee account, no sign-in. The token is the whole authorisation.
What it showsThe report's tabs, minus anything empty
What it excludesThe meeting recording, and every CRM-push control; a leaked link exposes one meeting, not a workspace
RevokingKills every forwarded copy at once
ExpiryNone: links stay live until revoked
After the call

Push to CRM

Three CRMs are supported end-to-end: HubSpot, Pipedrive and Zoho CRM. The push lives on the report page and appears only once a summary exists and that CRM is connected.

Push is manual and approval-first. Nothing leaves Brieflee until you pick a deal and click Push; there is no background job, scheduler or automatic sync. Brieflee only creates records; it never edits or deletes anything in your CRM, and the deal you pick is only read.
CRMEach action item becomesThe optional summary note
HubSpotA Task on the deal, assigned to the owner whose email matches yoursA Note engagement on the deal
PipedriveAn Activity of type “task” on the dealA Note on the deal
Zoho CRMA Task linked to the dealA Note attached to the deal

Every task carries a breadcrumb back to Brieflee: the meeting title, the suggested owner and the summary id. Due dates are read from the wording of the action item (“by tomorrow”, “by next week”, “in 3 days”) and otherwise default to three days out. A push can partially succeed, and you get a per-item report of exactly what was created.

Step-by-step setup for each, with the data shared and how to disconnect: HubSpot, Pipedrive and Zoho CRM.

Account

Plans & credits

Meetings cost no credits. Pro includes up to 60 hours of meetings a month and Enterprise up to 120 hours a person, under fair use, and Free includes 3 hours of meetings a month. Credits pay for live coaching, counted from when you switch coaching on in a meeting, which can be halfway through. 3 credits cover up to 60 minutes of coaching, with a 10-minute grace before the next hour is charged, so 70 minutes of coaching still costs 3, and 71 minutes costs 6. Coaching shorter than 5 minutes in a meeting is not charged by itself; such short stretches add up over the calendar month, and every full hour of them uses one coaching hour. The charge is incremental as coaching runs, not up front.

Your plan includes its coaching hours outright (the Coaching hours column below), and those are spent before any credits you have bought, so a pack you buy on the side tops the plan up rather than replacing it.

PlanMonthlyYearlyCoaching hours
Free$0—1 at sign-up, 3 recap hours a month
Pro$15$153 ($12.75/mo)2 / month
Enterprise$23 per person$220.80 ($18.40/mo) per person5 / month per person

Annual billing deposits the whole year's coaching hours up front: 24 for Pro, 60 for Enterprise. Credit packs need no subscription and are sold in 4 sizes:

PackPricePer credit
5 credits$12$2.40
15 credits$30$2.00
40 credits$70$1.75
100 credits$150$1.50

What costs extra

ActionCost
The meeting, its transcript and its automatic reportIncluded, no credits
Asking the AI about the meeting you are inFree
Asking a question across your meetingsIncluded: 100 a month on Pro, 300 a person on Enterprise, 10 on Free; then 1 credit each
The full post-meeting reportIncluded on Pro and Enterprise; 1 credit on Free, once per meeting

Nothing else debits a credit: reading history, exports and transcript ingest are all covered. Both extras are refunded automatically if generation fails.

At zero balance the meeting itself does not change. A notetaker you add by hand still joins and records, a calendar auto-join still happens, and browser capture still transcribes: the transcript, summary and report all still happen. Only live coaching cannot be switched on, and if it was on when the hours ran out it switches itself off while the meeting carries on. Nothing is deleted either way: past meetings, transcripts and summaries stay readable, because no read path costs a credit.
Credits do not expire. In a team they are pooled: every member spends from the shared balance. The free plan's 3 credits (1 coaching hour) are given once, when you sign up, and are not topped up. Everything is priced in USD.
Account

Workspace & roles

There are two independent axes. Your workspace role is owner, admin or member. Separately, a platform-operator flag unlocks the Brieflee console; being a workspace owner does not grant it.

Owner / AdminMemberSolo
Dashboard, Meetings, Calendar, Tasks, Analytics, Ask AI✓✓✓
Playbooks✓—✓
Credits & billing✓—✓
Team roster, invite links, remove members, set roles✓——

A solo account has no organization and is treated as owner of its own one-person workspace, with a personal credit balance. It can form or join a team later without creating a new account.

Inviting a teammate produces one shareable link for the whole workspace; Brieflee sends no invite email, you send the link yourself. Generating a new link immediately invalidates every link shared before it. Anyone who redeems one joins as a member; an owner or admin can make them an admin from the Team page afterwards. A link that can be forwarded never carries admin.
Credits are workspace property. Joining a team moves your personal balance into the shared pool, and removing a member leaves their credits in it. The owner can never be removed, and nobody can remove themselves.
Account

Integrations & scopes

Signing in with Microsoft or Google is separate from connecting those accounts. Sign-in requests only openid email profile; no calendar, mail or task permission at all.

Connecting an account under Settings → Integrations is an explicit second step:

ProviderScopes requestedBrieflee writes
Googleopenid email profile tasks calendar.readonlyTasks, into a list you pick. Never the calendar.
MicrosoftTasks.ReadWrite Calendars.Read User.Read offline_access openid emailTo Do tasks, into a list you pick. Never the calendar or mailbox.

From a calendar event Brieflee stores only the event id, the invite's iCalUID, the title, start and end times, the join URL and a cancelled flag. Attendee lists are never stored. “Read from the invitation” in a meeting's agenda reads that one event's description when you press it and keeps only the agenda lines you save; those lines are never sent to AI. Action items reach Google Tasks or Microsoft To Do only when you pick a target list and press Push.

Disconnecting Google revokes the grant at Google before deleting the stored tokens, so Brieflee also disappears from your Google account permissions page. All stored OAuth tokens are encrypted at rest.
Developers

API keys

Create a key at Settings → API keys. It needs a name and an end date. The full secret is returned exactly once, at creation; the list endpoint has no field for it, so a lost key is unrecoverable. Create a new one and revoke the old.

Formatde_ followed by 48 hex characters, 51 in total
StoredOnly a SHA-256 hash and an 11-character prefix. A database read cannot recover a usable key.
ExpiryChosen when the key is made: 30 days, 90 days (the default), a year, or never. From that moment the key is refused. Keys made before 2 October 2026 never expire.
LimitsA key cannot create another key and cannot open platform administration. Sign in for those.
RevocationTakes effect on the very next request. The row is kept, so name, prefix and last-used history stay visible.
Plan gateNone: API access is not restricted by subscription plan. The only economic gate is the credit balance on AI actions.

Three headers all authenticate a key:

auth
X-API-Key: de_…
Authorization: Bearer de_…
Authorization: de_…
Developers

REST API

Every path is prefixed with /v1. Start with a smoke test; it returns the account the credential belongs to:

curl
curl https://brieflee.ai/v1/auth/me \
  -H "X-API-Key: de_your_key_here"

Key management

MethodPathPurpose
GET/v1/api-keysList keys, newest first. Never returns secrets.
POST/v1/api-keysCreate. Takes `name` and an optional `expires_in_days` (1 to 365; omitted means never). Returns the secret once, as `key`, with `expires_at`.
DELETE/v1/api-keys/{id}Revoke (204 No Content).

Meetings and transcripts

MethodPathPurpose
GET/v1/meeting-sessionsList, with ?page, ?page_size and ?status
POST/v1/meeting-sessionsCreate (title, meeting_type, domain all required)
GET/v1/meeting-sessions/{id}One session in detail
PATCH/v1/meeting-sessions/{id}Update
DELETE/v1/meeting-sessions/{id}Delete (204)
GET/v1/meeting-sessions/{id}/chunksThe transcript, paginated
GET/v1/meeting-sessions/{id}/summariesPersisted summaries, newest first

Asking questions

curl
curl -X POST https://brieflee.ai/v1/meeting-sessions/SESSION_ID/ask \
  -H "X-API-Key: de_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"question": "What did they say about the timeline?"}'

# => {"answer": "..."}

POST /v1/meeting-sessions/ask-all asks across your recent meetings and returns the same shape. That one costs 1 credit; the single-meeting form does not.

The notetaker

curl
curl -X POST https://brieflee.ai/v1/bot/join \
  -H "X-API-Key: de_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"meeting_url": "https://teams.microsoft.com/l/meetup-join/..."}'

It creates a meeting session on the fly if you do not pass one. POST /v1/bot/leave pulls the bot out.

Everything else

AreaEndpoints
Tasks/v1/tasks
Credits/v1/credits/summary, /v1/credits/transactions
Profile/v1/users/me, /v1/users/languages
Playbooks/v1/playbooks, /v1/objection-cards
Calendar/v1/calendar/status, /v1/calendar/events
Exports/v1/meeting-sessions/{id}/exports
Share links/v1/meeting-sessions/{id}/share
Health/health, at the root, not under /v1
Outbound webhooks do not exist. The API is read-and-write over HTTP only. If you need push notifications into your own systems, tell us what you need.
Developers

Errors

Errors come back as standard JSON: {"detail": "..."}.

StatusWhen
401No credential, a malformed header, or a key that is unknown, revoked, deactivated or belongs to a deleted account. Takes effect on the next request, not at token expiry.
402Not enough credits for something that costs them: the full report, an AI question across meetings, or switching on live coaching (code no_credits). Also a month's meeting hours used up (the free plan's allowance, or a paid plan's fair use): when adding a notetaker, recording from the browser, importing, or adding the first line to a meeting nothing has started yet (code meetings_used_up). Imported text longer than the hours left is refused the same way; a recording longer than them ends as a failed import that says why. Adding transcript to a meeting already running never returns it.
404Anything you do not own: sessions, exports and keys alike. Deliberately not 403, so ids cannot be enumerated across accounts.
409A meeting is already live. Sessions idle for 20 minutes are closed out first.
422Asking to summarise a meeting with essentially no transcript, rather than returning a fabricated summary. Also setting a meeting's status to anything but completed or archived: a meeting starts when its notetaker joins or its first audio or line arrives, never by setting its status.
429Past a daily safety limit on questions or on rewriting one meeting's report, or live suggestions asked for again within seconds. The detail says when it opens again.
Trust & help

Security & privacy

Who sees the panelOnly you. It renders in your client, never on the shared meeting surface, in chat, or in the recording.
Who sees the notetakerEveryone. It joins as a visible participant and announces itself in the meeting chat.
Where the bot runsOn infrastructure Brieflee hosts itself, not a third-party notetaker vendor.
AI subprocessorsThree: our own speech-to-text on RunPod GPUs (audio only), Modal as its backup when RunPod has no server free (audio only), and DeepSeek for suggestions and summaries (transcript only). All called directly. The full list, with regions, is on the sub-processors page.
Meeting privacyMeetings are private to the account that created them. No workspace, admin or platform endpoint returns another user's transcript or summary.
PasswordsHashed with bcrypt. Plaintext is never stored.
SessionsAn 8-hour token on the web; 30 days in the phone and desktop apps. Every request re-reads the account, so deactivation and Sign out of every device take effect immediately rather than at expiry.
Third-party tokensEncrypted at rest for every connected provider.
Payment detailsHandled by Stripe. Card details are never posted to Brieflee's servers.
Calendar data is structurally kept away from the AI. A calendar event's subject is stored in its own column, separate from the meeting title the model is allowed to see; the summariser names the meeting from the transcript instead.

The verbatim Google API Services User Data Policy Limited Use statement is published on the privacy policy.

Trust & help

Keep recordings on your own storage

Recording, video, transcript, summaries and exports are all written to storage you own, encrypted in transit and at rest. It never has to rest on Brieflee’s infrastructure. Set it up in Settings → Storage.

S3-compatibleAmazon S3, Cloudflare R2, Wasabi, Backblaze B2, DigitalOcean Spaces, MinIO/Ceph, or any other S3 endpoint. Server-side encryption and your own KMS key are supported.
Azure Blob StorageAccount, container and key. Server-side encryption supported.
Google Cloud StorageVia S3 interop, with customer-managed keys.
SFTP / cPanelAny server you can reach over SSH. No cloud account needed.
OneDrivePersonal or work and school. Connect with Microsoft; there are no keys to copy, and Brieflee can open only its own folder there. A company OneDrive may need your IT admin to approve Brieflee the first time.
Google DrivePersonal or Google Workspace. Connect with Google; there are no keys to copy, and Brieflee can see only the files it saved itself.
Folder prefixEvery provider takes one, so recordings land where your own retention rules already apply.
CredentialsWrite-only. A saved key is returned masked and must be sent back unchanged to keep it, so editing a bucket prefix cannot wipe your access key.
Saving does not just store the credentials. It writes a canary object to your destination, reads it back, then deletes it, so “Connected” means all three worked, including your cleanup rights.

The two delivery paths are different promises. S3, Azure and Google Cloud can issue a signed URL, so the recording is uploaded straight into your storage and is never written to a Brieflee disk. SFTP, OneDrive and Google Drive cannot take an upload signed straight from the recorder, so their uploads are streamed through Brieflee in chunks, in memory, and never written to its disk either. OneDrive recordings then play straight from OneDrive. Which path a given meeting took is recorded against that meeting.

The recording, the video, the transcript, the summaries and the exports are all written to storage you own. What remains with Brieflee is the metadata a listing needs (title, counts and timestamps) and any minutes you send, kept so the people you send them to can read them.

If your storage is unreachable, Brieflee holds the recording and keeps retrying. You choose what happens then: keep a copy with Brieflee, or have nothing kept anywhere else.

Trust & help

Data & deletion

Deleting a meeting deletes its transcript and summaries, and calls the bot runtime to destroy the recording it holds, not just the row in Brieflee's database. Deleting everything is self-serve, irreversible, and purges the recordings too. A workspace with storage of its own can choose to keep a deleted meeting's files there (Settings, Storage).

Meetings, transcripts and summaries have no automatic expiry unless your workspace sets one: they stay until you delete them or delete the account. A workspace owner or admin can choose a window in Settings, Data retention (from 30 days to 3 years); meetings older than it are then deleted every day, starting a week after the window is saved. The one exception is the notetaker's video recording, which is deleted 90 days after the meeting ends; the meeting, its transcript and its summaries stay.

Security-relevant actions are written to an audit trail: sign-ins with method, meeting deletions, recording purges, API-key creation and integration disconnects. The audit writer never records secrets.

Trust & help

Troubleshooting

No captions are appearing

Check the notetaker was admitted: it shows up in the participant list as “Brieflee Notetaker”. If it is sitting in a lobby, nothing is captured until someone lets it in. Credits are a separate question: at zero balance the notetaker still joins and records, whether you add it by hand or the calendar sends it; only live coaching needs hours.

The notetaker never joined

Auto-join needs the meeting flagged in Calendar and a connected Microsoft or Google account, and it is sent 1, 3 or 5 minutes before the start, as you set it under Calendar auto-join. A meeting with no join link cannot be attended. You can always add it mid-call from the panel.

It says a meeting is already in progress

Only one live meeting per account at a time. Open the meeting that is running, or wait; sessions idle for 20 minutes stop counting.

The side panel is blank in Teams

Make sure the app is pinned to the meeting and you are signed in. Tab SSO is off by default, so the panel shows its own sign-in card the first time. Reopen it if you joined late. The AI tabs stay quiet until coaching is switched on for the meeting.

The panel reset when I switched tabs

Teams reboots the panel iframe on every tab switch. Brieflee restores your tab, your AI conversation and the meeting clock, but a genuinely fresh panel will ask you to sign in if no session was stored.

Suggestions seem off-domain

Attach the relevant material to the meeting, and set your role. Replies and the gaps ledger are grounded in your documents, the active playbook and your seat.

My uploaded PDF was rejected

There is no OCR, so a scanned or image-only PDF has no extractable text. Files must be .pdf, .docx, .txt or .md and 10 MB or smaller.

The language was wrong

The language is read when the bot is created, so it cannot be changed for a call already in progress. Set it before the next meeting.

Trust & help

Limits reference

Credit60 minutes + 10 minutes grace, rounded up per meeting; under 5 minutes in a meeting is free, and such stretches add up: every full hour of them in a month uses one
Free allowance3 credits (1 coaching hour) once at sign-up, and 3 hours of recording every calendar month
Meetings a month3 hours on Free; up to 60 hours on Pro and 120 hours a person on Enterprise (fair use). Calendar month in UTC, each part of a meeting counted in the month it is held; on a paid plan a meeting already running is never cut off, and on Free it stops recording when the hours run out, with a warning ten minutes before
Live meetingsOne per account at a time; idle sessions stop counting after 20 minutes
Context upload10 MB per file; .pdf .docx .txt .md; 30,000 characters combined per AI call
Discovery checklistFixed at 10 items
Meeting length setting5–480 minutes, default 60
Live transcript viewLast 80 segments in the panel; the full record is in the report
API keyde_ + 48 hex = 51 chars; optional end date, up to a year; no per-account limit
Session token8 hours on the web; 30 days in the phone app and the desktop app, which renews its own while in use
Notetaker dispatch1, 3 or 5 minutes before a calendar meeting (3 unless you change it); ~20 seconds to appear
Calendar syncEvery 3 minutes, 14 days ahead
Share linksNo expiry; revocable
CurrencyUSD only
Something here not matching what you see? Tell us at support@brieflee.ai; this page is written against the shipping code and we would rather fix it than leave it wrong.