💬 Shared WhatsApp Inbox on the new PlatformMore
1msg official logo

WhatsApp API list message: product catalog picker

This scenario sends an interactive list with sendList during the 24-hour session window.

Use case overview

This scenario sends an interactive list with sendList during the 24-hour session window. Two sections group product rows; the client opens the catalog and selects an item.

Template example

Browse our catalog for {{1}}:

  • {{1}}
    campaign or product context shown in the list header text
WhatsApp Business API for product catalog — interactive list

When to use it

Reach for this scenario when a WhatsApp sales campaign already has an open session and the buyer needs to pick a SKU without an agent pasting long product lists. It fits teams running promotional sends where a structured catalog beats free-text and manual SKU entry would slow checkout.

Less buyer drop-off mid-chat
sendList replaces pasted SKU walls with two grouped sections and a View catalog button, so the buyer selects inside WhatsApp instead of abandoning a hard-to-scan text list on mobile.
No manual sku entry
The client taps a product row in the interactive list and your inbound webhook receives the row id, so agents and backends skip retyping SKUs from chat.
Campaign context in one variable
One body variable carries the campaign or promo label in the list header text, so the same list layout works across offers without rewriting the message body.
Checkout continues from the selection
The webhook passes the product row id to your CRM or storefront, which continues the order or follow-up flow from that SKU instead of asking the buyer to repeat their choice.

Workflow

  1. Customer acts

    A campaign event or client reply keeps the session open.

    user action

  2. Capture event

    Your backend builds a two-section interactive list with product rows.

    POST /send_list

  3. Taps View catalog

    The client taps View catalog and selects a product.

    user action

  4. Delivered

    The webhook returns the row id for order or CRM processing.

    delivered

WhatsApp Business API for product catalog — interactive list

Technical implementation

Prerequisites

  1. 1MSG API Key · How to get API Key
  2. WhatsApp Business account · How to Connect WABA
  3. Open 24-hour session window · How the 24-hour window works
  4. Customer opt-in · How to Manage Customers Consent
  5. Webhook endpoint · How to Set Up Webhooks

Code examples

#!/usr/bin/env bash
set -euo pipefail

# === Configuration (replace "___" placeholders) ===
API_BASE_URL="https://api.1msg.io"        # production 1MSG API base URL
CHANNEL_ID="___"                           # channel ID from 1MSG dashboard
API_TOKEN="___"                            # channel JWT token (Bearer)



# === Test data ===
TEST_PHONE="___"                 # client phone in international format
TEST_PRODUCTCONTEXT="___"         # {{1}} product context

PHONE_NORM="$(printf '%s' "$TEST_PHONE" | tr -cd '0-9')"
URL="${API_BASE_URL%/}/${CHANNEL_ID}/sendList"

read -r -d '' PAYLOAD <<JSON || true
{
  "phone": "${PHONE_NORM}",
  "body": "Browse our catalog for spring promotion:",
  "buttonText": "View catalog",
  "action": "catalog",
  "sections": [{"title":"Featured products","rows":[{"id":"prod_alpha","title":"Alpha Widget","description":"Compact model"},{"id":"prod_beta","title":"Beta Widget","description":"Standard model"}]},{"title":"Bundles","rows":[{"id":"bundle_starter","title":"Starter pack","description":"Two items included"},{"id":"bundle_pro","title":"Pro pack","description":"Four items included"}]}]
}
JSON

RESPONSE="$(curl -s -w '\n%{http_code}' -X POST "$URL" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -d "$PAYLOAD")"

HTTP_CODE="$(printf '%s' "$RESPONSE" | tail -n1)"
BODY="$(printf '%s' "$RESPONSE" | sed '$d')"

case "$BODY" in
  *'"sent":true'*) ok=1 ;;
  *) ok=0 ;;
esac

if [ "$HTTP_CODE" -ge 200 ] && [ "$HTTP_CODE" -lt 300 ] && [ "$ok" -eq 1 ]; then
  echo "Message sent to client."
else
  echo "$BODY" >&2
  exit 1
fi

Response and delivery status

HTTP 2xx and JSON "sent": true mean 1MSG accepted the message for sending — not that it already reached the customer's phone. Save the id field (looks like wamid.…) to correlate delivery callbacks.

200 OKResponse
{
  "sent": true,
  "message": "Sent to [email protected]",
  "description": "Message has been sent to the provider",
  "id": "wamid.HBgLMzgwNjM5..."
}
  • sent

    Accepted for sending — not yet on the customer's phone

  • id

    Store it; delivery callbacks and hookInfo are keyed on this

Delivery statuses and webhooks →

Common errors

StatusAPI responseCauseFix
200Message was not sent: provide chatId, phone, bsuid, or usernameNo recipient the channel could resolve.Pass exactly one recipient: phone (country code plus number, digits only), chatId (for example [email protected]) or bsuid.
200Message was not sent: empty bodyThe body field is missing or empty.Send a non-empty body string. It is required for text, reply-button and list messages.
401token is requiredThe request has no token.Add your channel token as the token query parameter: https://api.1msg.io/{channelId}/{method}?token=…

All error codes →

Common questions

Related

Lead Engagement & Conversion
Auto-reply to inbound leads via WhatsApp API
This scenario sends a free-text WhatsApp message with sendMessage inside the 24-hour customer service window after the client wrote first about a product or service.
Lead Engagement & Conversion
Reply to stock availability questions (WhatsApp API)
This scenario sends a free-text WhatsApp message with sendMessage inside the 24-hour customer service window after the client asks if an item is available.
Lead Engagement & Conversion
Purchase decision nudge with WhatsApp buttons
This scenario sends a prospective customer a personalised WhatsApp template while they are still deciding.
Lead Engagement & Conversion
Proposal follow-up reminder via WhatsApp API
The scenario sends the prospect a personalised WhatsApp template message reminding them to review the commercial proposal.
Lead Engagement & Conversion
Consultation invite via WhatsApp API template
The scenario sends the customer a personalized WhatsApp template message inviting them to a pre-purchase consultation.
Lead Engagement & Conversion
New lead alert to sales manager via WhatsApp API
The scenario sends the sales manager a personalised WhatsApp template when a new lead is captured.
Lead Engagement & Conversion
Start lead qualification via WhatsApp API
This use case sends a new lead an approved WhatsApp template with a personalized greeting: the message substitutes the lead's name and product or source context, and the «Начать» (Start) quick-reply b
Lead Engagement & Conversion
Lead re-engagement message via WhatsApp API
The scenario sends the lead a personalised WhatsApp template when they did not reply to a prior sales message within the expected time.

Build for WhatsApp in hours
without infrastructure hassle