Some products and features are in the process of being renamed. Generative playbook and flow features are also being migrated to a single consolidated console. See the details.
Stay organized with collections
Save and categorize content based on your preferences.
A Conversational Agents (Dialogflow CX) conversation (session) can be described and visualized as a
state machine.
The states of a session are represented by
pages.
For each
flow,
you define many pages,
where your combined pages can handle a complete conversation
on the topics the flow is designed for.
At any given moment,
exactly one page is the current page,
the current page is considered active,
and the flow associated with that page is considered active.
Every flow has a special
start page.
When a flow initially becomes active,
the start page becomes the current page.
For each conversational turn,
the current page will either stay the same or transition to another page.
You configure each page to collect information
from the end-user that is relevant
for the conversational state represented by the page.
For example, you might create the pages (in blue) in the diagram below
for a Food Order flow of a pizza delivery agent.
The Start node of the diagram
represents the start page of the Food Order flow.
When the flow is complete, it transitions to the Confirmation flow.
Lifecycle of a page
Once a page becomes active,
the agent follows several steps which may involve
entry fulfillment, prefilling forms, state handler evaluation,
form parameter prompting, sending response messages to the end-user,
and either a page change or a repeat loop:
The details of this process are as follows:
If entry
fulfillment
exists for the page, it is called.
Any static responses provided by fulfillment are added to the
response queue.
If partial response
is enabled, Conversational Agents (Dialogflow CX) flushes the response queue and sends all queued
messages as a partial response to the streaming API caller.
If the fulfillment has a webhook, the webhook is called, which may append
additional responses to the queue. These additional responses do not
trigger an immediate flush of the response queue.
If the page has form parameters, they may be pre-filled:
If a
route
triggered a transition to this page,
and the route contains a matched
intent,
any intent parameter with the same name as a
form parameter
is copied to the form parameter.
If any state handlers are
in scope,
they are evaluated according to the
handler evaluation order rules.
This can involve routes, event handlers,
or reprompt handlers invoked from the prior loop iteration.
If any state handler is called,
one or both of the following may happen:
If fulfillment exists for the handler, it is called.
Any static responses provided by fulfillment are added to the
response queue. Partial
response and webhook are also executed if they are enabled.
If a target flow or page exists for the handler,
the session transitions to the target and the page becomes inactive.
If all of the following are true,
a form parameter prompt is added to the response queue:
Partial response and webhook are executed if they are enabled.
The remaining response queue messages are sent to the end-user,
and the agent waits for end-user input.
If end-user input provides a prompted form parameter,
fill the parameter.
Continue to step 3.
Page lifecycle navigation
The simulator execution steps
viewer allows you to switch between the steps for a specific conversation turn
and brings the related agent builder elements into focus for each step. In the
following example, end-user input "I would like to rent a car" triggers five
execution and transition steps:
The executions steps viewer brings you to conversation starting page
for the first step. In this case it's the default start page.
Transition route for the intent car_rental.reservation_create is triggered.
The executions steps viewer brings this route to focus, where you can see
that the transition target is the Pickup Location page.
Agent enters page Pickup Location.
Agent evaluates the entry fulfillment of Pickup Location page. The
fulfillment is empty, so nothing happens.
Agent tries to collect the required form parameter pickup_location and
the initial prompt fulfillment message for this parameter is shown to the
end-user.
You can also undo the last utterance and try something else to test different
page transitions.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eDialogflow CX conversations are structured as state machines, where each state is represented by a page.\u003c/p\u003e\n"],["\u003cp\u003eEach flow in Dialogflow CX can contain multiple pages, and at any given moment, only one page is the active or current page within its flow.\u003c/p\u003e\n"],["\u003cp\u003eThe lifecycle of a page involves entry fulfillment, form pre-filling, state handler evaluation, parameter prompting, sending responses, and potential transitions to other pages.\u003c/p\u003e\n"],["\u003cp\u003ePages collect information from end-users relevant to the current conversational state, using form parameters to capture structured input.\u003c/p\u003e\n"],["\u003cp\u003ePage data includes a display name, entry fulfillment, parameters, routes, route groups, and event handlers, and settings can be accessed and modified through the console or API, allowing for detailed customization.\u003c/p\u003e\n"]]],[],null,["# Pages\n\nA Conversational Agents (Dialogflow CX) conversation (session) can be described and visualized as a\n[state machine](https://en.wikipedia.org/wiki/Finite-state_machine).\nThe states of a session are represented by\n\n*pages*.\n\n\nFor each\n[flow](/dialogflow/cx/docs/concept/flow),\nyou define many pages,\nwhere your combined pages can handle a complete conversation\non the topics the flow is designed for.\nAt any given moment,\nexactly one page is the *current page* ,\nthe current page is considered *active* ,\nand the flow associated with that page is considered *active* .\nEvery flow has a special\n[start page](/dialogflow/cx/docs/concept/flow#start-page).\nWhen a flow initially becomes active,\nthe start page becomes the current page.\nFor each conversational turn,\nthe current page will either stay the same or transition to another page.\n\nYou configure each page to collect information\nfrom the end-user that is relevant\nfor the conversational state represented by the page.\nFor example, you might create the pages (in blue) in the diagram below\nfor a *Food Order* flow of a pizza delivery agent.\nThe *Start* node of the diagram\nrepresents the start page of the *Food Order* flow.\nWhen the flow is complete, it transitions to the *Confirmation* flow.\n\nLifecycle of a page\n-------------------\n\nOnce a page becomes active,\nthe agent follows several steps which may involve\nentry fulfillment, prefilling forms, state handler evaluation,\nform parameter prompting, sending response messages to the end-user,\nand either a page change or a repeat loop:\n\nThe details of this process are as follows:\n\n1. If entry\n [fulfillment](/dialogflow/cx/docs/concept/fulfillment)\n exists for the page, it is called.\n Any static responses provided by fulfillment are added to the\n [response queue](/dialogflow/cx/docs/concept/fulfillment#queue).\n\n If [partial response](/dialogflow/cx/docs/concept/fulfillment#partial-response)\n is enabled, Conversational Agents (Dialogflow CX) flushes the *response queue* and sends all queued\n messages as a partial response to the streaming API caller.\n\n If the fulfillment has a webhook, the webhook is called, which may append\n additional responses to the queue. These additional responses do not\n trigger an immediate flush of the *response queue*.\n2. If the page has form parameters, they may be pre-filled:\n\n - Any set [session parameter](/dialogflow/cx/docs/concept/parameter#session) with the same name as a [form parameter](/dialogflow/cx/docs/concept/parameter#form) is copied to the form parameter.\n - If a [route](/dialogflow/cx/docs/concept/handler#route) triggered a transition to this page, and the route contains a matched [intent](/dialogflow/cx/docs/concept/intent), any intent parameter with the same name as a [form parameter](/dialogflow/cx/docs/concept/parameter#form) is copied to the form parameter.\n3. If any state handlers are\n [in scope](/dialogflow/cx/docs/concept/handler#scope),\n they are evaluated according to the\n [handler evaluation order rules](/dialogflow/cx/docs/concept/handler#eval).\n This can involve routes, event handlers,\n or reprompt handlers invoked from the prior loop iteration.\n If any state handler is called,\n one or both of the following may happen:\n\n - If fulfillment exists for the handler, it is called. Any static responses provided by fulfillment are added to the [response queue](/dialogflow/cx/docs/concept/fulfillment#queue). Partial response and webhook are also executed if they are enabled.\n - If a target flow or page exists for the handler, the session transitions to the target and the page becomes inactive.\n4. If all of the following are true,\n a form parameter prompt is added to the response queue:\n\n - The page has a form.\n - There are required form parameters left to fill.\n - A [reprompt handler](/dialogflow/cx/docs/concept/parameter#reprompt) was not followed in step 3.\n - Partial response and webhook are executed if they are enabled.\n5. The remaining response queue messages are sent to the end-user,\n and the agent waits for end-user input.\n\n6. If end-user input provides a prompted form parameter,\n fill the parameter.\n Continue to step 3.\n\nPage lifecycle navigation\n-------------------------\n\nThe [simulator](/dialogflow/cx/docs/concept/console#simulator) execution steps\nviewer allows you to switch between the steps for a specific conversation turn\nand brings the related agent builder elements into focus for each step. In the\nfollowing example, end-user input \"I would like to rent a car\" triggers five\nexecution and transition steps:\n\n1. The executions steps viewer brings you to conversation starting page\n for the first step. In this case it's the default start page.\n\n2. Transition route for the intent `car_rental.reservation_create` is triggered.\n The executions steps viewer brings this route to focus, where you can see\n that the transition target is the `Pickup Location` page.\n\n3. Agent enters page `Pickup Location`.\n\n4. Agent evaluates the entry fulfillment of `Pickup Location` page. The\n fulfillment is empty, so nothing happens.\n\n5. Agent tries to collect the required form parameter `pickup_location` and\n the initial prompt fulfillment message for this parameter is shown to the\n end-user.\n\nYou can also undo the last utterance and try something else to test different\npage transitions.\n\nCreate a page\n-------------\n\n| **Note:** A page will not appear on the console graph until transitions have been created with a target set to the page.\n\nTo create a page: \n\n### Console\n\n1. Open the [Dialogflow CX console](https://dialogflow.cloud.google.com/cx/projects).\n2. Choose your Google Cloud project.\n3. Select your agent.\n4. Select a flow for the page in the **Flows** section.\n5. Click the add *add* button in the **Pages** section.\n6. Enter a display name for your page.\n7. Click the settings *more_vert* button next to the page display name.\n8. Select **Edit**.\n9. Enter the fields in the page edit panel that appears.\n10. Click **Save**.\n\n### API\n\nSee the `create` method for the `Page` type.\n\n\nGo to the Page API reference \n**Select a protocol and version for the Page reference:**\n\nClose\n\n\u003cbr /\u003e\n\nPage data\n---------\n\nTo access a page's data: \n\n### Console\n\n1. Open the [Dialogflow CX console](https://dialogflow.cloud.google.com/cx/projects).\n2. Choose the Google Cloud project for the agent.\n3. Select your agent.\n4. Click the flow in the **Flows** section.\n5. The flow's pages are populated in the **Pages** section.\n6. Click the settings *more_vert* button next to the page display name.\n7. Select **Edit**.\n8. Enter the fields in the page edit panel that appears.\n9. Click **Save** to save any changes.\n\n### API\n\nSee the `get` and `patch/update` methods for the `Page` type.\n\n\nGo to the Page API reference \n**Select a protocol and version for the Page reference:**\n\nClose\n\n\u003cbr /\u003e\n\nThe following data is associated with pages:\n\n- **Display name**: A human-readable name for your page.\n- **Entry fulfillment** (also known as **Entry dialogue** ): This is the [fulfillment](/dialogflow/cx/docs/concept/fulfillment) to call when the page initially becomes active.\n- **Parameters** : These are the parameter values in a page [form](/dialogflow/cx/docs/concept/parameter#form) that capture structured input from the end-user.\n- **Routes** : These state handlers may be called when the page is active. For details, see [Page-level handler routes](/dialogflow/cx/docs/concept/handler#route-page)\n- **Route groups** : The routes within these groups may be called when the page is active. For details, see [Route groups](/dialogflow/cx/docs/concept/handler#route-group)\n- **Event handlers** : These event handlers may be called when the page is active. For details, see [Page-level event handlers](/dialogflow/cx/docs/concept/handler#event-page)\n\nPage settings\n-------------\n\nThe following settings are available for pages:\n\n- **Advanced speech settings** :\n These [advanced speech settings](/dialogflow/cx/docs/concept/advanced-speech)\n can optionally override the same\n [flow speech settings](/dialogflow/cx/docs/concept/flow#settings)\n and\n [agent speech settings](/dialogflow/cx/docs/concept/agent-settings#settings-speech).\n\n- **Speech adaptation settings** :\n Page level speech adaptation settings can optionally override the same\n [flow speech adaptation settings](/dialogflow/cx/docs/concept/flow#settings).\n More detailed instructions in\n [manual speech adaptation](/dialogflow/cx/docs/concept/speech-adaptation#manual-adaptation).\n\nTo access page settings: \n\n### Console\n\n1. Open the [Dialogflow CX console](https://dialogflow.cloud.google.com/cx/projects).\n2. Choose your Google Cloud project.\n3. Select your agent.\n4. Hover your mouse over the page in the **Pages** section.\n5. Click the options *more_vert* button.\n6. Select **Page settings**.\n7. Browse or edit settings.\n8. Click **Save** to save any changes.\n\n### API\n\nSee the `get` and `patch/update` methods for the `Page` type.\n\n\nGo to the Page API reference \n**Select a protocol and version for the Page reference:**\n\nClose\n\n\u003cbr /\u003e\n\nDelete a page\n-------------\n\nTo delete a page: \n\n### Console\n\n1. Open the [Dialogflow CX console](https://dialogflow.cloud.google.com/cx/projects).\n2. Choose your Google Cloud project.\n3. Select your agent.\n4. Select the flow for the page in the **Flows** section.\n5. Click the settings *more_vert* button next to the page display name in the **Pages** section.\n6. Select **Delete**.\n\n### API\n\nSee the `delete` method for the `Page` type.\n\n\nGo to the Page API reference \n**Select a protocol and version for the Page reference:**\n\nClose\n\n\u003cbr /\u003e"]]