Messaging Me

Use caseYour new users get their welcome on WhatsApp, and take action.

At sign-up, the user who ticked the box gets their welcome on WhatsApp, with a button that takes them to the first action in your product. Where they actually read their messages.

The welcome, then the recovery: 38 seconds.

From the request in Claude Code to the first schedule created, on a real WhatsApp conversation. The same film then shows a failed payment recovery.

How it flows.

The welcome, from sign-up to first useYour appsign-up, box tickedconsent opted_inPOST /v1/sendsOn their WhatsAppthe welcome, one buttonthey tap the buttonTheir first usein your app
Your app sends the welcome with POST /v1/sends, with consent opted_in, to the user who ticked the box; they tap the button, and your app opens on their first use.

Step by step, for real.

  1. 1

    The welcome template

    Claude Code creates it with create_template, in the marketing category: for Meta, a welcome that invites people to use the product is marketing. The first name, and a button to the page that gets the user started; get_template_status confirms the approval.

  2. 2

    The form’s box

    The sign-up form carries a “Get my getting-started tips on WhatsApp” box, unticked by default. Without it, nothing goes out: a marketing template only goes to those who consented.

  3. 3

    The send at sign-up

    Once the account exists, your app sends the template with POST /v1/sends, with the consent and its source: the API writes them on the contact before the marketing filter. An idempotency key taken from the user prevents duplicates.

  4. 4

    The first use

    The user taps the message’s button: your app opens on the page of their first action, their first schedule, their first project.

What you type in Claude Code

With the plugin installed, one sentence is enough. The film’s also wires the failed payment recovery: Claude Code creates both templates, writes the code and tests.

/messagingme:demarrer at sign-up (app/signup.ts), a whatsapp welcome with the link to create their first schedule. and when stripe reports a failed payment, a whatsapp with the link to update their card

The welcome, as Claude Code writes it

import { messagingme } from '../lib/messagingme';

// Call it once the account exists. The template welcome is MARKETING (it invites to use the product): it only
// goes to someone who ticked the WhatsApp box on the sign-up form. It has one variable, the first name, and a URL
// button to the page that creates the first schedule.
export async function sendWelcome(user: { id: string; phone: string; firstName: string; whatsappOptIn: boolean }): Promise<void> {
  if (!user.whatsappOptIn) return;
  const send = await messagingme.POST('/v1/sends', {
    body: {
      target: { template: { name: 'welcome', language: 'en' } },
      recipients: [{
        phone: user.phone,
        variables: { firstName: user.firstName },
        // The ticked box is the consent: written on the contact before the marketing filter.
        consent: 'opted_in',
        consentSource: 'signup form',
      }],
      params: [{ position: 1, source: { type: 'variable', key: 'firstName' } }],
    },
    // Replayed within 24 hours (the life of the key), the welcome does not send twice.
    idempotencyKey: `welcome-${user.id}`,
  });
  // A refused recipient (STOP, no consent, plan limit) is not an error: it is listed in skipped, with its reason.
  if (send.skippedTotal > 0) console.warn(`welcome ${user.id} not sent: ${send.skipped[0]?.reason}`);
}

app/signup.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.
  • Meta bills your business directly for each marketing template, according to its rate card and the user’s country.

Frequently asked questions.

Why marketing, not utility?

Meta classifies as marketing any template that invites people to use the product, and as utility an alert on the account, like a failed payment. A template declared utility with a marketing text is reclassified by Meta.

What about the user who did not tick the box?

They receive nothing: your code does not send it, and the API would set them aside anyway, since a marketing template only goes to those who consented.

How much does a welcome cost?

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

Can they stop receiving messages?

Yes: a user who replies STOP receives nothing more, and their refusal is recorded on the contact.

Welcome your users on WhatsApp.

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