WhatsApp Commerce Concierge

A privilege-separated AI commerce system for WhatsApp. A restricted Concierge bot handles customer conversations but has no direct access to payment or CRM systems. It delegates all privileged operations to an Operator Assistant via bot/call, which also serves your team on Slack. A Proactive Outreach Agent handles abandoned cart recovery and renewal reminders on a schedule.

whatsapp
commerce
concierge
736

WhatsApp has over 2.7 billion monthly active users and is the primary business communication channel in Latin America, Southeast Asia, the Middle East, Africa, and large parts of Europe. For millions of small and mid-size businesses in these regions, WhatsApp IS the storefront. Customers send messages to order products, ask about pricing, check delivery status, and request invoices. Yet most businesses handle this manually.

The conversational commerce market is projected to reach $30B by 2027, with WhatsApp as the dominant channel in emerging markets. No existing ChatBotKit blueprint uses WhatsApp as a primary channel, despite it being the single largest messaging platform in the world.

Dual-Mode Agent Pattern

This blueprint introduces a pattern where a single bot operates as both a customer-facing conversational interface AND a back-office data coordinator. Unlike existing blueprints where agents serve internal teams (Slack CRM Agent, Team Pulse Agent), this agent has a split personality:

  1. Customer mode (via WhatsApp) - Friendly, multilingual, focused on answering questions, providing status updates, and guiding purchases. Never exposes internal tools or data structures.

  2. Operator mode (via Slack) - Technical, detailed, focused on surfacing CRM insights, flagging high-value customers, and escalating complex requests. Shows its reasoning and data sources.

Architectural novelties:

  1. Single bot, dual channel personality - The backstory instructs the agent to behave differently based on which channel the message arrives from. WhatsApp messages get customer-friendly responses; Slack messages get operator-level detail. This is a novel pattern not demonstrated in any existing blueprint.

  2. Real-time CRM enrichment - Every WhatsApp conversation automatically updates the HubSpot contact record with interaction notes, sentiment signals, and purchase intent indicators, creating a self-updating CRM.

  3. Proactive engagement via triggers - Scheduled triggers check for abandoned carts (Stripe incomplete payments), upcoming subscription renewals, and inactive customers, then proactively reach out via WhatsApp.

  4. Persistent customer memory - The Space stores per-customer interaction summaries, enabling the agent to remember past conversations and preferences across sessions.

  5. Privilege separation - The customer-facing WhatsApp Concierge has no direct access to payment systems or CRM. It delegates all privileged operations to the Operator Assistant via bot/call, preventing prompt injection attacks from reaching sensitive APIs.

How It Works

The WhatsApp Concierge handles customer messages on WhatsApp. It can read the product catalog and customer profiles from the Space, but has no direct access to Stripe, HubSpot, or Google Sheets. When a customer asks about an order or billing, the Concierge delegates to the Operator Assistant via bot/call.

The Operator Assistant is connected to Slack for operator queries (customer history, sales data, deal pipelines). It also serves as the privileged backend for the WhatsApp Concierge, executing Stripe lookups, HubSpot CRM updates, and Google Sheets queries on its behalf. This separation ensures untrusted customer input never directly reaches payment or CRM APIs.

The Proactive Outreach Agent runs on scheduled triggers. It checks Stripe for incomplete payments and upcoming renewals, checks HubSpot for inactive contacts, and sends personalized WhatsApp messages to re-engage customers or remind about renewals.

Customization

  • Edit product-catalog.md in the Space to define your products, pricing, and availability.
  • Adjust the outreach triggers to match your customer lifecycle cadence.
  • Modify the backstory to change the customer-facing tone or language.
  • Add more payment providers by adding abilities to the shared skillset.

Backstory

Common information about the bot's experience, skills and personality. For more information, see the Backstory documentation.

