User Manual

Merchant Documentation

ChatCart User Manual

Everything you need to connect WhatsApp to your Shopify store, automate order messages, and let AI handle customer support.

🤖 AI Chatbot 📦 Order Notifications 🛒 Abandoned Cart 💵 COD Verification 📊 Analytics

Getting Started

What is ChatCart?

ChatCart connects your Shopify store to WhatsApp Business. When a customer places an order, abandons their cart, or messages your WhatsApp number — ChatCart handles it automatically with AI-powered responses and real-time Shopify data.

🤖

AI Chatbot

Answers customer questions about orders, products, and returns using live Shopify data.

📦

Order Notifications

Automatic WhatsApp messages for order confirmation, shipping, and delivery.

🛒

Abandoned Cart

Recover lost sales with automated cart reminder messages at 1h, 24h, and 72h.

💵

COD Verification

Confirm cash-on-delivery orders via WhatsApp before processing to reduce returns.

🪄

Store Widget

A WhatsApp chat button on your store pages for direct customer contact.

📊

Analytics

Track message delivery, read rates, cart recovery revenue, and COD confirmation rates.

📦 Installation

ChatCart is installed from the Shopify App Store like any other app.

Install from Shopify App Store

Search for ChatCart in the Shopify App Store and click Add app. You'll be redirected to your Shopify admin to approve permissions.

Approve permissions

ChatCart needs access to orders, products, customers, and checkouts to send the right messages at the right time. Click Install app.

Connect WhatsApp

After install, you'll land on the setup page. Connect your WhatsApp Business account using Quick Setup (recommended) or Manual Setup.

ℹ️
What you need before starting A Facebook account and a phone number not currently registered on personal WhatsApp. Your phone number will be used as your WhatsApp Business number.

⚡ Quick Start Checklist

Follow these steps to go live in under 10 minutes.

StepActionWhere
1Connect WhatsApp via Quick SetupApp → WhatsApp Setup
2Verify webhook in Meta Developer ConsoleMeta Dashboard
3Enable message templatesApp → Templates
4Send a test messageApp → WhatsApp Setup → Test
5Install the store widgetApp → Widget → Enable

WhatsApp Setup

✨ Quick Setup (Recommended)

Quick Setup uses Meta's Embedded Signup to connect your WhatsApp Business account in one click — no copy-pasting tokens or IDs.

What Quick Setup does automatically Creates your WhatsApp Business Account, subscribes webhooks, registers your phone number, and encrypts your credentials — all in about 3 minutes.

Go to WhatsApp Setup

In the ChatCart app, click WhatsApp Setup in the sidebar. You'll see the Quick Setup card at the top.

Click "Connect WhatsApp Business"

A Facebook popup will open. Log in with your Facebook account that has admin access to your Meta Business account.

Follow the Facebook wizard

Select or create your WhatsApp Business Account (WABA), add your business phone number, and verify it via SMS or call.

Wait for connection

ChatCart automatically saves your credentials. The setup page will refresh showing "WhatsApp Connected" with your phone number and business name.

⚠️
Phone number requirement The phone number you add must NOT be currently active on personal WhatsApp or WhatsApp Business app. Use a dedicated business number.

🔧 Manual Setup

Use Manual Setup if you already have a Meta Business account and WhatsApp Business Account with credentials.

Where to find your credentials

FieldWhere to find it
Phone Number ID Meta Dashboard → Your App → WhatsApp → API Setup → Phone Number ID
WABA ID Meta Business Manager → WhatsApp Accounts → click your account → ID shown at top
Access Token Meta Business Manager → System Users → Generate token (select whatsapp_business_messaging scope)
Webhook Verify Token Any secret string you choose — you'll enter the same string in Meta's webhook config

Go to Manual Setup

In the app, go to WhatsApp Setup → Use Manual Setup. Complete steps 1 and 2 (Meta Business Account setup) then move to Step 3: API Credentials.

Enter your credentials

Fill in Phone Number ID, WABA ID, Access Token, and your business phone number. Click Save credentials.

Send a test message

Enter your phone number (with country code, no +) and click Send test message. You should receive a WhatsApp message within seconds.

🔒
Security All access tokens are encrypted at rest using AES-256-GCM encryption before being stored in the database.

🔗 Webhook Configuration

The webhook allows Meta to send incoming customer messages to ChatCart so the AI bot can respond.

Webhook settings

SettingValue
Callback URL https://chatcart.appaza.dev/api/whatsapp/webhook
Verify Token The webhook verify token you set in Manual Setup, or your CRON_SECRET value
Subscribed fields messages (required for AI chatbot to work)

Open Meta Developer Console

Go to developers.facebook.com → your app → WhatsApp → Configuration.

Add webhook URL

