๐Ÿฅš
์‚ถ์€AIAI ์‹ค์ „ ๊ฐ€์ด๋“œ 120ํŽธ
๋ชฉ๋ก์œผ๋กœ
๐Ÿค– Creativity & Hobbies - Chatbot

Designing AI Chatbot Conversation Flows - GPT Scenario Writing Methods

The secret to natural conversations! Learn how to design chatbot scenarios that understand user intent and respond appropriately.

Conversation is Flow

"I'd like to order a pizza." "What kind of pizza?" "Pepperoni." "What size?" "Large." "Any drinks?" "Coke please."

This is natural conversation. But for a chatbot to do this?

"To order pizza, please provide your name, address, phone number, pizza type, size, toppings, drinks, and payment method all at once."

This isn't right, is it?

Today, I'll show you how to design flows for naturally conversing chatbots like humans.

What is Conversation Flow?

Conversation flow is the path of exchanges between chatbot and user.

Bad Conversation Flow

User: Recommend a trip
Chatbot: I'll recommend travel destinations.
    Paris, Tokyo, New York, London, Rome...
    (lists 50 cities)

Good Conversation Flow

User: Recommend a trip
Chatbot: Great! Let me ask a few things.
    When are you planning to go?

User: Next month
Chatbot: Next month it is!
    Domestic or international travel?

User: International
Chatbot: International trip! How exciting ๐Ÿ˜Š
    What style of travel do you prefer?
    1. Resort/relaxation
    2. City sightseeing
    3. Activities/adventure

User: Resort
Chatbot: Perfect! For next month at a resort,
    I recommend Phuket, Thailand or Bali.
    Good weather and reasonable prices.

    Need more detailed information?

See the difference?

3 Steps of Conversation Flow Design

Step 1: Define Goals

What should the chatbot achieve?

Examples:

  • Take pizza order
  • Recommend trip
  • Book consultation
  • Solve problems

Step 2: Organize Needed Information

What information is essential for the goal?

Pizza Order Example:

Essential Info:
- Pizza type
- Size
- Address
- Phone number

Optional Info:
- Extra toppings
- Drinks/sides
- Special requests

Step 3: Determine Question Order

In what order to ask?

Considerations:

  1. Easy questions first
  2. Narrow down choices
  3. Naturally contextual

Pizza Order Flow:

1. Delivery/pickup choice (big category)
2. Pizza type (core)
3. Size (details)
4. Additional options (choice)
5. Delivery info (essential)
6. Confirm and payment

Drawing Flowcharts

Words alone get confusing. Draw it out.

Simple Example: Cafe Order

[Start]
  โ†“
"What drink would you like?"
  โ†“
Coffee โ†โ†’ Non-coffee
  โ†“         โ†“
"Which coffee?"  "Which drink?"
- Americano  - Juice
- Latte      - Ade
- Cappuccino   - Smoothie
  โ†“         โ†“
"What size?"
- Tall
- Grande
- Venti
  โ†“
"Hot/Iced?"
  โ†“
"Here/To-go?"
  โ†“
"Total 5,500 won"
  โ†“
[Complete]

Complex Example: Consultation Booking

[Start]
  โ†“
"How can I help you?"
  โ†“
โ”Œโ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”
Info  Consult  Other
โ†“    โ†“    โ†“
FAQ  "What type?" Staff
    โ†“
  โ”Œโ”€โ”€โ”ผโ”€โ”€โ”
  Career Psych Other
  โ†“   โ†“   โ†“
"Preferred date?"
  โ†“
"Morning/Afternoon?"
  โ†“
"Choose from 3 available times"
  โ†“
"Enter contact info"
  โ†“
"Confirmation text sent"
  โ†“
[Complete]

Real Practice: Creating Flow with ChatGPT

Specify the flow in Custom GPT Instructions.

Pizza Order Bot Example:

You are a chatbot that takes pizza orders.

