Use cases · CRMs & sales platforms

The call button that writes its own notes

CRMs win on what happens after the call, and nobody types notes. Handset gives your product a click-to-call button that dials the rep, bridges the customer, and streams a live transcript into the deal timeline. Every call from the business's own number, every word searchable.

click-to-call.ts
// The "Call" button in your CRM
await createCall({
  body: {
    from: deal.tenant.numberId,
    to: contact.phone,
    connect_to: rep.phone,
    transcribe: true,
  },
});

Anatomy of a logged call

One POST. Five webhooks. Zero typing.

A single POST /v1/calls with from, to, and connect_to handles all three legs: rep, bridge, customer. Add transcribe: true and the deal timeline fills itself in, in order, as the call happens.

How voice and transcription work

Deal · Acme Co: renewalwebhooks, live

call.initiated

the rep's phone rings first

call.answered

customer bridged, they see the business number

call.transcriptagent

“Happy to get you scheduled for Thursday…”

streamed live, per utterance

call.transcriptcustomer

“Thursday works, can you do the afternoon?”

speaker-labeled

call.completed

duration, recording URL, and the full transcript as structured segments

After the call

What your CRM knows now

The call log writes itself

Every utterance lands on your webhook as it's spoken, speaker by speaker. The notes field your reps never filled is now a transcript they never typed.

“What did we promise them?” has an answer

Transcripts are structured segments, queryable mid-call and after. Search across calls, pull quotes into the deal, settle the he-said-she-said.

The follow-up text is the same thread

The confirmation text goes from the number the customer just talked to. One conversation object carries both channels.

Reps stop calling from personal cells

Click-to-call dials the rep, then bridges the customer. The business's number is the caller ID; the CRM sees everything; the rep's cell stays private.

The roadmap you already have

Transcripts are the substrate for your AI features

Call summaries, coaching scores, deal-risk flags, “draft the follow-up email”, every AI feature on your roadmap starts from the same input: structured, speaker-labeled transcript segments. Handset delivers exactly that, per call, as data.

Ship the call button first. The intelligence layer is a webhook away, and it's yours: we hand you the words, you build the moat.

your-ai-layer.ts
// call.completed → your summarizer
const { segments } = event.transcript;
const summary = await summarize(segments);
await deal.timeline.add({
  kind: "call_summary",
  body: summary,
  next_steps: summary.actions,
});

// the rep never opened a notes field

Ship the call button this quarter.

Design partners get free early access and a founder on the integration call: bring your deal timeline, leave with calls in it.