Click Edit next to Webhook. Enter the Callback URL and Verify Token. Click Verify and save.

Subscribe to messages

After saving, click Manage next to Webhook fields. Find messages and click Subscribe.

⚠️
Without messages subscription, the AI chatbot will not work. The webhook must be verified and the messages field must be subscribed for ChatCart to receive and reply to incoming WhatsApp messages.

Features

🤖 AI Chatbot

The AI chatbot automatically replies to customer WhatsApp messages with accurate information pulled live from your Shopify store.

How it works

Hi! Do you have blue shirts in size M?
Customer
Yes! 👕 We have the Blue Oxford Shirt in M for $29.99 — currently in stock. Shop here: yourstore.com/products/blue-oxford
ChatCart AI

Supported intents

Customer saysIntentWhat AI does
"Where is my order?" ORDER_STATUS Fetches their orders from Shopify by phone number, reports status + tracking
"Do you have blue shirts?" PRODUCT_QUERY Fetches live product catalog with prices and stock status
"What would you recommend?" RECOMMENDATION Shows available products and suggests based on context
"I want to return my order" RETURN_REFUND Looks up customer orders, guides through return process
"Hi / Hello" GREETING Sends a welcome message instantly (no AI needed)
ℹ️
The AI only uses real data It never invents product names, prices, or order details. If no data is found for a query, it tells the customer to contact your support team.

Conversation memory

ChatCart remembers the last 10 messages per customer session, so the AI understands context across a conversation (e.g., follow-up questions about the same order).

📋 Message Templates

Templates are pre-approved WhatsApp messages sent automatically when Shopify events occur. They must be approved by Meta before they can be used.

Default templates included

TemplateTriggerStatus
Order confirmation Order placed Auto-approved
Order shipped Fulfillment created Auto-approved
Order delivered Fulfillment delivered Auto-approved
Order cancelled Order cancelled Auto-approved
Abandoned cart – 1h Cart abandoned 1 hour ago Pending approval
Abandoned cart – 24h Cart abandoned 24 hours ago Pending approval
Abandoned cart – 72h Cart abandoned 72 hours ago Pending approval
COD verification Cash-on-delivery order placed Pending approval
Welcome message First contact from customer Pending approval

Editing a template

Go to Templates page

In the app sidebar click Templates. You'll see all templates with their current status.

Click Edit on a template

You can edit the message body text. Use {{variable_name}} placeholders — for example {{customer_name}} or {{order_number}}.

Enable or disable

Toggle a template off to stop sending that message type without deleting it.

⚠️
Meta approval required for marketing templates Abandoned cart and welcome templates are classified as marketing messages. They must be approved by Meta (usually within 24 hours) before they can be sent.

🛒 Abandoned Cart Recovery

When a customer adds items to their cart but doesn't check out, ChatCart sends automatic reminders at three intervals.

Time after abandonmentTemplateIncludes
1 hour abandoned_cart_1h Customer name, recovery link
24 hours abandoned_cart_24h Customer name, 10% discount code, recovery link
72 hours abandoned_cart_72h Customer name, 15% discount code, recovery link (last chance)
ℹ️
Requirement Abandoned cart messages only send if the customer provided a phone number during checkout. The abandoned_cart templates must also be approved by Meta.

Monitoring recovery

Go to Analytics → Abandoned Carts to see how many carts were recovered and the total recovery revenue for the period.

💵 COD Verification

For cash-on-delivery orders, ChatCart sends a WhatsApp message with confirm/cancel buttons before processing the order. This reduces failed deliveries and unnecessary shipping costs.

Hi Sarah, please confirm your COD order #1042 for 89.00 USD. Tap below:

How it works

  1. Customer places a COD order on your Shopify store
  2. ChatCart detects the payment gateway contains "cash"
  3. A WhatsApp interactive message is sent with Confirm / Cancel buttons
  4. Customer taps Confirm → order is processed normally
  5. Customer taps Cancel → order is cancelled, analytics updated
COD stats in Analytics Track how many COD orders were confirmed vs cancelled under Analytics → COD Verification.

🪄 WhatsApp Widget

The widget adds a WhatsApp chat button to your store so customers can contact you directly.

Widget settings

SettingDescription
PositionBottom-right or bottom-left corner of the page
Button colorDefault WhatsApp green — customizable
Pre-filled messageMessage pre-typed when customer opens WhatsApp
Show on pagesControl which page types show the widget (product, cart, home, collection)
Welcome bubbleA pop-up text above the button after a delay
Product buttonAn "Order via WhatsApp" button on product pages
DelaySeconds before the widget appears after page load

Enabling the widget

Go to Widget in the sidebar, toggle Enable widget on, configure your settings, and click Save. The widget appears on your live store immediately.


Management

📊 Analytics

