I’ve been experimenting with Dialogflow CX, Google’s conversational AI platform, and it feels meaningfully different from what we usually think of as a “conversational agent.” That might be because I haven’t uncovered every corner of it yet—but even at a glance, the design philosophy stands out.
What’s immediately interesting is how a large tech company like Google models agent orchestration at scale. Dialogflow CX is less about a single, free-form chatbot and more about structured conversation design with strong boundaries, transitions, and ownership.
In this post, I’ll break down how Dialogflow CX works, starting with its core building blocks.

Flows
Flows represent the high-level topics or chapters of a conversation.
Where a Page handles a single conversational step, a Flow groups multiple related pages together to accomplish a larger goal.
Key Characteristics of Flows
Organizational Buckets
Instead of one massive and unmanageable conversation graph, Flows let you split functionality into logical domains. For example:
- Billing inquiries
- Technical support
- Account management
Each Flow stays focused on a single feature area.
Entry Point Routing
At runtime, the agent routes user input into the appropriate Flow based on intent detection. This is where the “virtual assistant” decides what kind of problem the user is trying to solve.
Self-Contained Logic
Each Flow owns its pages, transitions, and logic. This makes it much easier for different teams to build, test, and evolve parts of the assistant independently.
Modular Movement Between Flows
A Flow doesn’t have to be the end of the journey. Once a user finishes one task (for example, checking an order status), they can be transitioned cleanly into another Flow (such as updating an address).
Simple Analogy
If your virtual assistant is a book, then Flows are the chapters. Each chapter has multiple pages, but all of them serve a single narrative purpose.

Pages
A Page is where the actual conversation happens.
If a Flow defines the topic, a Page represents a specific step or state within that topic. You can think of it as a single interaction—or even a “screen”—in a mobile app.
What Happens Inside a Page
Once a user lands on a Page, Dialogflow CX processes a predictable sequence of steps:
- Entry Fulfillment – the bot responds immediately
- External Webhook – the bot fetches or sends data
- Session Parameters – results are stored in memory
- State Handlers – logic determines what happens next
This structure makes the conversation feel responsive while still being data-driven.
Why Pages Work So Well
Focused Responsibility
Each Page usually tries to collect or act on one piece of information—such as a date, confirmation, or identifier.
Decision Hub
The Page acts as the control point that decides whether to:
- Move to another Page
- Jump to a different Flow
- End the conversation entirely
Entry Fulfillment and Webhooks
Entry Fulfillment and Webhooks work together to balance user experience and backend logic. A useful mental model here is “greeting first, deep work second.”
How They Work Together
Let’s walk through the sequence:
Step 1: Entry Fulfillment (The Immediate Response)
As soon as a user enters a Page, the Entry Fulfillment fires.
This is typically a short message like:
“Let me check your order status for you…”
It reassures the user that something is happening—even while the system is still working behind the scenes.
Step 2: External Webhook (The Real Work)
Next, the Page calls an External Webhook.
This is a standard API request to your backend—for example, querying a database with a user ID to retrieve shipping details.
Step 3: Session Parameters (The Memory)
The webhook response is saved into Session Parameters.
This data becomes the bot’s short-term memory and is used to:
- Construct the final response
- Drive conditional logic
- Decide which path to take next
Why This Pattern Is Powerful
The bot isn’t just reciting scripted responses. Entry Fulfillment keeps the conversation feeling natural, while Webhooks inject real-time, personalized data. Together, they turn the assistant into a dynamic system instead of a static flowchart.
State Handlers
State Handlers are the control center of a Page.
Once data is available (or an error occurs), State Handlers evaluate the situation and determine the next transition. Dialogflow CX processes them in a specific priority order.
1. Intent Routes (The “What”)
These routes listen for explicit user intents.
If the user says something like:
“I want to cancel my order”
…the Intent Route immediately transitions to the relevant cancellation page, regardless of the current step.
2. Condition Routes (The “Logic”)
Condition Routes evaluate session data using if/then logic.
For example:
- If
$order_status == "delivered"→ go to the feedback page - If
$payment_failed == true→ escalate to support
These routes rely entirely on Session Parameters populated earlier.
3. Event Handlers (The “Exceptions”)
Event Handlers catch system-level situations, such as:
- Webhook failures
- No-input or no-match scenarios
- Timeouts or unexpected errors
This is where recovery logic lives.
The Outcome: Transitions
No matter which handler triggers, the result is always a Transition. From there, Dialogflow CX supports three outcomes:
- Move to a New Page
- Move to a New Flow
- End the Session
This consistent model is what makes complex conversations manageable—even at scale.
Final Thoughts
What stands out most about Dialogflow CX is that it doesn’t treat conversation as something fuzzy or purely probabilistic. Instead, it treats it as a system—one with structure, boundaries, ownership, and explicit transitions.
Flows and Pages feel less like a chatbot and more like a state machine for human interaction. That can feel rigid at first, especially if you’re coming from an LLM-first mindset where everything is flexible and emergent. But that rigidity is also the point. It makes conversations observable, testable, and debuggable—qualities that matter a lot once an assistant moves beyond a demo and into production.
This design also reveals how Google thinks about scale:
- Teams need clear ownership over parts of the conversation
- Logic needs to be inspectable, not implicit
- Failures need first-class handling, not best-effort guessing
Dialogflow CX isn’t trying to be a “thinking agent.” It’s trying to be a reliable conversational workflow engine. And in domains where correctness, predictability, and compliance matter more than creativity, that trade-off starts to look very intentional.


