UChat Official

Introduction

In this comprehensive guide, we explore how to efficiently manage coaching call bookings using a conversational AI chatbot.

The process involves capturing essential parameters—date, time, and reason—through a streamlined, dynamic interaction. This method minimizes complexity by utilizing only six key notes to handle all data collection and response generation, making it adaptable for various appointment types like discovery calls, taxi bookings, or other scheduling needs.

The core idea is to simulate a natural, engaging conversation with users, ensuring all necessary details are gathered seamlessly, then confirming the appointment with a clear, formatted summary.

This approach leverages GPT-4 Turbo for intelligent responses, dynamic data pulling from calendar slots, and conditional logic to handle incomplete or changing user inputs.

Concepts and Workflow

1. System Message & Goal Setting

The process begins with a system message that defines the chatbot's purpose:

  • Main goal: Capture parameters for scheduling a coaching call.

  • Response style: Ask each parameter separately, in first person, with fitting emojis, and a fun, conversational tone.

  • Parameters needed:

    Parameter

    Description

    Example

    Date

    When the user wants to schedule

    "Please tell me the date you'd like to book."

    Time

    Preferred time slot

    "What time works best for you?"

    Reason

    Purpose of the coaching call

    "Could you tell me the reason for this coaching session?"

The system message emphasizes dynamic data retrieval—specifically, pulling available dates and times from a calendar stored in a JSON payload within a custom field.

2. Handling Available Dates & Times

  • The chatbot accesses a predefined JSON payload containing available slots.

  • This data is formatted as a JSON object, e.g.:

{
  "available_slots": [
    {"date": "2024-05-01", "time": "10:00"},
    {"date": "2024-05-02", "time": "14:00"},
    {"date": "2024-05-03", "time": "16:00"}
  ]
}
  • The chatbot dynamically pulls this data to present options or validate user input.

3. Parameter Collection & Response Formatting

  • The chatbot asks questions separately for each parameter.

  • Once all parameters are captured, it outputs a structured JSON with keys:

Key

Description

Example Value

date

Selected date

"2024-05-01"

time

Selected time

"10:00"

reason

User's reason

"Career coaching"

status

Always set to "completed"

"completed"

  • The JSON is formatted with brackets to indicate insertions, e.g., {insert_date}, {insert_time}, {insert_reason}.

4. Conditional Logic & Validation

  • After capturing parameters, the system checks if status is "completed":

    • If yes, it proceeds to parse the JSON into a structured object.

    • If no, it prompts the user again, asking for missing details.

  • This is achieved via a condition block that inspects the response content for the word "completed".

5. Parsing & Saving Data

  • When all parameters are captured, a JavaScript snippet converts the JSON string into an object.

  • This object is then saved into a single custom field (e.g., coaching_call_details) for easy retrieval.

  • Alternatively, data can be stored in separate custom fields for each parameter, depending on preference.

6. Generating Confirmation & Final Response

  • A second chat completion uses the stored JSON data to craft a confirmation message.

  • The message includes all details formatted for clarity, e.g.:

"Your coaching call is scheduled for May 1, 2024 at 10:00 AM for Career coaching. Looking forward to speaking with you! 😊"

  • This message is saved in a response custom field and displayed to the user.

Step-by-Step Breakdown

Step 1: System Initialization

  • Set the system message with clear instructions.

  • Define parameters to capture and response style.

  • Load available date/time data from a JSON payload.

Step 2: User Interaction & Parameter Capture

  • Ask questions separately:

    • "What date would you like to schedule?"

    • "What time works best for you?"

    • "Please tell me the reason for this coaching call."

  • Use GPT-4 Turbo with:

    • Max tokens: 250

    • Temperature: 0.4 (for balanced responses)

    • History: Yes (to maintain context)

Step 3: Response Storage & Validation

  • Save each response in a custom field.

  • After each answer, check if all parameters are captured:

    • If not, continue asking.

    • If yes, proceed to format the data.

Step 4: Data Formatting & JSON Parsing

  • Format the captured data into a structured JSON string.

  • Use a JavaScript node to parse this string into a JSON object.

  • Save the parsed object into a single custom field for easy access.

Step 5: Confirmation Message Generation

  • Use another GPT-4 Turbo completion to generate a confirmation message.

  • Pull data from the JSON object.

  • Format the message with friendly language and emojis.

Step 6: Final Output & User Notification

  • Save the confirmation message in a response custom field.

  • Display it to the user, confirming the appointment.

Customization & Flexibility

This setup is highly adaptable:

  • Different appointment types: Discovery calls, taxi bookings, consultations.

  • Additional parameters: Location, contact info, special requests.

  • Response style: Formal, casual, or branded tone.

  • Data storage: Use either a single JSON field or separate custom fields for each parameter.

Sample Data Table: Parameter Handling

Step

Action

Data Stored

Notes

1

Load available slots

JSON payload

Dynamic calendar data

2

Ask for date

User response

Validate against available slots

3

Ask for time

User response

Validate against slots

4

Ask for reason

User response

Free text

5

Format JSON

{ "date": "...", "time": "...", "reason": "...", "status": "completed" }

Brackets indicate insertion points

6

Parse JSON

JavaScript

Convert string to object

7

Generate confirmation

GPT completion

Friendly message with details

Rich Text & Formatting in Markdown

Key Highlights

  • Dynamic Data Integration: Pull available slots directly from your calendar.

  • Minimal Notes: Only six notes needed to handle all data collection.

  • Conversational Style: Ask questions in first person, with emojis.

  • Conditional Logic: Check if all parameters are captured before proceeding.

  • JSON Handling: Use JavaScript to parse and store data efficiently.

  • Flexible Responses: Customize confirmation messages easily.

Sample Confirmation Message

"Your coaching call is scheduled for May 1, 2024 at 10:00 AM for Career coaching. Looking forward to speaking with you! 😊"

Summary

This setup demonstrates a powerful, flexible approach to automating appointment bookings via a conversational AI. By leveraging dynamic data, conditional logic, and structured responses, you can create a seamless user experience that feels natural and engaging. Whether for coaching, discovery calls, or other scheduling needs, this method minimizes manual effort while maximizing clarity and user satisfaction.

Remember, customize the prompts, parameters, and responses to fit your specific use case. With this framework, you can build a robust, scalable booking system that adapts to your business needs and enhances your customer interactions.