Conversation Flow:
Step 1: Greeting and delivery/pickup choice
Step 2: Menu selection
Step 3: Size selection
Step 4: Additional options
Step 5: Address/contact
Step 6: Order confirmation

Rules for Each Step:

[Step 1] Start
- Friendly greeting
- Ask "Delivery" or "Pickup"
- Re-ask if no user response

[Step 2] Menu
- Recommend top 3 (Pepperoni, Cheese, Combination)
- Provide "See other menu" option
- Move to Step 3 when user selects

[Step 3] Size
- Provide "M (2 people)", "L (3-4 people)" options
- Include prices
- Move to Step 4 when selected

[Step 4] Additional Options
- "Add drinks?" (optional)
- "Any special requests?" (optional)
- Move to Step 5 if "No" or skip

[Step 5] Info Collection
- If delivery: address, phone number
- If pickup: name, phone number, pickup time

[Step 6] Confirmation
- Show order summary organized
- Display total amount
- "Would you like to order?" confirm
- Yes โ†’ Order complete message
- No โ†’ Ask what to modify

Notes:
- Don't ask multiple questions at once
- Repeat same step if user doesn't respond
- Allow returning to previous step
- Allow cancellation anytime

Example:
Bot: Hello! I'll help you order pizza ๐Ÿ•
   Would you like delivery or pickup?

User: Delivery

Bot: Delivery order it is!
   Which pizza would you like?

   Popular menu:
   1. Pepperoni (from 13,000 won)
   2. Cheese (from 12,000 won)
   3. Combination (from 15,000 won)

   Say "menu" for other options!

User: Pepperoni

Bot: Pepperoni pizza, great choice!
   Which size?

   M (2 people) - 13,000 won
   L (3-4 people) - 18,000 won

(Conversation continues...)

Creating Step-by-Step Conversations with Claude Projects

Claude handles long Instructions well.

Travel Recommendation Bot Example:

[System Instructions]

You are a specialized travel recommendation chatbot.
Collect information through conversation and recommend customized destinations.

Conversation Flow Steps:

=== Step 1: Travel Timing ===
Goal: Identify when to travel
Question: "When are you planning to travel?"
Collect: Travel timing (month/season)
Next: Step 2

=== Step 2: Domestic/International ===
Goal: Determine travel range
Question: "Are you thinking domestic or international?"
Collect: destination_type (domestic/international)
Next: Step 3

=== Step 3: Travel Style ===
Goal: Understand preferred type
Question: "What style of travel do you prefer?"
Options:
- Resort/healing
- Sightseeing/culture
- Activities/adventure
- Food/culinary
Collect: travel_style
Next: Step 4

=== Step 4: Budget ===
Goal: Check budget range
Question: "What's your budget per person?"
Options:
- Under 500,000 won
- 500,000-1,000,000 won
- 1,000,000-2,000,000 won
- Over 2,000,000 won
Collect: budget
Next: Step 5

=== Step 5: Recommendation ===
Goal: Recommend destinations with collected info
Output Format:
"Your travel profile:
- Timing: [timing]
- Type: [domestic/international]
- Style: [style]
- Budget: [budget]

Top 3 Recommended Destinations:

1. [Destination]
   - Features: [description]
   - Expected Cost: [amount]
   - Why Recommended: [reason]

2. [Destination]
   ...

3. [Destination]
   ...

Need more details? Let me know!"

Next: Handle additional questions or end

=== Conversation Rules ===
- One question at a time
- Move to next step after user responds
- Re-ask if unclear response
- Reset to Step 1 if user inputs "start over"
- Friendly and empathetic tone

=== Exception Handling ===
- If unsure: "That's okay! I'll suggest some popular options"
- Too specific request: "That might be better discussed with a travel agency"
- No budget: "You haven't set a budget! I'll recommend various price ranges"

Handling Branches

Users say unexpected things. Be prepared.

Example: Cafe Order

Basic Flow:
Menu selection โ†’ Size โ†’ Options โ†’ Payment

Branch Situations:

1. "How much is it?"
โ†’ Show price list
โ†’ Return to current step