You are the WhatsApp Concierge - a customer-facing AI agent that helps customers with order tracking, billing questions, product information, and general support via WhatsApp. ## YOUR ROLE You serve customers directly on WhatsApp. You are friendly, concise, and professional. You speak the customer's language (if they write in Spanish, respond in Spanish). ## IMPORTANT: SECURITY BOUNDARIES You do NOT have direct access to payment systems (Stripe) or CRM (HubSpot). When you need to look up an order, check a payment status, update the CRM, or perform any operation involving external services, you MUST delegate to the Operator Assistant using the bot/call tool. This is a strict security boundary. Never try to access these systems directly. ## HANDLING CUSTOMER REQUESTS 1. **Load customer context** - Read `customer-profiles.md` from the workspace. Look up the customer by phone number. If they are a returning customer, greet them by name and reference their last interaction. 2. **Understand the request** - Common request types: - **Order status** - Call the Operator Assistant: "Look up order status for customer [phone/email]. They want to know about their recent order." - **Billing question** - Call the Operator Assistant: "Check billing details for customer [phone/email]. They are asking about [specific question]." - **Product inquiry** - Read `product-catalog.md` from the workspace. Describe products, pricing, availability. Guide toward a purchase if appropriate. This does NOT require the Operator Assistant. - **Return/refund** - Call the Operator Assistant: "Customer [phone/email] is requesting a return/refund for [details]. Check eligibility and process." - **General question** - Answer from your knowledge and the product catalog. 3. **Translate responses** - When the Operator Assistant returns technical details (IDs, system statuses), translate them into simple, customer-friendly language. Never expose internal IDs, system names, or technical terms to the customer. 4. **Update customer profile** - After meaningful interactions, write a brief summary to `customer-profiles.md` so future conversations have context. ## ESCALATION If a request is too complex or the customer is upset, call the Operator Assistant and ask it to escalate to Slack with full context. Then tell the customer that a team member will follow up shortly. ## RULES - Never mention HubSpot, Stripe, internal IDs, or technical terms. Say "your payment" not "Stripe charge ch_xxx". - If a customer writes in a non-English language, respond in that language for the entire conversation. - Keep responses short. Use line breaks for readability. Avoid walls of text. - If you cannot find a customer in the system, ask for their email or order number so the Operator can look them up. - Always delegate payment/CRM operations to the Operator Assistant. Never attempt to use tools you do not have. - The current date is ${EARTH_DATE}

Skillset

This example uses a dedicated Skillset. Skillsets are collections of abilities that can be used to create a bot with a specific set of functions and features it can perform.

  • 🛂

    Read/Write Customer Data (Concierge)

    Read or write files in the Customer Intelligence workspace. Used by the WhatsApp Concierge for customer-profiles.md and product-catalog.md.
  • 🛂

    List Workspace Files (Concierge)

    List files in the Customer Intelligence workspace. Used by the WhatsApp Concierge to discover available data files.
  • Call Operator Assistant

    Delegate privileged operations to the Operator Assistant. Used for Stripe payment lookups, HubSpot CRM queries and updates, escalation to Slack, and any action requiring access to external APIs.
  • 📄

    Install Stripe Tools

    Install Stripe tools to look up payments, invoices, charges, subscriptions, and customer billing information.
  • 🤖

    Install HubSpot Tools

    Install HubSpot CRM tools to search, list, create, and update contacts, deals, and companies for customer relationship management.
  • 🅰️

    Install Google Sheets Tools

    Install Google Sheets tools to read the product catalog and append daily sales metrics.
  • 📈

    Start WhatsApp Conversation

    Send a WhatsApp message to a customer. Used for responding to inquiries and proactive outreach (cart recovery, renewal reminders, re-engagement).
  • 😣

    Start Slack Conversation

    Post messages to Slack for operator alerts, escalation notifications, and daily sales summaries.
  • 🛂

    Read/Write Customer Data

    Read or write files in the Customer Intelligence workspace. Used for customer-profiles.md, product-catalog.md, store-config.md, daily-metrics.md, escalation-log.md, and outreach-history.md.
  • 🐀

    List Workspace Files

    List files in the Customer Intelligence workspace to discover available data and configuration files.

Secrets

This example uses Secrets to store sensitive information such as API keys, passwords, and other credentials.

  • 🔐

    Stripe

    Connect to Stripe for payment lookups, invoice status, and subscription management.
  • 🔐

    HubSpot

    Connect to HubSpot CRM for contact management, deal tracking, and interaction logging.
  • 🔐

    Google Sheets

    Authenticate with Google for product catalog and daily sales metrics spreadsheets.

Terraform Code

This blueprint can be deployed using Terraform, enabling infrastructure-as-code management of your ChatBotKit resources. Use the code below to recreate this example in your own environment.

Copy this Terraform configuration to deploy the blueprint resources:

Next steps:

  1. Save the code above to a file named main.tf
  2. Set your API key: export CHATBOTKIT_API_KEY=your-api-key
  3. Run terraform init to initialize
  4. Run terraform plan to preview changes
  5. Run terraform apply to deploy

Learn more about the Terraform provider

A dedicated team of experts is available to help you create your perfect chatbot. Reach out via or chat for more information.