Messaging Me

Cas d’usageVos clients prennent rendez-vous sur WhatsApp, et votre agenda se remplit.

Un client écrit qu’il veut un rendez-vous. L’agent IA lui demande le motif et la ville, votre application lui propose trois créneaux libres de votre agenda, puis réserve celui qu’il choisit et le lui confirme.

La demande, les créneaux, la réservation : 38 secondes.

De la demande dans Claude Code au rendez-vous réservé, sur une vraie conversation WhatsApp.

Comment ça circule.

La demande de rendez-vous, de WhatsApp à votre agenda, et la réponseLe client sur WhatsApp« un devis à Lyon ? »il écritL’agent IAle motif et la villeagent.actionVotre appvotre agendaTrois créneaux, puis la confirmationPOST /v1/messages/whatsapp
Le client écrit sur WhatsApp. L’agent IA note le motif et la ville, et déclenche agent.action vers votre app, qui lit votre agenda et répond par POST /v1/messages/whatsapp avec trois créneaux, puis avec la confirmation.

Pas à pas, avec le vrai.

  1. 1

    Les deux actions de l’agent

    Claude Code les pose par set_agent_action : « Appointment request », qui note le motif et la ville, et « Slot choice », qui note le créneau choisi. L’agent les déclenche de lui-même, au fil de la conversation.

  2. 2

    La demande arrive, signée

    Votre route, déclarée par create_webhook_endpoint, reçoit agent.action (décoché par défaut, on le coche exprès) et vérifie sa signature : une requête sans signature est refusée.

  3. 3

    Trois créneaux libres

    Votre application lit votre agenda près de la ville donnée et répond au client par POST /v1/messages/whatsapp : il vient d’écrire, la fenêtre de 24 heures est ouverte, aucun modèle n’est nécessaire.

  4. 4

    Le créneau réservé

    Le client en choisit un ; l’agent déclenche « Slot choice », et votre application réserve une seule fois par demande, puis confirme sur WhatsApp.

Ce que vous tapez dans Claude Code

Le plugin installé, une phrase suffit : Claude Code règle l’agent, écrit la route et votre lien à l’agenda, et teste.

quand un client demande un rdv sur whatsapp, l’agent IA récupère le motif et la ville, mon app (route /api/webhooks/messagingme) lui propose 3 créneaux libres de l’agenda (lib/agenda.ts), et quand il en choisit un on le réserve et on confirme sur whatsapp

La route, telle que Claude Code l’écrit

import { verifyWebhook, WebhookVerificationError } from '@messagingme/sdk';
import { messagingme } from '../../../../lib/messagingme';
import { book, offerSlots } from '../../../../lib/calendar';

// Subscribed to agent.action: the AI agent’s two actions, Appointment request (fields reason and city) and Slot
// choice (field slot). The type is unchecked by default on a webhook address.
export async function POST(req: Request) {
  // The RAW body: the signature covers its bytes.
  const body = await req.text();
  let event;
  try {
    event = await verifyWebhook({ secret: process.env.MESSAGINGME_WEBHOOK_SECRET!, headers: req.headers, body });
  } catch (e) {
    if (e instanceof WebhookVerificationError) return new Response(null, { status: 401 });
    throw e;
  }
  if (event.type !== 'agent.action' || !event.data.contact) return new Response(null, { status: 204 });
  const { action, fields, contact } = event.data;
  let text: string | null = null;
  if (action.name === 'Appointment request') text = await offerSlots(String(fields.city ?? ''), 3);
  if (action.name === 'Slot choice' && fields.slot !== undefined) text = await book(event.id, String(fields.slot));
  if (text) await messagingme.POST('/v1/messages/whatsapp', { body: { contactId: contact.id, text } });
  // Answer fast (under 10 s): a slow job runs after, otherwise the webhook is retried.
  return new Response(null, { status: 204 });
}

app/api/webhooks/messagingme/route.ts · tout le code dans le guide

Ce que vous payez.

  • L’offre Free suffit pour démarrer : 100 contacts, l’API et le serveur MCP compris ; au-delà, le Pro.
  • L’agent IA se paie sur le crédit IA prépayé, à la réponse.
  • Meta facture directement chaque réponse envoyée dans la fenêtre de 24 heures à votre entreprise, selon sa grille et le pays du client.

Questions fréquentes.

Faut-il un modèle approuvé par Meta ?

Non : le client écrit le premier, et votre application lui répond dans la fenêtre de 24 heures que son message ouvre.

Le même créneau peut-il être réservé deux fois ?

Non : la réservation se fait une seule fois par demande (le même événement reçu deux fois ne réserve qu’une fois), et c’est votre agenda qui dit ce qui est libre.

Et si le client redemande le même jour ?

Chaque action part une fois par jour au plus, par client et par action : une seconde demande le même jour n’atteint pas votre application, l’agent répond seul.

Combien ça coûte ?

La Free inclut l’API et le serveur MCP. L’agent IA se paie sur le crédit IA prépayé, et Meta facture chaque réponse envoyée dans la fenêtre de 24 heures, selon sa grille et le pays du client.

Ouvrez la prise de rendez-vous aujourd’hui.

Le plugin en deux commandes, puis la phrase ci-dessus dans Claude Code. Aucun compte à créer.

Démarrer avec Claude Code · Les tarifs · Tous les cas d’usage