Case studies · Last updated
travel-whatsapp-booking-bot: an open-source WhatsApp enquiry workflow
An open-source n8n workflow from Codic Systems that reads inbound WhatsApp travel enquiries, asks for what's missing, logs them and passes complex cases to a person.
The problem
Travel agencies get enquiries on WhatsApp at all hours. Each one needs the same few details before a consultant can quote anything: where, when, how many people and roughly what budget. Someone usually types the same follow-up questions again and again.
What it does
The workflow is open source on GitHub. It runs as a single n8n pipeline triggered by a Meta WhatsApp webhook.
- It verifies Meta's signature on every request and rejects the ones that fail.
- It drops delivery and read receipts.
- It sends anything that is not text, such as images, voice notes and locations, straight to a person.
- An LLM turns the message into structured fields: destination, dates as the customer wrote them, number of travellers, budget, trip type and notes.
- The workflow checks the result against a list of required fields. If the output can't be parsed, nothing is guessed and a person takes over.
- Complete enquiries get a confirmation with a reference and are logged to a sheet. Incomplete ones get a short question asking only for what is missing. Complex ones tell the customer a person will follow up and alert the team.
Decisions that mattered
The model extracts, it does not reply. Replies are templates. That way the bot can't quote a price, promise availability or state a policy. A sales conversation is the wrong place for a language model to improvise.
Escalation rules are explicit. Large groups, multi-city trips, visa questions, changes to existing bookings, medical or accessibility needs and complaints all go to a person.
Fail toward a human. Anything the workflow can't handle with confidence ends with a person, not a guess.
Limits, stated plainly
The README is honest about these, and so am I.
- It is not a booking engine. It doesn't check availability, hold inventory or take payment.
- It isn't a multi-turn chatbot. It asks one round of clarifying questions and then hands over.
- Dates are stored as written. "Early June" stays "early June" for a consultant to interpret.
- It does not deduplicate. Meta sometimes redelivers a webhook, which can create a duplicate row.
- It has no template-message support, so replies outside WhatsApp's 24-hour window aren't covered.
- Arabic and Urdu extraction haven't been properly tested.
- Data protection is the operator's responsibility: where it's hosted, how long execution data is kept and what the privacy notice says.
What I'd do next
Deduplication and template messages are the two gaps I'd close first. Both are real in production and both are small to fix.