# Build a Greeting-to-Handoff Chat Flow | onmsg

> Walk through assembling a real onmsg flow: start with a greeting, branch by enquiry type, collect details with a form, add an AI Agent step, and route to a person.

URL: https://onmsg.app/guide/how-to-build-a-greeting-to-handoff-flow/
Last-Modified: 2026-09-08

Guide

# Build a Greeting-to-Handoff Flow, Step by Step

Walk through assembling a real onmsg flow: start with a greeting, branch by enquiry type, collect details with a form, add an AI Agent step, and route to a person.

Published September 8, 2026 · 6 min read

![A chat flow being assembled step by step on a canvas](/images/featured/modern-3d-illustration-of-a-chat-flow-being-assemb.webp)

## What we are building

One flow, five blocks, and a real outcome: a visitor arrives, gets greeted, says what they want, hands over the details your team needs, gets an answer if their question has one, and reaches a person if it does not. This is the flow most businesses should build first, and for a lot of them it is the only one they ever need.

We will use the 

Visual Bot Flow Builder

[/features/visual-bot-flow-builder/ →](/features/visual-bot-flow-builder/)

 canvas. Nothing here involves code.

![A finished greeting-to-handoff flow diagram with greeting, choices, form, AI agent and escalation](/images/content/finished-greeting-to-handoff-flow-diagram-with-gre.webp)

## Step 1: The greeting

Drop a **Message** step at the start. Write two short sentences, not one long one: what you do, and an invitation to say what they need. “Hi. We install and service commercial ovens across the region. What can we help you with?” beats “Welcome to our website, how may we assist you today?” because it tells them whether they are in the right place.

Resist the urge to explain your whole business here. The greeting exists to get to the next step.

## Step 2: Branch by enquiry type

Add a **Choices** step immediately after. List the two to four things people actually come to you for, phrased the way customers phrase them, not the way your internal team categorises them. Something like: “Get a quote”, “Existing job or repair”, “Parts and pricing”, “Something else”.

Four is the ceiling. A longer list is a menu, and menus get scrolled past. If you genuinely have more categories, branch twice rather than listing eight buttons.

Each choice becomes a separate path on the canvas. This is where the conversation stops being one-size-fits-all.

## Step 3: Collect details on the branch that matters

On the branch that usually turns into work (for most businesses, “Get a quote”) add a **Form** step. Ask for what your team otherwise chases: name, contact method, location, a short description, and whatever detail is specific to your trade.

Use required fields for the ones a follow-up cannot happen without, and set input types so an email field validates as an email. Configurable validation is what stops a phone number arriving as “ring me anytime”.

Keep it to four or five fields. Every extra field is a chance to abandon, and you can always ask the rest in person once the conversation is live.

For the lighter branches, a **One field** step is often enough. Someone asking about parts pricing may only need to leave an email address.

## Step 4: Add an AI Agent step for the open questions

On the “Something else” branch, and anywhere a visitor might type a real question, add an **AI Agent** step. Configure its instructions, greeting, escalation message, maximum turns, and which knowledge base it draws from.

Set the grounding mode deliberately. Strict checks for relevant knowledge and can return your configured refusal without calling the answer model when it finds nothing suitable, which is what you want anywhere prices or promises are involved. Set the number of refusals that should trigger a handoff, two is a reasonable default. Beyond that, the visitor is being told “I don’t know” repeatedly, and a person should take over.

## Step 5: Route to a person

![An escalation moving a conversation into a shared team inbox with captured details attached](/images/content/modern-3d-illustration-of-an-escalation-moving-a-c.webp)

Every branch needs an ending, and the ending is a person. An escalation moves the conversation into the 

Shared Team Inbox

[/features/shared-team-inbox/ →](/features/shared-team-inbox/)

 and stops bot ownership. Everything collected on the way, the choice they made, the form fields, the AI exchange, travels with it, so the teammate who picks it up reads rather than re-asks.

Write the escalation message honestly. If your team replies within a few hours, say a few hours. A promise of “right away” that you break at 6pm costs more than it earns.

## Step 6: Handle the evenings

Before you publish, add a **By availability** step near the top of the flow. The online path runs everything above. The offline path says so plainly, then runs the same Form step so the enquiry is still captured properly. Pair it with business hours and after-hours behaviour on the widget so the two agree with each other.

