> ## Documentation Index
> Fetch the complete documentation index at: https://docs.useinvent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a Booking Assistant

> Build a complete yoga studio booking assistant with Google Sheets, Google Calendar, Stripe, and WhatsApp.

<Note>
  New to Invent? Start with [Your First Assistant](/your-first-assistant) to learn the fundamentals before diving into this advanced tutorial.
</Note>

In this tutorial, you will build a complete AI assistant for a wellness studio that handles bookings, payments, and customer support. By the end, you will understand how **Knowledge**, **Actions**, **Channels**, and **Memory** work together in a real-world scenario.

## What We're Building

**Sunrise Yoga Studio** needs an AI assistant that works 24/7 on WhatsApp. When customers message at 11 PM asking to book a class, the assistant will:

1. Answer questions about classes, pricing, and schedules
2. Check real-time availability in Google Sheets
3. Book them into a class
4. Send a Google Calendar invite
5. Process payment via Stripe
6. Verify payment completion
7. Email a confirmation receipt

**All in one conversation. No human involved.**

<Tip>
  Curious what the final result looks like? Jump to [See It in Action](#see-it-in-action) to watch a complete customer conversation, then come back to learn how to build it step-by-step.
</Tip>

### The Business Setup

Sunrise Yoga offers three packages:

| Package      | Price       | Classes   | Notes                     |
| ------------ | ----------- | --------- | ------------------------- |
| Drop-In      | \$25        | 1 class   | Perfect for trying us out |
| Starter Pack | \$90        | 5 classes | Valid for 30 days         |
| Unlimited    | \$150/month | Unlimited | Best value for regulars   |

Each class has a maximum of 15 participants. The studio offers:

* **Morning Flow**: Mon/Wed/Fri at 7 AM
* **Power Yoga**: Tue/Thu at 6 PM
* **Gentle Stretch**: Sat at 9 AM

## Step 1: Create the Assistant

From your dashboard, click **Assistants** in the sidebar, then click the **Create Assistant** button.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/create-assistant.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=18b75baf0dfb2fbebe94d019cfd34ecb" alt="Create Assistant" style={{ maxHeight: '400px' }} width="3024" height="1720" data-path="assets/learn-by-example/create-assistant.png" />
</Frame>

A dialog appears asking for:

* **Name**: Enter "Sunrise Yoga Concierge"
* **Template**: Keep default (custom)

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/create-assistant-dialog.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=f46b4724682d894b4d586493e135316f" alt="Create Assistant Dialog" style={{ maxHeight: '400px' }} width="3024" height="1714" data-path="assets/learn-by-example/create-assistant-dialog.png" />
</Frame>

Click **Create Assistant**. You're taken to your new assistant's configuration page.

## Step 2: Configure Assistant Settings

You'll see several tabs: **Settings**, **Knowledge**, **Channels**, **Actions**, and **Widget**. Let's start with Settings.

### Basic Configuration

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/basic-configuration.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=145ae2398dba87aec5fc3424b32435a0" alt="Basic Configuration" style={{ maxHeight: '400px' }} width="1410" height="704" data-path="assets/learn-by-example/basic-configuration.png" />
</Frame>

**Avatar**: Click the avatar circle to upload your studio's logo. This appears in conversations.

**Name**: Already set to "Sunrise Yoga Concierge". This displays in conversations.

**Model**: Leave as "Auto" to let Invent choose the best model for each response. The cost shown (≈ \$0.0032 per message) is an estimate.

### Instructions

Instructions define your assistant's behavior, personality, and rules. This is where you tell the assistant *how* to act, not what information it knows (that goes in Knowledge).

Below the label, you'll see a **template dropdown** for inspiration. Let's write custom instructions:

```
You are the friendly concierge for Sunrise Yoga Studio.

## Your Personality
- Warm, welcoming, and knowledgeable about yoga
- Patient with beginners (many customers are new to yoga)
- Enthusiastic but not pushy about bookings

## Your Responsibilities
1. Answer questions about classes, schedules, and pricing
2. Help customers book classes and manage reservations
3. Process payments and send confirmation receipts
4. Handle cancellations and rescheduling requests

## What to Remember

Remember important details about each customer for personalized service:
- Their name and contact information (email, phone)
- Which classes they've attended and when
- Their favorite instructors or class preferences
- Package type and remaining credits
- Any special needs or preferences they mention

Use this information to make returning customers feel recognized and provide tailored recommendations.

## Important Rules
- Always check availability before confirming a booking
- Confirm all details (class, date, time, package) before processing payment
- After sending a payment link, wait for the customer to confirm they've paid, then verify the payment before completing the booking
- If a class is full, suggest alternatives
- If you're unsure about something, offer to connect with a human team member
```

Notice we're defining *behavior*, not listing class schedules or prices. That information belongs in Knowledge, where it's easier to update and the assistant can search through it more effectively.

### Tools & Capabilities

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/tools-capabilities.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=83a20af5c319c63923959d9009eb7297" alt="Tools & Capabilities" style={{ maxHeight: '400px' }} width="1410" height="758" data-path="assets/learn-by-example/tools-capabilities.png" />
</Frame>

**Memories**: Turn this on. This lets your assistant remember customer names, preferences, and past bookings across all conversations.

**Transfer to Human**: Turn this on. When the assistant encounters complex issues, it can hand off to your team.

**Spam Protection**: Turn this on. Automatically blocks contacts showing suspicious behavior.

## Step 3: Add Knowledge

Knowledge teaches your assistant factual information about your business. Click the **Knowledge** tab.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/knowledge.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=d01f434f6c38097284faa34cdc352bcc" alt="Knowledge" style={{ maxHeight: '400px' }} width="1410" height="1020" data-path="assets/learn-by-example/knowledge.png" />
</Frame>

### Adding Studio Information

Click **Upload Knowledge**. A dialog appears with three tabs:

* **File**: Upload PDF, Word, or text files (up to 50 MB each)
* **Text**: Add content directly
* **Website**: Paste a URL to crawl your website

### Adding a Text Knowledge Item

Click the **Text** tab and enter your studio information:

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/knowledge-text.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=3944d9a786db017c93c39802fbcb1253" alt="Knowledge Text" style={{ maxHeight: '400px' }} width="1646" height="1234" data-path="assets/learn-by-example/knowledge-text.png" />
</Frame>

```
# Sunrise Yoga Studio

## Class Packages & Pricing
- Drop-In: $25 for 1 class (great for first-timers)
- Starter Pack: $90 for 5 classes (valid 30 days)
- Unlimited: $150/month for unlimited classes

## Class Schedule
- Morning Flow: Mon/Wed/Fri at 7 AM (60 min)
- Power Yoga: Tue/Thu at 6 PM (75 min)
- Gentle Stretch: Sat at 9 AM (60 min)

Each class has maximum 15 participants.

## Class Details

### Morning Flow (Mon/Wed/Fri, 7:00 AM)
Energizing vinyasa-style class to start your day. Suitable for all levels.
Instructor: Sarah Chen (10 years experience, RYT-500 certified)
What to bring: Yoga mat (rentals available for $3)
Arrive: 10 minutes early to settle in

### Power Yoga (Tue/Thu, 6:00 PM)
Challenging, athletic practice that builds strength and stamina.
Instructor: Marcus Williams (Former athlete, specializes in strength-building)
Best for: Intermediate to advanced practitioners
Note: Beginners welcome but expect a workout!

### Gentle Stretch (Sat, 9:00 AM)
Slow, relaxing practice focused on flexibility and stress relief.
Instructor: Linda Park (Specializes in therapeutic yoga)
Perfect for: Beginners, seniors, those recovering from injury

## Studio Policies
- Cancellations must be made 4 hours before class
- Late arrivals (more than 10 minutes) cannot enter
- Class credits expire 30 days from purchase (Starter Pack)
- No refunds, but credits can be transferred to another person
- First class is always 50% off for new students!

## Location & Parking
123 Wellness Way, Downtown
Free 2-hour parking in the building garage
Studio is on the 3rd floor
```

Click **Upload**. The status shows "Processing" then "Processed" when ready.

## Step 4: Connect Actions

Actions let your assistant actually *do* things, not just talk about them. Click the **Actions** tab.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/actions.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=3ce1a08866508be9b8b146beb55aeeea" alt="Actions" style={{ maxHeight: '400px' }} width="1408" height="800" data-path="assets/learn-by-example/actions.png" />
</Frame>

Click **Add Action** to see all available integrations.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/actions-list.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=82c65d7d5bc093270072cab73663e653" alt="Actions List" style={{ maxHeight: '400px' }} width="1392" height="1248" data-path="assets/learn-by-example/actions-list.png" />
</Frame>

You'll see two sections:

* **Utilities**: Web Search, HTTP Request, Web Scraping, Call Workflow, Call MCP Server
* **Integrations**: Google Calendar, Google Sheets, Stripe, Gmail, Slack, and many more

For our yoga studio, we need:

1. **Google Sheets**: Track bookings (the assistant uses Knowledge for class details)
2. **Google Calendar**: Send calendar invites
3. **Stripe**: Create payment links and verify payments
4. **Gmail**: Send confirmation emails

<Note>
  **Bookings Spreadsheet Setup**

  Create a spreadsheet with columns: **Customer Name**, **Email**, **Phone**, **Class Name**, **Date**, **Time**, **Package Type**, **Payment Status**.

  | Customer Name | Email                                   | Phone    | Class Name     | Date         | Time    | Package Type | Payment Status |
  | ------------- | --------------------------------------- | -------- | -------------- | ------------ | ------- | ------------ | -------------- |
  | Emma Johnson  | [emma@email.com](mailto:emma@email.com) | 555-0101 | Gentle Stretch | Jan 18, 2026 | 9:00 AM | Drop-In      | Paid           |
  | Mike Chen     | [mike@email.com](mailto:mike@email.com) | 555-0102 | Gentle Stretch | Jan 18, 2026 | 9:00 AM | Starter Pack | Paid           |

  The assistant gets class details (times, instructors, max capacity of 15) from Knowledge, then counts bookings in this spreadsheet to calculate availability.

  <Frame>
    <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/bookings-spreadsheet.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=28ae648defefced77cebb4fbe05fe030" alt="Bookings Spreadsheet" style={{ maxHeight: '400px' }} width="2106" height="1138" data-path="assets/learn-by-example/bookings-spreadsheet.png" />
  </Frame>
</Note>

### Action 1: Check Bookings

Click **Google Sheets** in the integrations list.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/google-sheets-actions.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=e3ec28444ba99c77fbc7d52c0e10a075" alt="Google Sheets Actions" style={{ maxHeight: '400px' }} width="1392" height="1248" data-path="assets/learn-by-example/google-sheets-actions.png" />
</Frame>

You'll see these actions:

* **Append Row to Spreadsheet**: Add data to a sheet
* **Search in Spreadsheet**: Find data in a sheet
* Etc.

Click **Search in Spreadsheet**.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/search-in-spreadsheet.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=49accbe1cb0b11aa32060aa35cff703c" alt="Search in Spreadsheet" style={{ maxHeight: '400px' }} width="1064" height="730" data-path="assets/learn-by-example/search-in-spreadsheet.png" />
</Frame>

**Action Name**: "Check Bookings"

**When To Use**:

```
Search bookings to check how many people are booked for a class. Compare against max capacity from Knowledge to determine availability.
```

**Connection**: Click the dropdown. If you haven't connected Google Sheets yet, click "Connect Google Sheets" and authorize access. Once connected, select your Google account.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/google-sheets-connection.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=d09951359fb3eab849e5a9f71b19691f" alt="Google Sheets Connection" style={{ maxHeight: '400px' }} width="1078" height="950" data-path="assets/learn-by-example/google-sheets-connection.png" />
</Frame>

**Spreadsheet**: Select your bookings spreadsheet.

**Sheet**: Select the sheet tab (e.g., "Sheet1").

**Search Range**: Enter the cell range, like `A:Z` for entire columns.

**Search Term**: Leave as `AI Controlled Field`. The assistant automatically determines the class name and date from the conversation.

<Info>
  **How Availability Works**

  When a customer asks to book Saturday's Gentle Stretch:

  1. Assistant knows from **Knowledge**: Max capacity = 15, Time = 9 AM, Instructor = Linda
  2. Assistant **searches Bookings spreadsheet** for "Gentle Stretch" + "Jan 18"
  3. Finds 2 existing bookings → calculates 13 spots available
  4. Responds: "Gentle Stretch on Saturday at 9 AM has spots available!"

  If 15 bookings exist, the assistant suggests alternatives per your instructions.
</Info>

<Info>
  **Understanding Auto vs Manual Fields**

  Each field has a menu button (⋮) on the right. Click it to switch between:

  * **Auto**: The AI determines the value from conversation context.
  * **Manual**: You enter a fixed value that never changes.

  For Search Term, Auto makes sense since it depends on what class the customer asks about.
</Info>

Click **Add Action**.

### Action 2: Record Booking

Click **Add Action** → **Google Sheets** → **Append Row to Spreadsheet**.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/append-row-to-spreadsheet.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=d80e51adf6f9e1a177836e7a3bf0e600" alt="Append Row to Spreadsheet" style={{ maxHeight: '400px' }} width="1060" height="1200" data-path="assets/learn-by-example/append-row-to-spreadsheet.png" />
</Frame>

**Action Name**: "Record Booking"

**When To Use**:

```
After payment is verified, add the booking to the spreadsheet.
```

**Connection**: Select your connected Google account.

**Spreadsheet**: Select your bookings spreadsheet (e.g., "Bookings").

**Sheet** (Optional): Select the sheet tab (e.g., "Sheet1"). If your spreadsheet only has one sheet, you can leave this empty.

<Note>
  Your spreadsheet's first row must contain column headers. The action reads these headers to generate the Row Values fields below.
</Note>

**Row Values**: Once you select a spreadsheet and sheet, the form automatically displays fields for each column header. For our bookings spreadsheet, you'll see:

* **Customer Name**: AI Controlled Field
* **Email**: AI Controlled Field
* **Phone**: AI Controlled Field
* **Class Name**: AI Controlled Field
* **Date**: AI Controlled Field
* **Time**: AI Controlled Field
* **Package Type**: AI Controlled Field
* **Payment Status**: AI Controlled Field

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/append-row-values.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=b05fa2214449f9d1df435de626f7a93f" alt="Row Values" style={{ maxHeight: '400px' }} width="1020" height="1260" data-path="assets/learn-by-example/append-row-values.png" />
</Frame>

Leave all fields as "AI Controlled Field". The assistant automatically extracts each value from the conversation context, customer details they provided, the class they booked, and the payment status after verification.

Click **Add Action**.

### Action 3: Create Calendar Event

Click **Add Action** → **Google Calendar**.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/google-calendar.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=aa5f4787f756008529233498364f8c20" alt="Google Calendar" style={{ maxHeight: '400px' }} width="1084" height="1040" data-path="assets/learn-by-example/google-calendar.png" />
</Frame>

Google Calendar offers several actions (Search Events, Get Event, Update Event, Delete Event, etc.). For this tutorial, click **Create Event**.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/google-calendar-create-event.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=cc01680243faaedda47dd4c1ed18ab5b" alt="Google Calendar Create Event" style={{ maxHeight: '400px' }} width="2506" height="1462" data-path="assets/learn-by-example/google-calendar-create-event.png" />
</Frame>

**Action Name**: "Send Class Calendar Invite"

**When To Use**:

```
Use after payment is verified. Send a calendar invite to the customer with class details, date, time, and studio location.
```

**Connection**: Connect your Google Calendar account.

The fields stay as Auto:

* **Event Title**: AI generates something like "Morning Flow at Sunrise Yoga"
* **Description**: AI includes class details, instructor, what to bring
* **Start Date** / **End Date**: AI extracts from the booked class
* **Attendees Email**: Customer's email from conversation
* **Location**: Can be set to Manual with your studio address

For **Visibility**, **Reminder Method**, and **Reminder Time**, you might want Manual values:

* Visibility: "Default"
* Reminder Method: "Email and In-app Notification"
* Reminder Time: "30 minutes"

Click **Add Action**.

### Action 4: Create Payment Link

Click **Add Action** → **Stripe**.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/stripe.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=1a8d08106018cd049f5a26bc1816d3d0" alt="Stripe" style={{ maxHeight: '400px' }} width="1052" height="1018" data-path="assets/learn-by-example/stripe.png" />
</Frame>

Stripe offers many actions including customer management, subscriptions, invoices, and payment links. For this tutorial, we need:

* **Create Payment Link**: Permanent shareable link
* **Get Payment Link**: Retrieve payment link details to verify payment

Click **Create Payment Link**.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/stripe-create-payment-link.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=df38fca35558b54702c93f3ced738c47" alt="Stripe Create Payment Link" style={{ maxHeight: '400px' }} width="1944" height="1382" data-path="assets/learn-by-example/stripe-create-payment-link.png" />
</Frame>

**Action Name**: "Create Payment Link"

**When To Use**:

```
Use when a customer confirms they want to book and is ready to pay. Create a payment link for the correct package amount.
```

**Connection**: Click "Connect Stripe" and authorize your Stripe account.

**Price**: Leave as Auto. The assistant determines the correct amount based on the package:

* Drop-In → \$25
* Starter Pack → \$90
* Unlimited → \$150/month (subscription)

<Note>
  You must create corresponding products and prices in your Stripe account that match your packages. The assistant will reference these when generating payment links. For recurring packages like Unlimited (\$150/month), set up a subscription price in Stripe.
</Note>

Click **Add Action**.

### Action 5: Verify Payment

This is critical. When a customer says "I've paid", the assistant needs to verify the payment actually completed.

Click **Add Action** → **Stripe** → **Get Payment Link**.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/stripe-get-payment-link.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=5e4b9abd49259a475b79260bf9b72d44" alt="Stripe Get Payment Link" style={{ maxHeight: '400px' }} width="1948" height="1350" data-path="assets/learn-by-example/stripe-get-payment-link.png" />
</Frame>

**Action Name**: "Verify Payment Status"

**When To Use**:

```
Use when a customer says they have completed payment. Check if the payment link has been paid before confirming the booking.
```

**Connection**: Select your Stripe connection.

**Payment Link ID**: Leave as Auto. The assistant uses the payment link ID from the earlier "Create Payment Link" action.

Click **Add Action**.

### Action 6: Send Confirmation Email

Click **Add Action** → **Gmail** → **Send Email**.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/gmail-send-email.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=f5b1ef42e282b6dfaf0757670c7816c5" alt="Gmail Send Email" style={{ maxHeight: '400px' }} width="2256" height="1450" data-path="assets/learn-by-example/gmail-send-email.png" />
</Frame>

**Action Name**: "Send Booking Confirmation"

**When To Use**:

```
Use after payment is verified. Send confirmation email with booking details, what to bring, studio address, and cancellation policy.
```

**Connection**: Connect your Gmail account.

**From Email**: Shows after connecting. This is the email that sends confirmations.

**To Email**: Auto. Customer's email from conversation.

**Subject**: Auto. Something like "Your Sunrise Yoga Class is Confirmed"

**Body**: Auto. Full confirmation with all details.

**CC** / **BCC** / **Attachments**: Optional fields, leave empty or set as needed.

Click **Add Action**.

Your Actions tab now shows 6 configured actions:

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/configured-actions.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=63a343501c63eed31496a13217c27060" alt="Configured Actions" style={{ maxHeight: '400px' }} width="1402" height="936" data-path="assets/learn-by-example/configured-actions.png" />
</Frame>

Each action has a toggle to enable/disable it without losing configuration.

## Step 5: Connect WhatsApp

Your assistant needs a channel to communicate. Click the **Channels** tab.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/channels.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=b5b409946444675d641bcbe2b5bcdea2" alt="Channels" style={{ maxHeight: '400px' }} width="1412" height="1160" data-path="assets/learn-by-example/channels.png" />
</Frame>

Available channels include WhatsApp Business, Instagram, Messenger, Telegram, and more.

Click **Connect** next to WhatsApp.

<Frame>
  <img src="https://mintcdn.com/invent/fg7UIW_JOV8Aguvr/assets/learn-by-example/whatsapp-connect.png?fit=max&auto=format&n=fg7UIW_JOV8Aguvr&q=85&s=a276c8fab5cb14da506375bae48e444e" alt="WhatsApp Connect" style={{ maxHeight: '400px' }} width="1216" height="992" data-path="assets/learn-by-example/whatsapp-connect.png" />
</Frame>

Follow the setup:

1. Connect your Meta Business account
2. Select or create a WhatsApp Business phone number
3. Verify your business
4. Configure message templates (optional)

## Step 6: Test in the Playground

Before going live, test everything. On the right side of the assistant page, you'll see **Create New Conversation**.

Click **Create Conversation** and try a booking flow. Verify that actions trigger at the right moments and responses use your Knowledge correctly.

## Step 7: Go Live

Once testing is complete:

1. **Enable the WhatsApp channel** using the toggle
2. **Share your WhatsApp number** with customers
3. **Monitor the Inbox** for conversations

Click **Inbox** in the sidebar to see all conversations. Use filters to focus on what needs attention, especially "Waiting for Human" for conversations the AI transferred.

## See It in Action

Here's what a real customer journey looks like. This shows Knowledge, Actions, and Memory working together across multiple conversations.

### First Booking (Saturday evening)

> **Sarah**: Hi! I saw your studio on Instagram. Do you have beginner-friendly classes?

> **Assistant**: Hi! Yes, we have several options perfect for beginners. Our Gentle Stretch class on Saturdays at 9 AM is ideal. It's a slow, relaxing practice focused on flexibility, taught by Linda who specializes in working with newcomers. Morning Flow (Mon/Wed/Fri at 7 AM) is also suitable for all levels. Would you like to know more about either?

> **Sarah**: The Saturday one sounds good. How much is it?

> **Assistant**: Great choice! We have three package options:
>
> * **Drop-In**: \$25 for a single class (perfect for trying us out)
> * **Starter Pack**: \$90 for 5 classes (valid 30 days)
> * **Unlimited**: \$150/month for unlimited classes
>
> For your first class, we also offer 50% off! Would you like to book this Saturday's Gentle Stretch?

> **Sarah**: Yes! I'll do the drop-in. My name is Sarah, email is [sarah.miller@email.com](mailto:sarah.miller@email.com)

> **Assistant**: Perfect, Sarah! Let me check availability for this Saturday's Gentle Stretch at 9 AM.

> Good news, there are spots available! With the first-timer discount, your Drop-In is \$12.50. Here's your payment link:

> [https://pay.stripe.com/abc123](https://pay.stripe.com/abc123)

> Once you've completed payment, I'll send your confirmation and calendar invite.

> **Sarah**: Done!

> **Assistant**: Payment confirmed! You're all set for Gentle Stretch this Saturday at 9 AM.

> I've sent a calendar invite and confirmation email to [sarah.miller@email.com](mailto:sarah.miller@email.com). A few things to know:
>
> * Arrive 10 minutes early to settle in
> * Yoga mats available to rent for \$3, or bring your own
> * We're at 123 Wellness Way, Downtown (free parking in the building garage)

> See you Saturday, Sarah!

**What happened**: The assistant answered using Knowledge, checked real-time availability, processed payment, verified it, recorded the booking, sent a calendar invite, and emailed confirmation. All automatically.

### Returning Customer (Two weeks later)

> **Sarah**: Hey!

> **Assistant**: Hi Sarah! How was Gentle Stretch with Linda? Ready to book another class?

> **Sarah**: It was great! Linda was so patient. I want to come regularly now. What's the best deal?

> **Assistant**: So glad you enjoyed it! For regular attendance, the **Unlimited plan at *150 usd/month*** is the best value. You can attend as many classes as you want. If you're not sure about committing monthly, the **Starter Pack** gives you 5 classes for \$90, valid for 30 days.

> Based on Gentle Stretch being Saturdays only, the Starter Pack would cover 4-5 weeks of classes. But if you want to add Morning Flow or try Power Yoga too, Unlimited pays for itself at just 6 classes per month.

> **Sarah**: Let's do the starter pack for now

> **Assistant**: Great choice! Here's your payment link for the Starter Pack, 5 classes for \$90:

> [https://pay.stripe.com/xyz789](https://pay.stripe.com/xyz789)

> **Sarah**: Paid! And can you book me for this Saturday?

> **Assistant**: Perfect! Your Starter Pack is active. 5 classes valid through February 10th.

> This Saturday's Gentle Stretch at 9 AM has space. I've booked you in!

> Calendar invite sent. 4 classes remaining on your Starter Pack. See you Saturday, Sarah!

**What happened**: The assistant remembered Sarah's name, her previous class, and her instructor preference. It gave personalized package advice based on her attendance pattern.

***

## Key Concepts

| Concept           | What It Does                                            |
| ----------------- | ------------------------------------------------------- |
| **Instructions**  | Define assistant behavior and personality               |
| **Knowledge**     | Store factual information (schedules, prices, policies) |
| **Actions**       | Let the assistant perform real tasks                    |
| **Auto Fields**   | AI determines values from conversation                  |
| **Manual Fields** | Fixed values that never change                          |
| **When To Use**   | Guides when actions should trigger                      |
| **Memory**        | Remembers customers across conversations                |
| **Channels**      | Where customers reach your assistant                    |

## FAQ

<AccordionGroup>
  <Accordion title="What if a class is full?">
    The assistant counts 15 bookings in the spreadsheet (matching max capacity from Knowledge) and tells the customer the class is full. Your instructions tell it to suggest alternatives.
  </Accordion>

  <Accordion title="Can I change prices?">
    Update prices in your Knowledge text. The assistant reads Knowledge fresh for each conversation.
  </Accordion>

  <Accordion title="What if someone wants a refund?">
    Your Knowledge states the refund policy. For exceptions, the "Transfer to Human" feature routes complex requests to your team.
  </Accordion>

  <Accordion title="How do I add a new class?">
    Update your Knowledge with the new class details (name, time, instructor, max capacity). The assistant picks up changes immediately.
  </Accordion>

  <Accordion title="What if payment verification fails?">
    If the payment link hasn't been paid, the assistant will let the customer know and can resend the payment link or help troubleshoot.
  </Accordion>
</AccordionGroup>

## Bonus: Adding Rescheduling

Want to let customers reschedule their bookings? Add two more actions:

**Google Calendar → Update Event**

* Action Name: "Reschedule Class"
* When To Use: "Use when a customer wants to reschedule an existing booking to a new date/time."

**Google Sheets → Update Row in Spreadsheet**

* Action Name: "Update Booking Record"
* When To Use: "Use after rescheduling to update the booking date in the spreadsheet."

With these actions, your assistant handles rescheduling automatically:

> **Sarah**: Hey, something came up Saturday. Can I reschedule?

> **Assistant**: Hi Sarah! Of course. Your Gentle Stretch is this Saturday at 9 AM. When would you like to move it to?

> **Sarah**: Next Saturday

> **Assistant**: Done! I've moved your booking to next Saturday, January 18th at 9 AM. Your calendar invite is updated. See you then!
