You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: fern/workflows/examples/appointment-scheduling.mdx
+35-70Lines changed: 35 additions & 70 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -88,13 +88,11 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
88
88
<Steptitle="Configure the Initial Conversation Node">
89
89
The default template includes a conversation node. Click on it and configure:
90
90
91
-
**First Message**:
92
-
```txt
91
+
```txt title="First Message"
93
92
Hello! Thank you for calling Tony's Barbershop. This is Sarah, your booking assistant. I can help you schedule, reschedule, or cancel appointments. How can I help you today?
94
93
```
95
94
96
-
**Prompt**:
97
-
```txt
95
+
```txt title="Prompt"
98
96
You are Sarah, the friendly booking assistant for Tony's Barbershop.
99
97
100
98
Listen to the customer's response and determine their intent:
@@ -117,18 +115,15 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
117
115
<Steptitle="Add Customer Verification Node">
118
116
Click the + button below the greeting node and add a new **Conversation** node:
119
117
120
-
**Condition**:
121
-
```txt
118
+
```txt title="Condition"
122
119
Intent identified
123
120
```
124
121
125
-
**First Message**:
126
-
```txt
122
+
```txt title="First Message"
127
123
Now I need to verify your information. Can you please provide your phone number or full name so I can look up your account?
128
124
```
129
125
130
-
**Prompt**:
131
-
```txt
126
+
```txt title="Prompt"
132
127
You are collecting customer identification information to look them up in the system.
133
128
134
129
If they provide a phone number, extract it in a clean format (numbers only).
@@ -149,8 +144,7 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
149
144
<Steptitle="Add Customer Lookup Tool Node">
150
145
Add a **Tool** node:
151
146
152
-
**Condition**:
153
-
```txt
147
+
```txt title="Condition"
154
148
Customer information collected
155
149
```
156
150
@@ -162,18 +156,15 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
162
156
163
157
**Schedule New Appointment Node**:
164
158
165
-
**Condition**:
166
-
```txt
159
+
```txt title="Condition"
167
160
Customer verified and intent is schedule
168
161
```
169
162
170
-
**First Message**:
171
-
```txt
163
+
```txt title="First Message"
172
164
Great! I can help you schedule a new appointment. What type of service would you like? We offer haircuts, beard trims, shampoo and styling, and full grooming packages.
173
165
```
174
166
175
-
**Prompt**:
176
-
```txt
167
+
```txt title="Prompt"
177
168
You are helping the customer schedule a new appointment.
178
169
179
170
Listen for the service they want and any preferred dates/times they mention.
@@ -183,18 +174,15 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
183
174
184
175
**Reschedule Appointment Node**:
185
176
186
-
**Condition**:
187
-
```txt
177
+
```txt title="Condition"
188
178
Customer verified and intent is reschedule
189
179
```
190
180
191
-
**First Message**:
192
-
```txt
181
+
```txt title="First Message"
193
182
I can help you reschedule your appointment. Let me first look up your current booking details.
194
183
```
195
184
196
-
**Prompt**:
197
-
```txt
185
+
```txt title="Prompt"
198
186
You are helping the customer reschedule an existing appointment.
199
187
200
188
Be understanding and accommodating. Look up their current appointment first.
@@ -203,18 +191,15 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
203
191
204
192
**Cancel Appointment Node**:
205
193
206
-
**Condition**:
207
-
```txt
194
+
```txt title="Condition"
208
195
Customer verified and intent is cancel
209
196
```
210
197
211
-
**First Message**:
212
-
```txt
198
+
```txt title="First Message"
213
199
I can help you cancel your appointment. Let me look up your current booking to confirm the details.
214
200
```
215
201
216
-
**Prompt**:
217
-
```txt
202
+
```txt title="Prompt"
218
203
You are helping the customer cancel their appointment.
219
204
220
205
Be understanding and offer to reschedule instead if appropriate.
@@ -227,18 +212,15 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
227
212
228
213
**Enable Global Node**: Toggle this on to make the node available from any point in the conversation
229
214
230
-
**Condition**:
231
-
```txt
215
+
```txt title="Condition"
232
216
Customer confused or error detected
233
217
```
234
218
235
-
**First Message**:
236
-
```txt
219
+
```txt title="First Message"
237
220
I apologize for any confusion. Let me transfer you to one of our human staff members who can better assist you. Please hold for just a moment.
238
221
```
239
222
240
-
**Prompt**:
241
-
```txt
223
+
```txt title="Prompt"
242
224
You are handling an error or confused customer situation.
243
225
244
226
Be apologetic and professional. Prepare them for transfer to human staff.
@@ -253,18 +235,15 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
253
235
254
236
**Service Selection Node** (Conversation):
255
237
256
-
**Condition**:
257
-
```txt
238
+
```txt title="Condition"
258
239
Service type mentioned or requested
259
240
```
260
241
261
-
**First Message**:
262
-
```txt
242
+
```txt title="First Message"
263
243
Perfect! And when would you prefer to come in? What date and time work best for you?
264
244
```
265
245
266
-
**Prompt**:
267
-
```txt
246
+
```txt title="Prompt"
268
247
You are collecting appointment preferences for scheduling.
269
248
270
249
Listen for specific dates, times, or general preferences like "morning" or "next week".
@@ -286,8 +265,7 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
286
265
287
266
**Availability Check Tool Node**:
288
267
289
-
**Condition**:
290
-
```txt
268
+
```txt title="Condition"
291
269
Preferences collected
292
270
```
293
271
@@ -296,18 +274,15 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
296
274
297
275
**Availability Results Node** (Conversation):
298
276
299
-
**Condition**:
300
-
```txt
277
+
```txt title="Condition"
301
278
Availability checked
302
279
```
303
280
304
-
**First Message**:
305
-
```txt
281
+
```txt title="First Message"
306
282
Based on your preferences, here are the available time slots. Which one works best for you?
307
283
```
308
284
309
-
**Prompt**:
310
-
```txt
285
+
```txt title="Prompt"
311
286
You are presenting available appointment times to the customer.
312
287
313
288
Present 2-3 options clearly with dates and times.
@@ -319,18 +294,15 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
319
294
<Steptitle="Add Confirmation and Booking Flow">
320
295
**Booking Confirmation Node** (Conversation):
321
296
322
-
**Condition**:
323
-
```txt
297
+
```txt title="Condition"
324
298
Time slot selected
325
299
```
326
300
327
-
**First Message**:
328
-
```txt
301
+
```txt title="First Message"
329
302
Perfect! Let me confirm your appointment details: [service] on [date] at [time]. Is this correct?
330
303
```
331
304
332
-
**Prompt**:
333
-
```txt
305
+
```txt title="Prompt"
334
306
You are confirming appointment details before booking.
335
307
336
308
Read back the service type, date, and time clearly.
@@ -345,8 +317,7 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
345
317
346
318
**Create Appointment Tool Node**:
347
319
348
-
**Condition**:
349
-
```txt
320
+
```txt title="Condition"
350
321
Appointment details confirmed
351
322
```
352
323
@@ -355,27 +326,23 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
355
326
356
327
**Send Confirmation Node** (Tool):
357
328
358
-
**Condition**:
359
-
```txt
329
+
```txt title="Condition"
360
330
Appointment created successfully
361
331
```
362
332
363
333
**Select Tool**: Choose your pre-configured SMS/email confirmation tool
364
334
365
335
**Completion Node** (Conversation):
366
336
367
-
**Condition**:
368
-
```txt
337
+
```txt title="Condition"
369
338
Confirmation sent
370
339
```
371
340
372
-
**First Message**:
373
-
```txt
341
+
```txt title="First Message"
374
342
Great! Your appointment is confirmed. You'll receive a confirmation message shortly. Is there anything else I can help you with today?
375
343
```
376
344
377
-
**Prompt**:
378
-
```txt
345
+
```txt title="Prompt"
379
346
You are wrapping up a successful appointment booking.
380
347
381
348
Be friendly and offer additional assistance.
@@ -387,8 +354,7 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
387
354
<Steptitle="Add Transfer and Hangup Options">
388
355
**Transfer to Human Node**:
389
356
390
-
**Condition**:
391
-
```txt
357
+
```txt title="Condition"
392
358
Customer requests human assistance
393
359
```
394
360
@@ -397,8 +363,7 @@ You'll start with a default template that includes a "Call Start" node. We'll mo
397
363
398
364
**End Call Node**:
399
365
400
-
**Condition**:
401
-
```txt
366
+
```txt title="Condition"
402
367
Customer satisfied and no further assistance needed
0 commit comments