Ian Johnson

Case study · Aida · 2024–now

The Sales Meeting, End to End

I spent a year building meeting agents at Aida. These are the four problems that were harder than they looked, with what worked, what failed, and what is still open.

The interactive canvas: the full sales meeting journey, with layers for the decisions and the architectureExplore the interactive version

01 · feeds the next meeting

Pre-reads

A brief that primes you for a meeting from prior context.

It’s not summarization — it’s entity resolution. The hard part was the brief being about the right person, deal, and context. A gorgeous brief on the wrong company kills trust.

A pre-read snapshots something that won’t hold still. New meetings stack up; the context graph moves. Static briefs rot in days — freshness is the whole problem.

What worked

  • Calendar-triggered briefs at 24 hours and 10 minutes before.
  • Attendee-scoped, not deal-scoped — how people walk into a room.
  • Account-level synthesis for execs, not stacked deal summaries.

What failed

  • Dossiers sometimes surfaced the wrong company — the worst failure mode.
  • Research panels went blank for tenants who never set up config.
  • Static summaries drifted from live data and started misleading.

Entity resolution and tenant config are the silent killers — not summary quality. The model output was fine. The metadata around it broke things in the field.

Still open: Fully automatic pre-reads vs. interactive “ask for what you need.” Never settled.

02 · raw input

Diarization

Reliable speaker labels and clean transcripts, live.

Raw accuracy barely matters. Segmentation stability does — whether who-said-what holds still. A transcript reads fine to a human and is still quietly broken underneath.

Everything downstream trusts that segmentation. When it drifts, nothing errors — it just rots, and you find out three features later.

What worked

  • Recall identity-based diarization live, plus a Gladia async pass for fidelity.
  • Custom vocabulary for product and people names — fed in sparingly.
  • Native Zoom recording when available, instead of fighting it.

What failed

  • Aggressive custom vocab destroyed fidelity. Same-day revert.
  • Merging transcript sources silently broke speaker attribution.
  • A Google Meet diarization bug bit us for weeks. Multi-speaker-in-one-room never got solved.

One stable transcript beats a richer merged one. The brittle part is what runs on top — not the transcript. Optimize for stability, not pretty text.

Still open: Fusing identity-based and voice-fingerprint diarization at scale stayed in prototype.

03 · system of record

Notes & storage

Store meeting outputs so they can power everything downstream.

Most “quality” complaints weren’t the model. They were wiring and metadata — the note landed in the wrong place, shape, or entity. The output was usually fine.

Where a note lands decides what you can build on it. Week-one schema opens and closes doors. Get it wrong and you migrate everyone’s history.

What worked

  • Event-scoped notes as work items, auto-archived after three days.
  • Per-customer template configs that matched how each team works.
  • Summary-only or full-transcript writeback — the customer’s choice.

What failed

  • Raw transcripts in one text field: character limits, felt untrustworthy.
  • Long-running notebooks just accumulated — nobody could find anything.
  • Flaky auto-send recaps destroyed trust faster than any quality bug.

Format and destination is unsolved industry-wide. Notebook, per-entity summary, or event-scoped artifact — each unlocks different downstream. No neutral default, so choose early and deliberately.

Still open: We never converged on one canonical storage model.

04 · feeds forward into work

Action items

Turn meeting outputs into things people actually execute.

Prescribing actions kills trust fast unless accuracy is very high. One confidently wrong to-do and the whole list is dead to them.

There’s no universal action shape — it’s vertical-specific. Sales wants nothing like ops or product. The structure is the whole thing, different per customer.

What worked

  • Per-field AUTO vs MANUAL, so only low-risk fields auto-execute.
  • Style-only edits — AI changes tone, never facts.
  • Confirm/cancel cards for irreversible actions. Biggest unlock: user-curated scaffolds — templates, custom instructions, weekly reports the AI just fills. Adoption jumped when users owned the structure.

What failed

  • Generic AI action lists got ignored as noise.
  • Low-value follow-ups cluttered tasks until people tuned out.
  • Bot-voice recaps that did too much got rejected.

Let users build the scaffold; let AI fill it. Don’t let AI decide someone else’s workflow — sales isn’t ops isn’t product. Hand structure to whoever owns the work.

Still open: When to move draft → autopilot — by field, vertical, and accuracy threshold — unsolved.

Back to work