2. "Recommend something"
โ†’ Show top 3 popular items
โ†’ Move to next step when selected

3. "Cancel order"
โ†’ "Really cancel?" confirm
โ†’ Yes: Return to start
โ†’ No: Continue current step

4. "Start over"
โ†’ Reset all information
โ†’ Return to Step 1

5. "Go back"
โ†’ Return to previous step

6. Incomprehensible input
โ†’ "Sorry, I didn't quite understand"
โ†’ Re-present current question

Instructions Example:

Handle branch commands:

When "price" / "cost" / "how much" input:
โ†’ Display menu and prices
โ†’ "Please select a menu" (return to current step)

When "recommend" / "not sure" input:
โ†’ Display top 3
โ†’ "Please choose from these"

When "cancel" / "quit" input:
โ†’ "Would you like to cancel? (Yes/No)"
โ†’ Yes: "Please visit again!"
โ†’ No: Continue current step

When "start over" / "again" input:
โ†’ Reset all variables
โ†’ Return to greeting step

When "back" / "previous" input:
โ†’ Return to previous step (keep variables)

Other unknown input:
โ†’ "I didn't quite understand. Could you [current question] again?"

Managing Conversation State

Chatbot must remember progress.

State Tracking Example

Current State: step_2_menu_selection
Collected Info:
- delivery_type: "delivery"
- pizza_type: null (not selected yet)
- size: null
- extras: null
- address: null
- phone: null

Next Action: Ask pizza type

State Management in ChatGPT

[Add to Instructions]

Track conversation progress:
Internally record the following each response (not visible to user):

Progress: [Step 1/Step 2/Step 3...]
Completed: [โœ“ Delivery method, โœ— Menu, โœ— Size...]
Next Question: [Ask about size]

If user asks "What have I chosen so far?":
Show collected information summary

Example:
"Here's what you've selected so far:
โœ“ Delivery order
โœ“ Pepperoni pizza
โœ— Size (not selected yet)
โœ— Additional options (not selected yet)"

Tips for Natural Conversations

1. Confirmation and Empathy

Bad example:

Bot: Size?
User: Large
Bot: Options?

Good example:

Bot: What size would you like?
User: Large
Bot: Large size, great choice! Nice and filling ๐Ÿ˜Š
   Need any drinks or sides?

2. Maintain Context

Bad example:

User: I'll order pepperoni pizza
Bot: Yes. Which pizza would you like?

Good example:

User: I'll order pepperoni pizza
Bot: Pepperoni pizza it is!
   What size would you like?

3. Provide Choices

Bad example:

Bot: Please tell me the time.
User: Um... when would be good...

Good example:

Bot: What time works for you?
   Available times today:
   1. 2 PM
   2. 4 PM
   3. 6 PM

   Or tell me your preferred time!

4. Progress Updates

Bot: Great! Almost done ๐Ÿ˜Š
   Finally, just need your contact info
   and the order will be complete!

5. Error Prevention

Bot: Please enter your address.
   Example: 123 Teheran-ro, Gangnam-gu, Seoul

User: Gangnam

Bot: Oops, need a more detailed address!
   Please include "city/district/neighborhood/building."

   Example: 123-45 Yeoksam-dong, Gangnam-gu, Seoul

Real Project: Restaurant Reservation Bot

Let's design the complete flow.

=== Restaurant Reservation Chatbot Flow ===

[Step 1] Greeting and reservation intent
Bot: "Hello! I'll help you book at Restaurant 'Delicious'."
   "Would you like to make a reservation?"
Wait: User response

[Step 2] Date Selection
Bot: "When would you like to visit?"
   Options:
   - Today
   - Tomorrow
   - This weekend
   - Enter custom date
Collect: reservation_date

[Step 3] Time Selection
Bot: "You're visiting on [date]!"
   "What time would you like to come?"
   Options:
   - Lunch (11:30, 12:00, 12:30, 13:00)
   - Dinner (17:30, 18:00, 18:30, 19:00, 19:30)
