Vertical Playbooks
These vertical playbooks provide deep, practical examples of how the 8x8 WhatsApp solution can be applied to solve specific industry challenges. Each playbook includes a common scenario, a high-level flow, and the complete, end-to-end JSON payloads required to build it, from template creation to the final automated reply.
Retail & eCommerce
Value: Drive sales, reduce cart abandonment, and provide instant post-purchase support.
Scenario: Abandoned Cart Recovery
Flow: A MARKETING carousel template is sent 2 hours after a customer abandons their cart. If they reply, an automation sends them a direct link to their saved cart.
Tools Used: API (or Automation Builder with HTTP Trigger)
1. Step 1: Create the Carousel Template
First, create a MARKETING template with a carousel to showcase the items left in the cart.
Click to view `Template Creation Payload` (API Request)
POST https://chatapps.8x8.com/api/v1/accounts/{accountId}/channels/{channelId}/templates
{
"language": "en_US",
"name": "retail_abandoned_cart_v1",
"category": "MARKETING",
"components": [
{
"type": "BODY",
"text": "Hi {{1}}, you left some items in your cart! Are you ready to complete your purchase?",
"examples": ["Alex"]
},
{
"type": "CAROUSEL",
"cards": [
{
"components": [
{
"type": "HEADER",
"format": "IMAGE",
"examples": ["https://.../product_A.png"]
},
{
"type": "BODY",
"text": "Item 1: Running Shoes"
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "quick_reply",
"text": "Complete My Order"
}
]
}
]
},
{
"components": [
{
"type": "HEADER",
"format": "IMAGE",
"examples": ["https://.../product_B.png"]
},
{
"type": "BODY",
"text": "Item 2: Sports Jacket"
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "quick_reply",
"text": "Complete My Order"
}
]
}
]
}
]
}
]
}
2. Step 2: Send the Template
Your e-commerce platform's automation triggers this API call when a cart is abandoned for 2 hours.
Click to view `Template Sending Payload` (API Request)
POST https://chatapps.8x8.com/api/v1/subaccounts/{subAccountId}/messages
{
"user": {
"msisdn": "+15551234567"
},
"type": "template",
"content": {
"template": {
"language": "en_US",
"name": "retail_abandoned_cart_v1",
"components": [
{
"type": "body",
"parameters": [ { "type": "text", "text": "Alex" } ]
},
{
"type": "carousel",
"cards": [
{
"cardIndex": 0,
"components": [
{
"type": "header",
"parameters": [
{
"type": "image",
"url": "https://.../item_1_live.png"
}
]
}
]
},
{
"cardIndex": 1,
"components": [
{
"type": "header",
"parameters": [
{
"type": "image",
"url": "https://.../item_2_live.png"
}
]
}
]
}
]
}
]
}
}
}
3. Step 3: Handle the Reply
The customer clicks "Complete My Order." An Automation Builder workflow (or your webhook) receives this reply, opening the 24-hour service window.
Click to view `Inbound Webhook Payload` (User taps button)
4. Step 4: Send the Checkout Link
The automation replies with an Interactive Button Message containing the dynamic checkout link.
Click to view `Automated Response Payload` (Interactive CTA Button)
Financial Services / Fintech
Value: Securely authenticate users, provide real-time fraud alerts, and deliver account updates.
Scenario: Transaction One-Time Passcode (OTP)
Flow: A user attempts a high-value transaction. Your system calls the 8x8 API to send an AUTHENTICATION template with a "Copy Code" button for a seamless user experience.
Tools Used: API
1. Step 1: Create the Authentication Template
This template uses the special COPY_CODE button.
Click to view `Template Creation Payload` (API Request)
POST https://chatapps.8x8.com/api/v1/accounts/{accountId}/channels/{channelId}/templates
{
"language": "en_US",
"name": "finance_otp_v3",
"category": "AUTHENTICATION",
"components": [
{
"type": "BODY",
"text": "Your one-time passcode for your transaction is {{1}}.",
"examples": [
"123456"
]
},
{
"type": "FOOTER",
"text": "This code expires in 5 minutes. Do not share it with anyone."
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "COPY_CODE",
"examples": [
"123456"
]
}
]
}
]
}
2. Step 2: Send the OTP Message
When the transaction is initiated, your server generates a code and sends this API request.
Click to view `Template Sending Payload` (API Request)
POST https://chatapps.8x8.com/api/v1/subaccounts/{subAccountId}/messages
{
"user": {
"msisdn": "+15552223333"
},
"type": "template",
"content": {
"template": {
"language": "en_US",
"name": "finance_otp_v3",
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "852913"
}
]
},
{
"type": "button",
"index": "0",
"subType": "copyCode",
"parameters": [
{
"type": "couponCode",
"couponCode": "852913"
}
]
}
]
}
}
}
Logistics & Delivery
Value: Automate delivery notifications, provide proof of delivery, and manage rescheduling requests.
Scenario: Failed Delivery & Rescheduling
Flow: A driver marks a delivery as "failed." An automated UTILITY template is sent with a DOCUMENT header (the "missed delivery" note) and quick reply options to reschedule.
Tools Used: API + 8x8 Automation Builder
1. Step 1: Create the Failed Delivery Template
Click to view `Template Creation Payload` (API Request)
POST https://chatapps.8x8.com/api/v1/accounts/{accountId}/channels/{channelId}/templates
{
"language": "en_US",
"name": "delivery_failed_v1",
"category": "UTILITY",
"components": [
{
"type": "HEADER",
"format": "DOCUMENT",
"examples": [
"https://.../delivery_note.pdf"
]
},
{
"type": "BODY",
"text": "Hi {{1}}, we're sorry we missed you for your delivery (Order #{{2}}). We've attached the delivery note. What would you like to do?",
"examples": [
"Carlos",
"774-ABC"
]
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "quick_reply",
"text": "Reschedule"
},
{
"type": "quick_reply",
"text": "Change Address"
},
{
"type": "quick_reply",
"text": "Contact Support"
}
]
}
]
}
2. Step 2: Send the Notification
The driver's app calls an API endpoint that triggers this message.
Click to view `Template Sending Payload` (API Request)
POST https://chatapps.8x8.com/api/v1/subaccounts/{subAccountId}/messages
{
"user": {
"msisdn": "+15554445555"
},
"type": "template",
"content": {
"template": {
"language": "en_US",
"name": "delivery_failed_v1",
"components": [
{
"type": "header",
"parameters": [
{
"type": "document",
"url": "https://.../live-delivery-note-774-ABC.pdf"
}
]
},
{
"type": "body",
"parameters": [
{
"type": "text",
"text": "Carlos"
},
{
"type": "text",
"text": "774-ABC"
}
]
}
]
}
}
}
3. Step 3: Handle the "Reschedule" Reply
The customer taps "Reschedule." An Automation Builder workflow receives this reply.
Click to view `Inbound Webhook Payload` (User taps button)
4. Step 4: Offer New Time Slots
The automation replies with an Interactive List Message showing the next available slots.
Click to view `Automated Response Payload` (Interactive List)
Healthcare & Clinics
Value: Securely remind patients of appointments, send pre-visit instructions, and manage confirmations.
Scenario: Appointment Reminder with Location
Flow: Send a UTILITY template 48 hours before an appointment that includes the clinic's location as a LOCATION header.
Tools Used: API or Campaigns
1. Step 1: Create the Reminder Template
This template uses the LOCATION header type.
Click to view `Template Creation Payload` (API Request)
POST https://chatapps.8x8.com/api/v1/accounts/{accountId}/channels/{channelId}/templates
{
"language": "en_US",
"name": "clinic_reminder_v1",
"category": "UTILITY",
"components": [
{
"type": "HEADER",
"format": "LOCATION"
},
{
"type": "BODY",
"text": "Hi {{1}}, this is a reminder of your appointment with {{2}} on {{3}} at {{4}}.",
"examples": [
"Lee",
"Dr. Smith",
"Nov 10, 2025",
"3:00 PM"
]
},
{
"type": "FOOTER",
"text": "Please reply to confirm or call to reschedule."
}
]
}
2. Step 2: Send the Reminder
Your scheduling system triggers this API call 48 hours before the appointment.
Click to view `Template Sending Payload` (API Request)
POST https://chatapps.8x8.com/api/v1/subaccounts/{subAccountId}/messages
{
"user": {
"msisdn": "+15556667777"
},
"type": "template",
"content": {
"template": {
"language": "en_US",
"name": "clinic_reminder_v1",
"components": [
{
"type": "header",
"parameters": [
{
"type": "location",
"location": {
"latitude": "1.2857",
"longitude": "103.8479",
"name": "Downtown Medical Clinic",
"address": "123 Health St, Medical Tower, #05-01"
}
}
]
},
{
"type": "body",
"parameters": [
{ "type": "text", "text": "Lee" },
{ "type": "text", "text": "Dr. Smith" },
{ "type": "text", "text": "Nov 10, 2025" },
{ "type": "text", "text": "3:00 PM" }
]
}
]
}
}
}
Education & Training
Value: Engage new students, send course materials, and provide event reminders.
Scenario: New Student Welcome & Orientation
Flow: A UTILITY template is sent upon enrollment, featuring a VIDEO header (a welcome message from the director) and a URL button linking to the new student portal.
Tools Used: API or Campaigns
1. Step 1: Create the Welcome Template
Click to view `Template Creation Payload` (API Request)
POST https://chatapps.8x8.com/api/v1/accounts/{accountId}/channels/{channelId}/templates
{
"language": "en_US",
"name": "student_welcome_v1",
"category": "UTILITY",
"components": [
{
"type": "HEADER",
"format": "VIDEO",
"examples": [
"https://.../welcome_video.mp4"
]
},
{
"type": "BODY",
"text": "Welcome to the university, {{1}}! We're thrilled to have you. Your student ID is {{2}}. Get started by visiting your student portal.",
"examples": [
"Sam",
"S98765A"
]
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "URL",
"text": "Go to Student Portal",
"url": "[https://portal.university.edu/login/](https://portal.university.edu/login/){{1}}",
"examples": [
"S98765A"
]
}
]
}
]
}
2. Step 2: Send the Welcome Message
Your Student Information System (SIS) triggers this API call upon successful enrollment.
Click to view `Template Sending Payload` (API Request)
POST https://chatapps.8x8.com/api/v1/subaccounts/{subAccountId}/messages
{
"user": {
"msisdn": "+15558889999"
},
"type": "template",
"content": {
"template": {
"language": "en_US",
"name": "student_welcome_v1",
"components": [
{
"type": "header",
"parameters": [
{
"type": "video",
"url": "https://.../live_welcome_video.mp4"
}
]
},
{
"type": "body",
"parameters": [
{ "type": "text", "text": "Sam" },
{ "type": "text", "text": "S98765A" }
]
},
{
"type": "button",
"index": "0",
"subType": "url",
"parameters": [
{
"type": "text",
"text": "S98765A"
}
]
}
]
}
}
}