Workflow design

How to design a voice workflow around your business

A good flow is more than a list of questions. It defines the outcome, required data, possible paths, and what happens when a caller changes their mind or a system cannot respond.

Share your workflow requirements
Two people discussing a paper sketch of a conversation workflow.
AI-generated illustrative scene. Fictional people, not OMO staff or customers.

Start with an outcome, not a list of questions

A workflow defines what should be completed during a call and what proves completion. “We spoke to the customer” and “the authorized system accepted the request” are different outcomes. Choose a concrete final state first.

Then separate required from optional data. Information supplied early should be retained instead of prompting the caller to repeat it. But an assumption must not become a confirmed field when a mistake would cause a consequential action.

Design the normal path and exceptions together

Every step needs an entry condition, required data and an outcome. Branches define what happens after a short answer, correction, refusal or another question. Conversation order may be flexible; safety conditions for an action remain mandatory.

For each action, identify the trusted source, approval rule and recovery path. If a system is unavailable, the caller should understand whether the request is pending, failed or awaiting a person.

  • Use information already provided, but do not let stale answers overwrite newer values.
  • Recheck dependent fields when a decision changes.
  • Before a consequential write, summarize exactly what the caller is confirming.
Conversation path and recovery points
  1. Understand the goal
  2. Validate the data
  3. Obtain approval
  4. Execute a permitted action
  5. Verify the result

Correction → update and revalidate the relevant field. Refusal → do not act. Failure → reconcile the status or involve a person.

Worked dialogue: “სამზე” → “არა, ოთხზე”

In this illustrative conversation the service and date are already known. The caller says “სამზე” (“at three”). Do not ask for the date again. Clarify 15:00 versus 03:00 only when the context, business hours and earlier dialogue genuinely leave that ambiguity unresolved.

“არა, ოთხზე” (“No, at four”) changes only the time. Retain the name, service and location, then check availability for the new time. This Tbilisi-business example uses Asia/Tbilisi; another business may use a different agreed time zone.

An explicit example value is “18 September 2026, 16:00, Tbilisi time.” It is a teaching example, not an available slot being offered. Before persistence, restate the service, location, date and time, obtain confirmation and then request the authorized write.

Utterance and state transition
Verbatim utteranceInterpretationNext step
“სამზე” — at threeCandidate time on the known dateClarify the period only if still ambiguous
“არა, ოთხზე” — no, at fourCorrect the time, not the other fieldsRecheck dependent availability
“კი, სწორია” — yes, correctConfirm the current summaryAuthorize the write and verify the backend result

Complete the requirements worksheet

Use non-sensitive example requirements below. Entries remain on this page: they are not submitted or saved to a server. Print through your browser and retain your notes before closing the page.

A goal, branch and acceptance test should be understandable together. If the requirement says “a retry must not create a duplicate,” the test needs to inspect the resulting records, not merely the spoken response.

This worksheet stays on this page: nothing is sent or saved. Reloading clears it. Use general examples without personal data or secrets; print or save a PDF through your browser if useful.

From design to repeatable tests

Write dialogue after defining data and action rules. The prompt then explains an agreed process instead of inventing missing business policy.

  1. Outcome and paths

    Define the goal, normal sequence and each failure exit.

  2. Data and permissions

    Identify the trusted source, allowed tool, identity checks and approval requirements.

  3. Dialogue and Georgian variations

    Write concise questions, early answers, varied time expressions and corrections.

  4. Test and pilot

    Compare the dialogue with actual outcomes, run a bounded pilot and assess failures.

  5. Iterate

    Add a test for every changed rule and rerun earlier scenarios.

Define acceptance before launch

Success is the agreed outcome and a truthful answer, not simply grammatical conversation. Each test needs starting data, caller utterances and an expected record state or reason for refusal.

  • Several fields in one sentence: ask only for missing information.
  • A last-minute correction: use the new value and renew confirmation when needed.
  • A backend timeout: recover status without a duplicate.
  • Access denied: respond safely without exposing information.
  • Nobody answers the transfer: offer only the agreed, truthful next step.

Common questions

How is flexible dialogue different from a fixed script?

A fixed script often follows a question order. Flexible dialogue uses information already known and handles corrections, while mandatory validation and confirmation remain required.

Can the workflow change after launch?

Changes can be scoped and planned. Record a version, review dependent rules and run regression tests before rollout.

Why spend time on failure branches?

Real callers change their minds and systems sometimes fail to respond. A designed exception path protects data and callers from unconfirmed actions.

What does each team provide?

The business owns the goal, policy, trusted data and receiving team. The implementation team assesses connections, builds dialogue and controls, and verifies outcomes against agreed tests.

Primary sources and scope

Checked on September 17, 2026. These sources explain technical mechanisms, not the availability of every capability in an OMO implementation. Proposed connections and examples require a separate assessment.

  1. Google AI — function calling

    Model-proposed tool calls and application-side execution.

  2. LiveKit — turn detection and interruptions

    Distinct controls for turn-taking, speech activity and interruptions.

  3. OWASP — prompt injection

    Untrusted input, least privilege and controls for high-risk actions.

Share your workflow requirements

Describe the outcome and systems you use. Start with an assessment, not credentials or customer records.