# Support chatbot decision tree, from first message to handoff

> A chatbot decision tree for an online store: orders, returns, sign-in, unknown charges and policy questions, routed on what the visitor typed, with a handoff.

Source: https://flowchart.chat/g/support-chatbot-decision-tree (version 1, published 24 October 2026)

## Open the conversation

1. **A visitor opens the support chat** (Bot)
   - For whoever writes a support chatbot's script. Each step is what the bot says or does, and each question is where it routes the visitor on their answer. The example is an online store, so swap in your own order, account and policy branches.
   - Keep each bot message to one question. A visitor who gets three questions at once answers one of them.
2. **Greet the visitor and ask what they need help with** (Bot)
   - "Hi, I'm the Acme assistant. What can I help you with?" Let the visitor type in their own words, then route on what they meant.
3. **Is the visitor asking about an order they already placed?** (Bot)
   - Yes: go to step 4, Ask for the order number or the email address on the order.
   - No: go to step 17, Is the visitor asking about their account or a payment?.
4. **Ask for the order number or the email address on the order** (Bot)
5. **Does the order come up?** (Bot)
   - No: go to step 6, Ask once more for the order number, then offer a person.
   - Yes: go to step 7, What does the visitor want to know about the order?.
6. **Ask once more for the order number, then offer a person** (Bot)
   - Then go to step 33, Hand the conversation to a person with the transcript.
7. **What does the visitor want to know about the order?** (Bot)
   - Where it is: go to step 8, Show the tracking status and the expected delivery date.
   - To return or exchange it: go to step 11, Is the order inside the return window?.
   - To change or cancel it: go to step 14, Has the order shipped?.
8. **Show the tracking status and the expected delivery date** (Bot)
9. **Has the expected delivery date passed?** (Bot)
   - Yes: go to step 10, Open a lost-parcel case and tell the visitor what happens next and when.
   - No: go to step 30, Did that answer the question?.
10. **Open a lost-parcel case and tell the visitor what happens next and when** (Bot)
11. **Is the order inside the return window?** (Bot)
   - Yes: go to step 12, Send the return label and the steps to pack it.
   - No: go to step 13, Explain the return window and offer a person for exceptions.
12. **Send the return label and the steps to pack it** (Bot)
13. **Explain the return window and offer a person for exceptions** (Bot)
   - Then go to step 33, Hand the conversation to a person with the transcript.
14. **Has the order shipped?** (Bot)
   - Yes: go to step 15, Explain that it can't be changed in transit and offer a return once it arrives.
   - No: go to step 16, Cancel or change the order and confirm the change by email.
15. **Explain that it can't be changed in transit and offer a return once it arrives** (Bot)
16. **Cancel or change the order and confirm the change by email** (Bot)
17. **Is the visitor asking about their account or a payment?** (Bot)
   - Yes: go to step 18, Ask what happened, in one sentence.
   - No: go to step 26, Is it a question about a product or a policy?.
18. **Ask what happened, in one sentence** (Bot)
19. **Is it a sign-in problem?** (Bot)
   - Yes: go to step 20, Send the password reset link and wait for the visitor to try it.
   - No: go to step 22, Is it a charge the visitor doesn't recognise?.
20. **Send the password reset link and wait for the visitor to try it** (Bot)
21. **Did the reset let them sign in?** (Bot)
   - Yes: go to step 30, Did that answer the question?.
   - No: go to step 33, Hand the conversation to a person with the transcript.
22. **Is it a charge the visitor doesn't recognise?** (Bot)
   - Yes: go to step 23, Ask for the amount and the date, then look up the charge.
   - No: go to step 33, Hand the conversation to a person with the transcript.
23. **Ask for the amount and the date, then look up the charge** (Bot)
24. **Does the charge match an order on the account?** (Bot)
   - Yes: go to step 25, Show the order and ask whether that explains the charge.
   - No: go to step 33, Hand the conversation to a person with the transcript.
25. **Show the order and ask whether that explains the charge** (Bot)
   - Then go to step 30, Did that answer the question?.
26. **Is it a question about a product or a policy?** (Bot)
   - Yes: go to step 27, Search the help centre for the visitor's own words.
   - No: go to step 33, Hand the conversation to a person with the transcript.
27. **Search the help centre for the visitor's own words** (Bot)
28. **Did an article match the question?** (Bot)
   - Yes: go to step 29, Show the article's answer in the chat with a link to the article.
   - No: go to step 33, Hand the conversation to a person with the transcript.
29. **Show the article's answer in the chat with a link to the article** (Bot)

## Close or hand off

30. **Did that answer the question?** (Bot)
   - Ask it plainly. "Did that sort it out?" A yes closes the chat, and a no is the bot's last chance before a person takes over.
   - Yes: go to step 31, Thank the visitor and close the chat.
   - No: go to step 32, Ask what's still missing, once.
31. **Thank the visitor and close the chat** (Bot)
32. **Ask what's still missing, once** (Bot)
   - One more free-text answer. If the visitor's reply fits a branch above, the bot can take it. If not, stop guessing.
33. **Hand the conversation to a person with the transcript** (Bot)
   - Pass the order number, the branch the bot took and the visitor's own words to the person, so the visitor never repeats themselves.
34. **Is a person available right now?** (Bot)
   - Yes: go to step 35, A person continues the chat from where the script left off.
   - No: go to step 36, Take the visitor's email address and promise a reply time you can keep.
35. **A person continues the chat from where the script left off** (Bot)
36. **Take the visitor's email address and promise a reply time you can keep** (Bot)

## Outcomes

### Open a lost-parcel case and tell the visitor what happens next and when

You get here from step 9, Has the expected delivery date passed? (Yes).

### Send the return label and the steps to pack it

You get here from step 11, Is the order inside the return window? (Yes).

### Explain that it can't be changed in transit and offer a return once it arrives

You get here from step 14, Has the order shipped? (Yes).

### Cancel or change the order and confirm the change by email

You get here from step 14, Has the order shipped? (No).

### Thank the visitor and close the chat

You get here from step 30, Did that answer the question? (Yes).

### A person continues the chat from where the script left off

You get here from step 34, Is a person available right now? (Yes).

### Take the visitor's email address and promise a reply time you can keep

You get here from step 34, Is a person available right now? (No).
