Outils MCP — Inbox

Trois outils pour lister les conversations, lire l'historique des messages et envoyer/répondre aux contacts.

L'Inbox est l'endroit où l'agent fait du travail de service client. Trois outils couvrent la boucle : découvrir les conversations, lire l'historique, envoyer le bon message.

Outil Annotation Objectif
list_conversations IsReadOnly, IsIdempotent Conversations récentes + état de la fenêtre 24 h
get_conversation IsReadOnly, IsIdempotent Historique complet des messages pour un contact
send_message IsDestructive(false) Envoie un texte ou un template, avec la bonne politique

list_conversations

List recent conversations (contacts with messages). Ordered by most recent message. Excludes broadcast messages. Each row exposes window_open_until — the deadline of the 24h customer-care window during which free-form text replies are allowed; null if the window is closed (only template messages can be sent).

Entrée Type Notes
unread_only boolean false par défaut
limit integer 25 par défaut

Le champ window_open_until est le plus utile pour un agent — il vous indique si vous pouvez répondre avec du texte libre ou si vous devez utiliser un template.

get_conversation

Get messages for a contact conversation in chronological order. Excludes broadcast messages.

Entrée Type Notes
contact_id UUID requis
limit integer 50 par défaut

Renvoie les messages du plus ancien au plus récent pour que l'agent puisse lire le fil de haut en bas.

send_message

Send a WhatsApp message to a contact, or reply to one. Two types:

  • text — free-form, only works inside the 24h customer service window. Standard "answer a customer" action.
  • template — Meta-approved template. Works any time, including outside the 24h window.
Entrée Type Notes
contact_id UUID l'un des deux
phone string l'un des deux (crée le contact automatiquement)
type string text ou template
text string requis quand type=text
template_id UUID requis quand type=template
language string optionnel ; auto-fallback si non approuvé
variables object requis quand le template a des placeholders

L'agent doit d'abord appeler list_conversations, regarder window_open_until, puis choisir text si la fenêtre est ouverte ou template sinon. Envoyer du texte libre en dehors de la fenêtre renvoie l'erreur Meta 131047 et le message atterrit dans l'inbox avec status: failed.