Messaging Me

Use caseFewer missed appointments, with a WhatsApp reminder the evening before.

The evening before, each customer gets their reminder on WhatsApp, with two buttons. They confirm in one tap; if they reschedule, the AI agent offers free slots and your calendar moves the appointment.

The reminder, the answer, the calendar: 38 seconds.

From the request in Claude Code to the moved appointment, on a real WhatsApp conversation.

How it flows.

The reminder the evening before, and the two possible answersYour appthe evening beforePOST /v1/sendsThe customer on WhatsAppthe reminder, two buttons“Confirm”message.received“Reschedule”agent.actionAppointment confirmedin your calendarAppointment movedthe AI agent offers, the app moves
Your app sends the reminder the evening before with POST /v1/sends. The Confirm button comes back through message.received and confirms the appointment; the Reschedule button goes through the AI agent, which triggers agent.action, and your app moves the appointment.

Step by step, for real.

  1. 1

    The reminder template

    Claude Code creates it with create_template: utility category, the first name and the time, two quick reply buttons, “Confirm” and “Reschedule”. Meta approves it, often within minutes.

  2. 2

    The day-before job

    Every evening, your app sends the next day’s reminders with POST /v1/sends, with an idempotency key taken from the appointment: run again, it does not send twice.

  3. 3

    The “Confirm” button

    It comes back in the message.received event, by its label; your route finds the last reminder sent to the number and confirms the appointment.

  4. 4

    The “Reschedule” button

    The AI agent answers and triggers an action set with set_agent_action: your app receives agent.action, offers free slots with POST /v1/messages/whatsapp, then moves the one the customer picks.

What you type in Claude Code

With the plugin installed, one sentence is enough: Claude Code creates the template, sets up the agent, writes the code and tests it.

the day before each appointment (lib/calendar.ts), send a whatsapp reminder with two buttons, confirm and reschedule. if the customer reschedules, the agent offers three free slots and my app moves the appointment

The day-before job, as Claude Code writes it

import { messagingme } from '../lib/messagingme';
import { saveReminder, tomorrowsAppointments } from '../lib/calendar';

// Run once a day, the evening before (a cron of your host). The template appointment_reminder has two variables,
// the first name then the time, and two quick reply buttons: Confirm and Reschedule.
export async function dayBeforeReminders(): Promise<void> {
  for (const appointment of await tomorrowsAppointments()) {
    const send = await messagingme.POST('/v1/sends', {
      body: {
        target: { template: { name: 'appointment_reminder', language: 'en' } },
        recipients: [{ phone: appointment.phone, variables: { firstName: appointment.firstName, time: appointment.time } }],
        params: [
          { position: 1, source: { type: 'variable', key: 'firstName' } },
          { position: 2, source: { type: 'variable', key: 'time' } },
        ],
      },
      // Run twice for the same appointment, the job does not send twice.
      idempotencyKey: `reminder-${appointment.id}`,
    });
    await saveReminder(appointment, send.sendId);
  }
}

jobs/reminders.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 giving their number when booking. A customer who replies STOP receives nothing more.

What if the customer does not answer?

Nothing: the appointment stays as it is, and your calendar shows who confirmed.

How much does a reminder 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.

Can the customer reschedule several times?

A reschedule request goes out at most once a day, per customer and per action: the agent offers slots, the customer picks one, your app books it.

Set up your reminders 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