Use case

Call outcomes that write themselves into your CRM

The fields extracted from a finished call become the update. Lead status, disposition, callback date and next step land on the record automatically — no rep retyping, no end-of-day backlog.

CRM hygiene is a data-entry problem wearing a process costume

Every team has the same rule — log the call, update the stage, set the next step — and every team has the same gap between the rule and what is in the system on Friday afternoon. Not because reps are careless, but because the task sits at the end of the call, competing with the next one.

The usual responses are a manager chasing compliance, a mandatory-fields rule that produces garbage instead of blanks, or an integration that logs that a call happened without logging what happened. None of them produce a record you can forecast from.

The fix is to stop asking a person to transcribe a conversation they just had. Extraction reads the transcript, produces the fields, and a workflow writes them to the record.

What actually gets written

The useful update is not a call log. It is the small set of values that change what happens next:

  • Lead or deal stage, derived from an enum you defined rather than a free-text guess
  • Disposition — connected, wrong number, not interested, callback requested
  • Next action date, resolved from what the customer said in their own timezone
  • Named contact, where the person on the phone turned out not to be the record owner
  • Objection or reason, captured as an enum so a quarter of losses is analysable
  • Call summary, so the next person to open the record has context in two sentences

The extraction step decides these values; the CRM step writes them. Because they are separate, the same extracted record can also go to a spreadsheet, a webhook and a follow-up message without being computed three times.

From hang-up to updated record

No human step anywhere in the chain

1

Call ends

The conversation is transcribed and post-call processing begins.

2

Fields extracted

Your schema is applied and the typed values are stored on the conversation.

3

Workflow triggered

A workflow listening for extracted data starts, with every field available as a variable.

4

Record updated

The CRM step maps your fields onto the object and writes them. Branching can route different outcomes to different updates.

Conditional updates, not blanket ones

A single mapping applied to every call is how CRMs fill up with noise. Real routing depends on the outcome: a disqualified lead should close, a callback should set a date and stay open, an escalation should change owner. Because the extracted fields are workflow variables, the branch is a condition on the value — if disposition is not_interested, close with the extracted reason; if callback_requested is true, set the date and re-queue.

Updates that depend on time work the same way. A promise-to-pay that has not landed by its date can trigger a follow-up sequence without anyone running a report to notice.

Testing before you touch production data

Writing to a live CRM on a guess is how you end up with two thousand records in the wrong stage. Workflows can be run in a dry-run mode that executes the branching logic for real — so you can confirm which path a given call would take and which values would be written — while every outbound side effect, including the CRM write, is simulated rather than performed.

That means you can validate a mapping against real extracted data from real calls before a single record changes.

When the CRM is down

A step that fails does not lose the call. Retries are scheduled durably rather than held in memory, so a CRM outage or a rate limit is survived across restarts and deploys, and the update lands when the system comes back.

CRM updates — common questions

Which CRMs are supported?

HubSpot and Salesforce are the common targets, and any CRM with an HTTP API can be driven by the webhook step with your own payload. The extracted fields are ordinary variables, so mapping them onto a different system is a configuration change rather than new development.

Does this replace our existing CRM integration?

It complements it. Most CRM-telephony integrations log call metadata — who called, how long, a recording link. This adds the content of the call as structured fields on the record, which is the part that normally requires a human.

What if the extracted value does not match our CRM's picklist?

Define the extraction field as an enum whose values are your picklist values. The model is then constrained to the set your CRM accepts, which removes the mapping layer and the class of sync failures that comes with it.

Can we update different objects for different outcomes?

Yes. Conditions branch on the extracted values, so a qualified call can update a deal while a wrong-number call updates the contact and exits the sequence.

How do we check a mapping before it runs on real data?

Run the workflow in dry-run mode. Conditions and variable assignment execute for real so you can see exactly which branch a call takes and what would be written, while the CRM write itself is simulated.

What happens if the write fails?

It is retried on a durable schedule rather than dropped, so an outage delays the update instead of losing it. Failures surface on the execution record with the error returned by the CRM.

Related

Let the calls update the CRM

Define the fields, map them once, and dry-run it against real conversations before anything is written.