Flows Stay organized with collections Save and categorize content based on your preferences.
Complex dialogs often involve multiple conversation topics.For example, a pizza delivery agent may havefood order,customer information, andconfirmationas distinct topics.Each topic requires multiple conversational turns for an agentto acquire the relevant information from the end-user.
Flowsare used to define these topics and the associated conversational paths.Every agent has one flow called theDefault Start Flow.This single flow may be all you need for a simple agent.More complicated agents may require additional flows,and different development team members can be responsible for buildingand maintaining these flows.For example, the flows of a pizza delivery agent may look like the following:Default start flow
When you create an agent,theDefault Start Flow is created automatically.For a simple agent,you can use this flow as your only flow.For more complex agents,you can add more flows,and the default start flow can be usedas a simple entry point to the conversation.
Note: TheDefault Start Flow cannot be deleted.When using the API,you can reference the default start flow with the following flow ID:
00000000-0000-0000-0000-000000000000
Flow start page
Every flow has a special page namedStart in the console.When a flow is selected in the console,the start page is shown as a node on the graph.When a flow initially becomes active,this page becomes the current, active page.
A start page does not have parameters or responses messages like normal pages.However, you can send a message by using one of the following approaches:
- Intent propagation
- Use a simple
trueconditionin aroutethat has a fulfillment response ora transition target to a normal page with entry fulfillment. - Custom events
Reference start page in API requests
To reference a flow's start page in runtime API requests, useSTART_PAGE as apage ID.
To make design-time changes to a start page through the API, use theget andpatch/update API methods for theFlow type.
Select a protocol and version for the Flow reference:
| Protocol | V3 | V3beta1 |
|---|---|---|
| REST | Flow resource | Flow resource |
| RPC | Flow interface | Flow interface |
| C++ | FlowsClient | Not available |
| C# | FlowsClient | Not available |
| Go | FlowsClient | Not available |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | Not available | Not available |
| Python | FlowsClient | FlowsClient |
| Ruby | Not available | Not available |
Create a flow
To create a flow:
Console
- Open theDialogflow CX console.
- Choose your Google Cloud project.
- Select your agent.
- Click the addaddbutton in theFlows section.
- SelectCreate flow.
- Enter a display name for your flow.
- Click the flow you just created.
API
See thecreate method for theFlow type.
Select a protocol and version for the Flow reference:
| Protocol | V3 | V3beta1 |
|---|---|---|
| REST | Flow resource | Flow resource |
| RPC | Flow interface | Flow interface |
| C++ | FlowsClient | Not available |
| C# | FlowsClient | Not available |
| Go | FlowsClient | Not available |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | Not available | Not available |
| Python | FlowsClient | FlowsClient |
| Ruby | Not available | Not available |
Flow data
To access a flow's data:
Console
- Open theDialogflow CX console.
- Choose the Google Cloud project for the agent.
- Find the agent in the list.
- Click the agent display name.
- Click the flow in theFlows section.
- The flow's pages are populated in thePages section.See thepages guidefor information on editing pages.
- Click the flow in the graph.
- A flow edit panel appears.Use this panel to browse and edit additional flow data.
- ClickSave to save any changes.
API
For flows, see theget andpatch/update for theFlow type.
Select a protocol and version for the Flow reference:
| Protocol | V3 | V3beta1 |
|---|---|---|
| REST | Flow resource | Flow resource |
| RPC | Flow interface | Flow interface |
| C++ | FlowsClient | Not available |
| C# | FlowsClient | Not available |
| Go | FlowsClient | Not available |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | Not available | Not available |
| Python | FlowsClient | FlowsClient |
| Ruby | Not available | Not available |
get andpatch/update methods for thePage type.Select a protocol and version for the Page reference:
| Protocol | V3 | V3beta1 |
|---|---|---|
| REST | Page resource | Page resource |
| RPC | Page interface | Page interface |
| C++ | PagesClient | Not available |
| C# | PagesClient | Not available |
| Go | PagesClient | Not available |
| Java | PagesClient | PagesClient |
| Node.js | PagesClient | PagesClient |
| PHP | Not available | Not available |
| Python | PagesClient | PagesClient |
| Ruby | Not available | Not available |
The following data is associated with flows:
- Pages:The list of pages that make up the flow.
- Routes:All of these routes may be called when thestart pagefor the flow is active.Routes with an intent requirement may be followed when otherpages of the flow are active.For details, seeState handler scopeandFlow-level routes.
- Event handlers:These handlers may be called when the flow is active.For details, seeFlow-level event handlers
For more information about how data is applied at varying levels, see thedata application levels.
Flow settings
The following settings are available for flows:
- Display name:A human-readable name for the flow.
- Description:A description for the flow.
- ML settingsFlow ML settings are also accessed and described inagent ML settings.
- Language auto detectionLanguage auto detection lets you specify which end-user languages Conversational Agents (Dialogflow CX)should automatically recognize and respond in. See thelanguage auto detection documentationfor details.
Flow lock:A locked flow cannot be edited, including the following changes to its child resources:
- Pages cannot becreated, edited, deleted.
- Versions cannot becreated, edited, deleted.
- Flow-level route groupscannot be created, edited, deleted.
- Agent-level route groupsreferenced by a locked flow or any page under a locked flow cannotbe deleted, but they can still be edited.
Advanced speech settings:Theseadvanced speech settingscan optionally override the sameagent speech settings.
Speech adaptation settings:Flow level speech adaptation settings with more detailed instructions inmanual speech adaptation.
Input parameters:Parameters from the task playbook that are made available to the flow.
Return parameters:Parameters that the flow returns to a task playbook.
For more information about how data is applied at varying levels, see thedata application levels.
To access flow settings:
Console
- Open theDialogflow CX console.
- Choose your Google Cloud project.
- Select your agent.
- Hover your mouse over the flow in theFlows section.
- Click the optionsmore_vertbutton.
- SelectFlow settings.
- Browse or edit settings.
- ClickSave to save any changes.
API
See theget andpatch/update methods for theFlow type.
Select a protocol and version for the Flow reference:
| Protocol | V3 | V3beta1 |
|---|---|---|
| REST | Flow resource | Flow resource |
| RPC | Flow interface | Flow interface |
| C++ | FlowsClient | Not available |
| C# | FlowsClient | Not available |
| Go | FlowsClient | Not available |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | Not available | Not available |
| Python | FlowsClient | FlowsClient |
| Ruby | Not available | Not available |
Delete a flow
To delete a flow:
Console
- Open theDialogflow CX console.
- Choose your Google Cloud project.
- Select your agent.
- Hover your mouse over the flow in theFlows section.
- Click the settingsmore_vertbutton.
- SelectDelete.
API
See thedelete method for theFlow type.
Select a protocol and version for the Flow reference:
| Protocol | V3 | V3beta1 |
|---|---|---|
| REST | Flow resource | Flow resource |
| RPC | Flow interface | Flow interface |
| C++ | FlowsClient | Not available |
| C# | FlowsClient | Not available |
| Go | FlowsClient | Not available |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | Not available | Not available |
| Python | FlowsClient | FlowsClient |
| Ruby | Not available | Not available |
Train a flow
To train a flow:
Console
- Open theDialogflow CX console.
- Choose your Google Cloud project.
- Select your agent.
- ClickAgent Settings.
- Open theML tab.
- To train a single flow, clickTrain in the corresponding row.
- To train multiple flows, select them with checkboxs, thenclickTrain selected flow NLU model.
API
See thetrain method for theFlow type.
Select a protocol and version for the Flow reference:
| Protocol | V3 | V3beta1 |
|---|---|---|
| REST | Flow resource | Flow resource |
| RPC | Flow interface | Flow interface |
| C++ | FlowsClient | Not available |
| C# | FlowsClient | Not available |
| Go | FlowsClient | Not available |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | Not available | Not available |
| Python | FlowsClient | FlowsClient |
| Ruby | Not available | Not available |
Export a flow
You can export a flow in two ways:
Data export:This exports your flow as raw data,so it can be imported to any agent.When you export a flow,the resources referenced by the flow (intents, entities, webhooks)are also exported.When following steps below,choose theraw data data format.
Diagram export (Preview):This exports your flow as a visual diagram.The export format is draw.io XML,so you can import the diagram inLucidchart,diagrams.net,or any other diagram tool that can import the draw.io format.When following steps below,choose theXML data format.
Note:Diagram export is not available for agents usingCMEK.
You can export a flow with the following options:
- Include referenced flows:Exports the target flow and all levels of referenced flows. Referenced flows include the flows that the target flow is referencing in addition to flows referenced by subsequent referenced flows, with no maximum depth.During import, all of the exported flows will be imported and the transitionsbetween these flows will be preserved.
To export a flow:
Console
- Open theDialogflow CX console.
- Choose your Google Cloud project.
- Select your agent.
- Hover your mouse over the flow in theFlows section.
- Click the optionsmore_vertbutton.
- SelectExport flow.
- Follow instructions to complete.
API
See theexport method for theFlow type.
Select a protocol and version for the Flow reference:
| Protocol | V3 | V3beta1 |
|---|---|---|
| REST | Flow resource | Flow resource |
| RPC | Flow interface | Flow interface |
| C++ | FlowsClient | Not available |
| C# | FlowsClient | Not available |
| Go | FlowsClient | Not available |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | Not available | Not available |
| Python | FlowsClient | FlowsClient |
| Ruby | Not available | Not available |
Import a flow
When you import a flow from a source agent to a target agent,the global resources referenced by the flow (intents, entities, webhooks)are imported along with the flow-specific data.If the target agent has any global resourceswith the same display names found in the source agent,Conversational Agents (Dialogflow CX) provides a summary of these resources,along with three options to resolve the conflictsfor these resources:
- Replace existing resources:Source agent resources will overwrite target agent resources.
- Import as new resources:Source agent resources will be added with a distinctive suffix in the name.
- Keep original resources:Target agent resources will be unchanged.
To import a flow:
Console
- Open theDialogflow CX console.
- Choose your Google Cloud project.
- Select your agent.
- Click the addaddbutton in theFlows section.
- SelectImport flow.
- Follow instructions to complete.
API
See theimport method for theFlow type.
Select a protocol and version for the Flow reference:
| Protocol | V3 | V3beta1 |
|---|---|---|
| REST | Flow resource | Flow resource |
| RPC | Flow interface | Flow interface |
| C++ | FlowsClient | Not available |
| C# | FlowsClient | Not available |
| Go | FlowsClient | Not available |
| Java | FlowsClient | FlowsClient |
| Node.js | FlowsClient | FlowsClient |
| PHP | Not available | Not available |
| Python | FlowsClient | FlowsClient |
| Ruby | Not available | Not available |
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-12-15 UTC.