The Analytics page shows a 30-day summary of your WhatsApp performance.

MetricDescription
Messages SentTotal WhatsApp messages dispatched
DeliveredMessages confirmed delivered to customer's device
Read Rate% of messages opened and read by the customer
Carts RecoveredAbandoned carts where customer completed checkout after receiving a reminder
Recovery RevenueTotal order value from recovered carts
COD ConfirmedCOD orders confirmed via WhatsApp
COD RejectedCOD orders cancelled by customer

⚙️ Settings

Business hours

Set the hours during which automated messages are sent. Messages triggered outside these hours are queued or skipped depending on your Fallback behavior setting.

Default language

Sets the language preference passed to the AI chatbot. The AI will reply in this language when possible.

Timezone

Used for business hours calculations. Set this to your store's local timezone.

Fallback behavior

OptionWhat happens outside business hours
log_onlyMessage is logged but not sent
send_anywayMessage is sent regardless of hours
queueMessage is queued to send when hours resume

💎 Plans & Limits

PlanMonthly messages
Free50 messages
Starter500 messages
Growth2,000 messages
Pro10,000 messages
ℹ️
Message counting Only outbound template messages (order notifications, cart reminders) count against your quota. AI chatbot replies in the 24-hour service window are free-form messages and counted separately by Meta.

To upgrade your plan, go to Settings → Plan and select the plan you need.


Help

❓ Frequently Asked Questions

Why is the AI chatbot not replying to customer messages?
The most common reasons: (1) The Meta webhook is not subscribed to the messages field — go to Meta Developer Console → WhatsApp → Configuration and subscribe. (2) Your WhatsApp account is a test number — test numbers cannot receive real messages from customers. (3) The AI provider API key is not set in your environment variables.
The customer's phone number format — what is accepted?
Phone numbers should include the country code without the + sign. For example, a Bangladesh number would be 8801712345678. Make sure your customers enter their phone number in this format at checkout.
My templates are still "Pending" — what should I do?
Meta reviews marketing templates (abandoned cart, welcome) within 24–48 hours. Utility templates (order confirmation, shipping) are usually approved faster. If a template is rejected, you'll need to edit the text and resubmit from Meta Business Manager.
Can I use my existing WhatsApp Business number?
Only if it is not registered on the WhatsApp Business App. Once a number is used with the WhatsApp Business API (via Meta Cloud API), it cannot be used on the regular app simultaneously.
How do I change my connected WhatsApp number?
Go to WhatsApp Setup → Update Credentials. You can re-run Quick Setup to connect a different number, or enter new credentials via Manual Setup. The old number's connection will be replaced.
Abandoned cart messages are not being sent — why?
Check these: (1) The abandoned cart template must be approved by Meta — pending templates won't send. (2) The customer must have entered a phone number at checkout. (3) The cron job that processes abandoned carts must be running — contact support if you see no activity in the Abandoned Carts page.
The AI replied with "I'm having trouble" — what happened?
This means the AI request to OpenRouter failed. Common causes: the AI model name is incorrect (check OPENROUTER_MODEL env var — use meta-llama/llama-3.3-70b-instruct:free), the API key is invalid, or the model hit its rate limit. Check your Coolify logs for [AI bot error] entries.
Will the AI make up product information?
No. The AI is instructed never to invent product names, prices, or order details. It only uses data fetched live from your Shopify store. If no data is found, it tells the customer it cannot help and directs them to contact your team.

🛠️ Troubleshooting

Webhook verification fails

Error: "Webhook verification failed" The verify token you entered in Meta doesn't match what ChatCart expects. Make sure you're using the same token you saved in Manual Setup, or use the value of your CRON_SECRET environment variable.

Messages not sending — "WhatsApp not configured"

The shop has no active WhatsApp configuration. Go to WhatsApp Setup and complete the connection. Make sure the setup shows "WhatsApp Connected".

Phone registration failed

Error code 133005 means a PIN is already set — this is normal and harmless. Any other phone registration error means the phone number ID or access token is wrong.

Token expired

User access tokens expire. For production, always use a System User token from Meta Business Manager which does not expire. Go to Manual Setup → Update Credentials to enter a new token.

Reading Coolify logs

Open your Coolify dashboard → ChatCart service → Logs. Key log lines to look for:

# Webhook receiving messages ✅
POST /api/whatsapp/webhook 200

# AI context fetching ✅
[context-fetcher] intent=PRODUCT_QUERY shop=yourstore.myshopify.com

# AI error ❌
[AI bot error]: OpenRouter error 400: ...

# No session found ❌
[context-fetcher] No Shopify session found for yourstore.myshopify.com

Still stuck?

Email support at support@chatcart.app with your shop domain and a screenshot of the Coolify logs showing the error.