For Marula Journeys, a fictional travel agency: qualify WhatsApp enquiries, hand over to a consultant. Tap a sample message to start. How it works
A proof of concept for Marula Journeys, a fictional travel agency. They needed WhatsApp enquiries qualified one question at a time and handed to a consultant when a person should step in. Try a sample message on the phone, watch the CRM fill in, then press Take over.
Cloudflare Workers, one Durable Object per conversation, Workers AI over the binding. The same agent answers the web phone on this page and real WhatsApp messages through Twilio.
The WhatsApp channel runs through Twilio's sandbox and is switched off on this deployment until its credentials are added. The web phone above runs the same agent.
Each message is stored at once and held. The agent answers two to three seconds after the last one, so "hi / zanzibar / 2 adults / july" gets one reply, not four.
Patterns pull destination, dates, party, budget and name from the words. Workers AI reads the same words through a tool with a strict schema, and any value it proposes that the customer did not write is refused and logged.
Code picks the first missing field and the model only phrases the question. A reply that asks two things, or asks for something already given, is replaced with fixed wording.
Every point is listed: fields given, how soon they travel, whether the budget fits a typical trip, booking language, and the model's intent read as one labelled input.
Takeover pauses the agent in that conversation's Durable Object, including a reply it is still writing. Hand back and it carries on from what it knows.