Messaging Me

Use caseYour customers follow their order on WhatsApp, and you know they read it.

As soon as an order moves to shipped, the customer gets their tracking message on WhatsApp. Your admin sees it delivered, then read. If they reply, the AI agent takes the conversation.

The shipment, the tracking, the read receipt: 38 seconds.

From the request in Claude Code to the order marked read, on a real WhatsApp conversation.

How it flows.

The shipping message, its read receipt, and the customer’s replyYour shoporder shippedPOST /v1/sendsThe customer on WhatsApptracking, one buttonDelivered, then readmessage.readThey replyOrder marked Readin your adminThe AI agent answersyour delivery policy
Your shop sends the shipping message with POST /v1/sends. The message.delivered then message.read receipts come back to your route, which marks the order read; if the customer replies, the AI agent takes the conversation.

Step by step, for real.

  1. 1

    The shipping template

    Claude Code creates it with create_template: utility category, the first name and the order number, a “Track my parcel” button to your tracking page. Meta approves it, often within minutes, and get_template_status confirms it.

  2. 2

    The send on shipping

    When an order moves to shipped, your app sends the template with POST /v1/sends, with an idempotency key taken from the order: replayed within 24 hours, it does not send twice. The send identifier it returns is stored on the order.

  3. 3

    Delivered, then read

    Your route, declared with create_webhook_endpoint, receives message.delivered then message.read (unchecked by default, you tick them on purpose): it finds the order by the send identifier and shows it “Read”.

  4. 4

    If they reply

    Their reply opens a conversation, taken by the AI agent that answers for the workspace (set_default_responder), with your delivery policy in its knowledge. On Pro, your team can take over in the console’s Inbox.

What you type in Claude Code

With the plugin installed, one sentence is enough: Claude Code creates the template, wires the send and the route, and tests.

when an order moves to shipped (lib/orders.ts), send the customer a whatsapp with tracking, and mark in the admin when they read it. if they reply, the AI agent takes over

The send on shipping, as Claude Code writes it

import { messagingme } from './messagingme';

// What this case needs from your orders: Claude Code wires these two functions to your own database.
const todo = (what: string): never => { throw new Error(`lib/orders.ts: ${what} is not connected yet`); };
export async function saveSendId(orderId: string, sendId: string): Promise<void> { return todo('saveSendId'); }
export async function setWhatsappStatus(sendId: string, status: 'delivered' | 'read'): Promise<void> { return todo('setWhatsappStatus'); }

// Call it when an order moves to shipped. The template order_shipped has two variables, the first name then the
// order number, and a URL button to your tracking page.
export async function notifyShipped(order: { id: string; phone: string; firstName: string }): Promise<void> {
  const send = await messagingme.POST('/v1/sends', {
    body: {
      target: { template: { name: 'order_shipped', language: 'en' } },
      recipients: [{ phone: order.phone, variables: { firstName: order.firstName, order: order.id } }],
      params: [
        { position: 1, source: { type: 'variable', key: 'firstName' } },
        { position: 2, source: { type: 'variable', key: 'order' } },
      ],
    },
    // Replayed within 24 hours (the life of the key), the shipment does not send twice.
    idempotencyKey: `shipped-${order.id}`,
  });
  // The delivery and read receipts carry this sendId: it ties them back to the order.
  await saveSendId(order.id, send.sendId);
}

lib/orders.ts · all the code in the guide

What you pay.

  • The Free plan is enough to start: 1,000 templates sent a month and 100 contacts, the API and the MCP server included; beyond that, Pro.
  • The AI agent is paid from the prepaid AI credit, per answer.
  • Meta bills your business directly for each utility template, according to its rate card and the customer’s country.

Frequently asked questions.

Must the customer have agreed to receive messages?

Meta asks that the person agreed to be contacted on WhatsApp, for example by ticking it at checkout. A customer who replies STOP receives nothing more.

What if the customer turned off read receipts?

WhatsApp then never sends the read receipt: the order stays “Delivered” in your admin.

How much does a notification cost?

Free includes 1,000 templates a month. Meta bills each utility template to your business, according to its rate card and the customer’s country.

What if the send is replayed?

Within 24 hours, the same idempotency key, taken from the order, returns the same send: the customer gets one message.

Set up your notifications today.

The plugin in two commands, then the sentence above in Claude Code. No account to create.

Get started with Claude Code · Pricing · All use cases