Hiberius

Whatsapp Receptionist Builder — AI skill for Claude Code

AI community

Agent Skill for building an AI receptionist on the WhatsApp Cloud API: webhook signature over the raw body, the 24-hour service window, idempotency against Meta retries, and double-booking prevention.

How to install Whatsapp Receptionist Builder

This entry records only its repository, not the path inside it, so there is no exact command to give. Open Hiberius/whatsapp-receptionist-builder and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Whatsapp Receptionist Builder does

Agent Skill for building an AI receptionist on the WhatsApp Cloud API: webhook signature over the raw body, the 24-hour service window, idempotency against Meta retries, and double-booking prevention. Offline tools for signature, window and realistic webhook payloads.

Alternatives in AI

  • Flow Define — Multi-AI requirements scoping using Codex and Gemini CLIs (Double Diamond Define phase) 2.8k ★
  • Lemma Platform — Multiplayer harness that shapes around your work 606 ★
  • Claude Hub — by Claude Did This - A webhook service that connects Claude Code to GitHub repositories, enabling AI-powered c 393 ★

README

WhatsApp Receptionist Builder

**An Agent Skill for building an AI receptionist on the WhatsApp Cloud API: one that answers customers, books real appointments, and does not send the same reply twice. The four traps that break every first implementation, plus offline tooling for the two you cannot test without a phone.**

[![License: MIT](https://img.shields.io/badge/License-MIT-2ea44f.svg)](LICENSE) ![Python 3.8+](https://img.shields.io/badge/python-3.8%2B-3776AB?logo=python&logoColor=white) ![Zero dependencies](https://img.shields.io/badge/dependencies-0-6E56CF) ![WhatsApp Cloud API](https://img.shields.io/badge/WhatsApp-Cloud%20API-25D366?logo=whatsapp&logoColor=white)

npx skills add Hiberius/whatsapp-receptionist-builder

Works with Claude Code, Claude Desktop, Codex, Cursor, Windsurf, OpenClaw and anything else that reads a `SKILL.md`.


The four traps

**1. The signature is over the raw body.** Parse the JSON before verifying and the digest never matches. It presents as a wrong secret, and it is not.

**2. The 24-hour window closes on the customer's last message.** Your replies do not extend it. Every reminder and follow-up you send on a schedule is outside it by definition, so it must be a template approved in advance.

**3. Meta retries.** On timeouts too. Without an idempotency table on the message id, one customer gets two answers and, if the first one booked, two appointments.

**4. Double booking is a race.** Two requests read the same free slot in the same millisecond. No application-level check wins that; a database exclusion constraint does.

Tools that work without a phone number

# is the window open, and how long do I have?
python3 scripts/wa.py window --last-inbound 2026-09-08T09:12:00Z
window closes  2026-09-09T09:12:00+00:00
state          OPEN
remaining      18h 12m
you may send   free-form
# realistic webhook bodies: text, voice note, image, button, delivery status
python3 scripts/wa.py payl