## Publish, then watch

Publish the flow and leave it a week. Then read the transcripts, which is the only reliable way to find the problems. The usual ones: a Choices label nobody clicks, a form field everyone abandons on, a question the AI keeps refusing because the knowledge for it was never added.

Each fix is a block on the canvas and a republish. That is the whole point of building it visually.

## Writing the copy inside the steps

The structure takes twenty minutes. The wording is what decides whether the flow works, and it is where most of the value sits.

**Greeting.** Two short sentences. What you do, then an invitation. Avoid “How may I assist you today?”. It is the phrasing of a system, not a business.

**Choices labels.** Use the customer’s words, not your internal categories. “Get a quote” beats “New business enquiry”. Keep each label under five words so it reads at a glance on a phone.

**Form field labels.** Say what you want and why if it is not obvious. “Address (so we can check we cover you)” gets completed more often than “Address”.

**Escalation message.** Set a real expectation. “Someone will pick this up within a couple of hours during the day” is better than “We’ll be right with you”, because you can keep it.

Read the whole flow aloud before publishing. Anything that sounds like a form when spoken should be rewritten.

## What to change after the first fortnight

Two weeks of real conversations will show you three things reliably.

**Which Choices option nobody picks.** Either the label is wrong or the option does not match a real intent. Rewrite it or remove it.

**Where the form loses people.** If abandonment clusters on one field, that field is either unclear or asking too much too early.

**Which questions the AI keeps refusing.** Each one is a knowledge source you have not added yet.

Fix those three and the flow will be materially better than the version you launched, without a redesign.

Read next: 

branching by page, availability and saved answers

[/guide/branching-by-page-availability-and-saved-answers/ →](/guide/branching-by-page-availability-and-saved-answers/)

 for smarter routing, or 

capture and qualify leads with conversation forms

[/guide/capture-and-qualify-leads-with-conversation-forms/ →](/guide/capture-and-qualify-leads-with-conversation-forms/)

 for better forms.

## Learn more about Visual Bot Flow Builder

A drag-and-drop builder for website conversations, with 11 step types for greeting, capturing enquiries, branching, and handing off.

Read the feature page

[/features/visual-bot-flow-builder/ →](/features/visual-bot-flow-builder/)

FAQ

## Questions people ask about this

### How long does building a first flow take?

A simple greeting-to-handoff flow is a few minutes of work: a Message greeting, a Choices step, a Form step and an escalation. Refining it based on what visitors actually ask takes longer, and that is the part worth spending time on.

### How does the handoff work?

An escalation routes the conversation into the shared inbox and stops bot ownership, so a person owns the reply from that point. Everything the flow collected travels with it, along with the full conversation history.

### Can I test the flow before publishing it?

Build it, walk through it yourself, then publish when it reads the way you want. Because editing and republishing is quick, most people ship a simple version early and improve it once real conversations show where it stalls.

## Related guides

### Branching by Page, Availability and Saved Answers

Serve different flows by page (pricing vs homepage), route by availability (online vs offline), and branch by saved answer, practical examples of each.

Read guide

[Branching by Page, Availability and Saved Answers →](/guide/branching-by-page-availability-and-saved-answers/)

### How to Capture and Qualify Leads with Conversation Forms

Use Form and One-field steps with required fields and validation to gather requirements before handoff, capture after-hours enquiries, and keep context for the team.

Read guide

[How to Capture and Qualify Leads with Conversation Forms →](/guide/capture-and-qualify-leads-with-conversation-forms/)

### The 11 Flow Step Types in onmsg, Explained

Every onmsg flow step type explained: AI Agent, Question, Choices, One field, Form, Message, Image or video, Pause, By answer, By availability and By page.

Read guide

[The 11 Flow Step Types in onmsg, Explained →](/guide/the-11-flow-step-types-in-onmsg/)

### Visual Flow Builder vs Scripted Chatbot: What's the Difference?

Compare a visual, no-code flow builder with hand-coded and scripted bots, maintenance, speed, and who each suits, and see why non-technical teams prefer a canvas.

Read guide

[Visual Flow Builder vs Scripted Chatbot: What's the Difference? →](/guide/visual-flow-builder-vs-scripted-chatbot/)

## Want to try this on your own site?

No credit card required.

Start free

[https://chat.onmsg.app →](https://chat.onmsg.app)