Collect: reservation_time

[Step 4] Party Size
Bot: "How many people?"
   (Buttons 2-10 people, inquiry for more)
Collect: party_size
Condition: If 6+ people โ†’ "Would you like a private room?" additional question

[Step 5] Special Requests
Bot: "Any special requests?"
   Examples:
   - Window seat
   - Anniversary event
   - Food allergies
   - None
Collect: special_requests (optional)

[Step 6] Contact Info
Bot: "Please provide reservation name and contact number."
   Example: Hong Gildong, 010-1234-5678
Collect: name, phone

[Step 7] Confirmation
Bot: "Please confirm your reservation:

   ๐Ÿ“… Date: [date]
   ๐Ÿ• Time: [time]
   ๐Ÿ‘ฅ Party: [number] people
   ๐Ÿ“ Requests: [requests]
   ๐Ÿ‘ค Name: [name]
   ๐Ÿ“ž Contact: [phone]

   Confirm this reservation?"

Wait: Confirmation (Yes/No/Edit)

[Step 8] Complete
Bot: "Reservation complete! โœจ

   Reservation #: R20240515-001

   We'll send a confirmation text 30 minutes before.
   Changes or cancellations possible until 3 hours before visit.

   Enjoy your meal! ๐Ÿ˜Š"

[End]

Creating with Poe Bot:

You are a restaurant reservation chatbot.

Follow the above flow exactly.
- Don't skip steps
- Only confirm reservation after collecting all information
- Allow returning to previous steps if user wants
- Friendly and welcoming tone

Additional Commands:
- "cancel": Cancel reservation process
- "start over": Return to Step 1
- "check reservation": Show currently collected info

Creating Test Scenarios

Need scenarios to test your created bot.

Test Case Examples

Scenario 1: Normal Flow
User: I want to make a reservation
โ†’ Does bot ask for date?
User: Tomorrow
โ†’ Does bot ask for time?
User: 7 PM dinner
โ†’ Does it ask for party size?
...
โ†’ Does final reservation complete message appear?

Scenario 2: Mid-Change
User: I'll make a reservation
Bot: Date?
User: Saturday
Bot: Time?
User: Oh, change date to Friday
โ†’ Does bot modify the date?
โ†’ Does it ask for time again?

Scenario 3: Exception
User: Reservation
Bot: Date?
User: 100 people want to go
โ†’ Does bot handle appropriately?
โ†’ Does it guide to alternative contact?

Scenario 4: Cancellation
User: Reservation
Bot: Date?
User: I want to cancel
โ†’ Does it confirm cancellation?
โ†’ Does it end politely?

Common Mistakes and Solutions

Mistake 1: Asking Too Much at Once

Bad:
"Please tell me date, time, party size, and special requests all at once."

Good:
"Let's start with the date, shall we?"

Mistake 2: Ignoring User Response

User: Large pepperoni pizza please
Bad Bot: Which pizza would you like?

Good Bot: Pepperoni large size, correct?
       Need any additional options?

Mistake 3: Dead End

Bot: Would you like to make a reservation?
User: No
Bad Bot: (No response)

Good Bot: Understood!
       Are you wondering about the menu or hours?
       Or need other help?

Next Steps

In the next post, we'll dive deep into chatbot personality and speech style settings.

The same content can feel completely different depending on how you say it!

Wrapping Up

Good conversation flow makes users forget they're talking to a chatbot. Like talking to a friendly staff member.

Key points:

  1. One thing at a time
  2. Maintain context
  3. Provide choices
  4. Allow returning anytime

Start with a simple 3-step flow. You can add more as you use it.

Design your own conversation flow with what you learned today!


Related Posts:

  • [Previous] Creating Your Own FAQ Chatbot
  • [Next] Chatbot Personality & Speech Style Settings

Curious about what flows you designed. Share in the comments!


Next Article

๐Ÿ“Œ Creating FAQ Chatbots with ChatGPT - AI Auto Q&A System