You know the drill. You type something like:
"I want to buy moisturizer, check the status of my last order, and I need your address."
The chatbot picks one of those (usually the first) and the rest just vanish. You're stuck repeating yourself, clicking through menus again, or giving up entirely.
This isn't a prompting problem. It's an architectural one.
Why most chatbot builders fail at this
Most builders (Dialogflow, Voiceflow, Botpress, you name it) route conversations through tree-like or linear flow structures. One input → one intent → one path. That model breaks the moment a user has more than one thing to say.
Some builders try to work around this by looping back after each task, but that leads to fragile state management and spaghetti flows. The fundamental structure doesn't support it.
I've written more about why conversations don't fit into trees here and why they also don't belong in relational databases here, if you want the deeper reasoning.
The fix: serialize intents before routing
The approach I built into Wanderer works like this:
- User sends a message with multiple requests
- A GPT call extracts and splits the intents into a structured list
- Each intent gets queued as a separate task
- The graph executes them one by one, each in its own context
- Each task knows the full picture — it can say "Let me handle the first of your 3 requests" and "All done — that was the last one"
This is possible because Wanderer uses a reactive graph architecture instead of rigid trees. I call it Reactive Graph Sequencing — nodes react to state changes in the graph rather than following a fixed path. That means dynamically queuing 1, 3, or 7 tasks at runtime isn't a hack, it's how the system naturally works.
Before & after
Without multi-intent serialization:
User: "I want to buy moisturizer, check the status of my last order, and I need your address."
Bot: "Sure, I can help with the moisturizer! Here is a selection.
"
(The other two requests? Gone.)
With serialization:
User: "I want to buy moisturizer, check the status of my last order, and I need your address."
Bot: "Got it — 3 things! Let's start with the address..."
(Then moves on to order status, then moisturizer — automatically.)
Try it yourself
I built a working example you can test right now — no signup, no account needed:
There's a chat embedded on the page. Try throwing multiple requests at it and see what happens.
Why this matters
This isn't just a nice-to-have. If your chatbot handles support or e-commerce, users constantly send multi-intent messages. Dropping those silently means more repeated messages, more frustration, more drop-offs, and ultimately more tickets landing on a human agent's desk.
I'm building Wanderer as a new kind of chatbot builder based on reactive graphs. If the architecture angle interests you, I've written a whole series on the underlying concepts on the Wanderer blog.
Top comments (0)