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

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.

Use case overview

The scenario sends the sales manager a personalised WhatsApp template when a new lead is captured. The message includes the lead name, contact details, and source label. A static URL button opens the lead record in CRM.

Template example

🔔 New lead: {{1}}

Contact: {{2}}

Source: {{3}}

Contact the client as soon as possible while interest is high.

Open in CRM
  • {{1}}
    lead name or short label (e.g. Alexey K., B2B request)
  • {{2}}
    lead contact (phone, email, or combined contact line)
  • {{3}}
    lead source (e.g. website form, Instagram ad, partner referral)
  • “Open in CRM”
    button — fixed in the Meta template
WhatsApp Business API for new lead manager notification

When to use it

Reach for this scenario when a new lead lands in CRM or a web form and the assigned sales manager needs to know immediately — not after checking email or refreshing a dashboard. It fits inside sales teams routing form leads to reps, agencies forwarding ad or landing-page leads to the duty manager, and small teams replacing slow email alerts with a mobile-friendly CRM deep link.

Faster follow-up on hot leads
CRM or the lead capture integration emits a new-lead event, and the approved template reaches the manager's phone with the lead name, contact and source as three body variables — before interest cools in the inbox.
Alerts that reach mobile first
The message goes to WhatsApp on the manager's phone instead of email, so the rep sees the lead without opening a dashboard; only an approved template can start the conversation when there is no open chat.
One tap into the CRM record
A static URL button fixed in the Meta template opens the lead record in CRM, so the manager does not hunt for the new entry after reading the alert — only the three body variables are sent via the API.
Logged delivery for routing analytics
The send result is logged after delivery, so CRM or routing workflows can track whether the alert reached the assigned manager.

Workflow

  1. Capture event

    CRM or the lead capture integration emits a new-lead event.

    phone: "+…"

  2. Resolves the manager phone

    The system resolves the manager phone number and lead summary fields.

    phone: "+…"

  3. Build & send

    An internal notification template is built with three body variables and a static URL button.

    POST /sendTemplate

  4. Delivered

    The manager receives the WhatsApp alert on their phone.

    delivered

  5. Status tracked

    Delivery result is logged; the manager opens CRM via the button to follow up.

    status: "read"

WhatsApp Business API for new lead manager notification

Technical implementation

Prerequisites

  1. 1MSG API Key · How to get API Key
  2. WhatsApp Business account · How to Connect WABA
  3. WhatsApp Template · How to Approve WABA Template
  4. Customer opt-in · How to Manage Customers Consent

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)

TEMPLATE_NAME="___"                        # approved template name
TEMPLATE_NAMESPACE="___"                   # template namespace (required — send fails without it)
TEMPLATE_LANGUAGE="___"                    # template language code, e.g. "en"



# === Test data ===
MANAGER_PHONE="___"                 # manager phone in international format
TEST_LEADNAME="___"         # {{1}} lead name
TEST_LEADCONTACT="___"         # {{2}} lead contact
TEST_LEADSOURCE="___"         # {{3}} lead source

PHONE_NORM="$(printf '%s' "$MANAGER_PHONE" | tr -cd '0-9')"

for pair in "CHANNEL_ID=$CHANNEL_ID" "API_TOKEN=$API_TOKEN" \
            "TEMPLATE_NAME=$TEMPLATE_NAME" "TEMPLATE_NAMESPACE=$TEMPLATE_NAMESPACE" \
            "TEMPLATE_LANGUAGE=$TEMPLATE_LANGUAGE" "MANAGER_PHONE=$MANAGER_PHONE" \
            "TEST_LEADNAME=$TEST_LEADNAME" \
            "TEST_LEADCONTACT=$TEST_LEADCONTACT" \
            "TEST_LEADSOURCE=$TEST_LEADSOURCE"; do
    val="${pair#*=}"
    if [ -z "$val" ] || [ "$val" = "___" ]; then
        echo "Missing configuration value: ${pair%%=*}" >&2
        exit 1
    fi
done

if [ -z "$PHONE_NORM" ]; then
    echo "Error: phone number has no digits after normalization" >&2
    exit 1
fi

URL="${API_BASE_URL%/}/${CHANNEL_ID}/sendTemplate"

# params carries body ONLY. Button text is fixed in the Meta template — no button param.

# {{1}} lead name → ${TEST_LEADNAME}
# {{2}} lead contact → ${TEST_LEADCONTACT}
# {{3}} lead source → ${TEST_LEADSOURCE}
read -r -d '' PAYLOAD <<JSON || true
{
  "phone": "${PHONE_NORM}",
  "template": "${TEMPLATE_NAME}",
  "namespace": "${TEMPLATE_NAMESPACE}",
  "language": { "policy": "deterministic", "code": "${TEMPLATE_LANGUAGE}" },
  "params": [
    {
      "type": "body",
      "parameters": [
        { "type": "text", "text": "${TEST_LEADNAME}" },
        { "type": "text", "text": "${TEST_LEADCONTACT}" },
        { "type": "text", "text": "${TEST_LEADSOURCE}" }
      ]
    }

  ]
}
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 manager."
    echo "API response: $BODY"
else
    echo "Send failed. HTTP status: $HTTP_CODE" >&2
    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: template is not definednamespace, template or language is missing from the request body.Send all three. Take namespace and the exact template name from GET /templates; language is an object: {"policy": "deterministic", "code": "en"}.
200template name (…) does not exist in <language>The template is approved in a different language than the one requested.Use the exact language code the template was approved in (for example es_MX is not the same as es). Check it in GET /templates.
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.

All error codes →

Common questions

Related

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
WhatsApp API list message: product catalog picker
This scenario sends an interactive list with sendList during the 24-hour session window.
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
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.
Lead Engagement & Conversion
Lead handoff to sales notice via WhatsApp API
The scenario sends the client a personalised WhatsApp template when their qualified lead is handed off to the sales team.
Lead Engagement & Conversion
First message to a new lead via WhatsApp API
The scenario sends a new lead a personalised WhatsApp template as the first sales touch.

Build for WhatsApp in hours
without infrastructure hassle