Semarize
RevOps

Committed Next Steps or It Didn't Happen: Deterministic Extraction for RevOps

·6 min read·Alex Handsaker

Most teams don’t have a next-steps capture problem. They have a summarisation problem. The summary of the call says something like "buyer agreed to loop in procurement and follow up next week," and the rep creates a task from memory that says "follow up with Sarah." By the time the deal stalls three weeks later, nobody remembers whether the procurement conversation was supposed to happen before or after the follow-up, and the CRM has no evidence either way.

The fix is not a better summary. It is deterministic extraction of committed next steps: the specific action, the owner, and the timing, extracted as typed fields from the transcript and pushed into CRM tasks or Slack alerts automatically. A commitment that does not make it out of the transcript and into an operational system did not happen as far as the pipeline is concerned.

What "committed next step" means

A committed next step is a specific agreement on an action, an owner, and a timing. It is not a topic that was discussed, a plan that was floated, or an intention that was expressed. A buyer who says "I’ll have my team review the security questionnaire by Friday" has committed to a next step. A buyer who says "we should probably get legal involved at some point" has not. The distinction matters because only the first statement has a clear action, a clear owner, and a deadline that can be tracked.

Summaries conflate these two categories. A summary that reads "discussed security review and next steps with legal" could reflect either statement, and there is no way to know from the summary alone whether there is a commitment or just a topic. Deterministic extraction evaluates the transcript against a specific criterion and returns a typed value when the evidence meets that criterion, or null when it does not.

The Next-Steps Brick: schema for commitments

A next-steps Brick defines the evidence standard for a commitment. The criterion specifies what a buyer or rep would explicitly say in the transcript to confirm that a specific action is committed, what the output type is for each component of the commitment, and what a reliable null looks like when no commitment was made.

For a buyer-side next step, the Brick might look like this: the buyer names a specific action they will take, with an owner and a timeframe expressed in their own words. The Brick returns three fields: the action as an extracted string, the owner as an extracted string, and the timing as an extracted string or a parsed date. If any of the three components is absent from the transcript, the Brick returns null for that component rather than inferring. A partial commitment, where the action is clear but no timing was stated, is returned as a partial extraction rather than treated as a full commitment.

For rep-side commitments, the same structure applies: the action the rep explicitly committed to, the timing they named, and the channel they described. These map to rep-owned CRM tasks rather than buyer-side follow-up records.

The Bricks are grouped into a Kit alongside the other extraction criteria for the call and evaluated against the transcript in a single API call via Semarize. The JSON output includes the commitment fields alongside the deal qualification fields, so the same call processing run populates both the qualification signals and the operational follow-up tasks.

Deterministic extraction: scoring before creating

Not every extracted commitment should automatically become a CRM task. The automation should apply a scoring check before task creation: the extracted fields must meet the evidence standard defined in the Brick criteria, all required components must be non-null, and the commitment must be unambiguous enough that a task created from it would be actionable by someone who was not on the call. When the check passes, the task is created. When it does not, the extraction is flagged for human review rather than resulting in a low-quality task.

The score that matters here is not a quality score on a scale of one to five. It is a binary: does the extracted commitment meet the evidence standard, or does it not? A Brick criterion that is specific enough to produce consistent yes/no answers is the prerequisite for reliable automation. A Brick criterion that requires the model to interpret whether something "counts" as a commitment produces inconsistent task creation and trains teams to distrust the automation.

Routing commitments into CRM tasks and Slack alerts

Once an extracted commitment passes the scoring check, the automation routes it to the appropriate destination. Buyer-side commitments become CRM tasks on the associated opportunity or deal: the task title is the extracted action, the due date is derived from the extracted timing, and the task is assigned to the deal owner or the relevant team member. Rep-side commitments follow the same pattern, assigned to the rep whose turn in the transcript contained the commitment.

Slack alerts are useful for high-priority commitments that require immediate awareness without waiting for a task review. A deal where the buyer committed to looping in a C-suite stakeholder before the week ends warrants an alert to the deal owner, not just a CRM task that might not be reviewed until the next pipeline meeting. The alert includes the extracted action, owner, and timing, with a link to the call recording so the context is retrievable.

In Make or n8n, the routing logic is a conditional: if the commitment scoring check passes, create the CRM task and optionally send the Slack alert; if it does not, create a review record for the RevOps team. Error handling and retry logic should be configured so webhook delivery failures do not silently drop commitments that need to be tracked.

Common questions

How do you decide what counts as a commitment versus a discussion?

The distinction is whether the statement includes a specific action, a specific owner, and a specific timeframe. A discussion produces topics and intentions. A commitment produces an agreed action with an owner and a deadline. The Brick criterion should specify all three components as required for a commitment to be extracted, so that a statement which names an action but not a timeframe is returned as a partial extraction rather than a full commitment. The threshold can be adjusted after seeing the extraction results on real call samples: if too many partial commitments are being flagged as full ones, the criterion needs tightening.

What happens when the transcript is ambiguous or the owner is unclear?

When any required component of a commitment is absent or ambiguous, the Brick returns null or a partial extraction rather than guessing. Ambiguous ownership, where it is not clear whether the buyer or the rep is responsible for the next action, should result in the extraction being flagged for human review rather than automatically assigned. The flagged record includes the transcript passage so the reviewer has the context needed to assign it correctly. Over time, reviewing flagged records surfaces patterns in how reps and buyers discuss commitments, which can inform how the Brick criterion is refined.

How should RevOps measure success after implementing deterministic extraction?

The primary measure is task completion rate on extracted commitments: are buyer-side commitments being fulfilled by the deadline, and are rep-side commitments being completed before the next call? Secondary measures include the percentage of calls that produce at least one extracted commitment, which reflects whether the extraction criteria are calibrated to the typical call content, and the false positive rate on tasks created from extraction, which reflects whether the commitment standard is tight enough to produce actionable tasks. Coaching outcomes and deal progression rates in deals with high commitment extraction rates versus low ones provide the downstream validation that the system is improving what it was designed to improve.

Continue reading

Read more from Semarize