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.
The waiting room
prebuilt component allows
you to configure your agent so that end-users may ask the agent to hold, for example
in scenarios where the end-user may need some time to retrieve requested information.
Waiting room functionality
is implemented in several prebuilt components and can be added additionally to
non-prebuilt agents and components.
Waiting room does not extend the session's timeout, see
Sessions for default behavior.
By default, the waiting room component will exit after three no-matches or
three no-input built-in events,
timing out according to the no-speech timeout configured in
Advanced speech settings.
To increase this limit, configure the no-match and no-input event handlers in the
Main page.
Waiting room will exit after the session times out or after it has exhausted
the event handlers on the Main page, whichever occurs first.
Sample dialogs
The following sample dialogs demonstrate common scenarios handled by this
prebuilt component.
Successful hold
End-user asks the agent to hold. Once the user says "I'm ready", the agent
returns to the conversation.
User input
Agent response
Please say or enter the first part of your credit card number. You can say "play back" at any time to hear the current collected numbers.
I need a minute
No worries. Let me know when you're ready.
Okay I'm ready now
Let's get you back to where you were.
Please say or enter the first part of your credit card number. You can say "play back" at any time to hear the current collected numbers.
Unrecognized input
User input
Agent response
Please say or enter the first part of your credit card number. You can say "play back" at any time to hear the current collected numbers.
I need a minute
No worries. Let me know when you're ready.
Nice
Sorry, I didn't get that. I'm waiting till you're ready to proceed. You can say "I'm ready" and we'll continue where we left off.
That's fine
Hmm, I still wasn't able to get that. Please make sure you're saying "ready"
I'm not sure
Sorry, I'm having difficulty understanding your response.
Naming conventions
This prebuilt component uses the following naming conventions:
Add a new route using the prebuilt_components_waiting_room intent, which
will make this intent accessible from any page in the flow. For more detail,
see Flow-level routes.
Click Save.
On pages where you want to enable the waiting room, add two new routes.
The first route allows the conversation to return to the page where the
end-user originally asked the agent to hold:
Transition page: should
be set according to what should happen after the end-user has used all their
retry attempts for the waiting room flow, for example routing to another page,
ending the flow, or ending the session.
Complete
Your agent should now be set up and ready to test.
[[["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\u003eThe waiting room prebuilt component allows agents to hold a conversation when end-users need time, with functionality available in prebuilt components and adaptable to non-prebuilt agents.\u003c/p\u003e\n"],["\u003cp\u003eThe waiting room has limitations such as not extending session timeouts and exiting after three no-matches or no-input events, by default.\u003c/p\u003e\n"],["\u003cp\u003eThe component supports scenarios such as a successful hold and a unrecognized input.\u003c/p\u003e\n"],["\u003cp\u003eSetting up the waiting room involves importing the component, adding a new route using the \u003ccode\u003eprebuilt_components_waiting_room\u003c/code\u003e intent, and adding two routes on pages where you want to enable the waiting room.\u003c/p\u003e\n"],["\u003cp\u003eThis component has a specific naming convention for its flows and component specific intents.\u003c/p\u003e\n"]]],[],null,["# Waiting room prebuilt component\n\nThe waiting room\n[prebuilt component](/dialogflow/cx/docs/concept/prebuilt-component) allows\nyou to configure your agent so that end-users may ask the agent to hold, for example\nin scenarios where the end-user may need some time to retrieve requested information.\n[Waiting room functionality](/dialogflow/cx/docs/concept/prebuilt-component#waiting-room-functionality)\nis implemented in several prebuilt components and can be added additionally to\nnon-prebuilt agents and components.\n\nLimitations\n-----------\n\nIn addition to the\n[common prebuilt component limitations](/dialogflow/cx/docs/concept/prebuilt-component#limits),\nthis prebuilt component has the following limitations:\n\n- Waiting room does not extend the session's timeout, see [Sessions](/dialogflow/cx/docs/concept/session) for default behavior.\n- By default, the waiting room component will exit after three no-matches or three no-input [built-in events](/dialogflow/cx/docs/concept/handler#event-built-in), timing out according to the no-speech timeout configured in [Advanced speech settings](/dialogflow/cx/docs/concept/agent-settings#settings-speech). To increase this limit, configure the no-match and no-input event handlers in the `Main` page.\n- Waiting room will exit after the session times out or after it has exhausted the event handlers on the `Main` page, whichever occurs first.\n\nSample dialogs\n--------------\n\nThe following sample dialogs demonstrate common scenarios handled by this\nprebuilt component.\n\n### Successful hold\n\nEnd-user asks the agent to hold. Once the user says \"I'm ready\", the agent\nreturns to the conversation.\n\n### Unrecognized input\n\nNaming conventions\n------------------\n\nThis prebuilt component uses the following naming conventions:\n\nBasic setup\n-----------\n\nTo set up this prebuilt component:\n\n1. [Import the prebuilt component](/dialogflow/cx/docs/concept/prebuilt-component#import).\n2. Open the [Dialogflow CX console](https://dialogflow.cloud.google.com/cx/projects).\n3. Choose your Google Cloud project.\n4. Select your agent.\n5. Select the **Build** tab.\n6. Click the Start Page in the **Pages** section.\n7. Add a new route using the `prebuilt_components_waiting_room` intent, which will make this intent accessible from any page in the flow. For more detail, see [Flow-level routes](/dialogflow/cx/docs/concept/handler#route-flow).\n8. Click **Save**.\n9. On pages where you want to enable the waiting room, add two new routes.\n 1. The first route allows the conversation to return to the page where the end-user originally asked the agent to hold:\n 1. [Condition](/dialogflow/cx/docs/reference/condition): `$session.params.from_waiting_room_reusable_flow = true`\n 2. [Parameter presets](/dialogflow/cx/docs/concept/fulfillment#param-preset):\n - Parameter: `from_waiting_room_reusable_flow`\n - Value: `false`\n 3. [Transition page](/dialogflow/cx/docs/concept/handler#symbolic): Current page\n 2. The second route determines what happens after an end-user has exceeded their retry limit for no-match or no-input in the waiting room flow:\n 1. [Condition](/dialogflow/cx/docs/reference/condition): `$session.params.waiting_room_event_handler = true`\n 2. [Parameter presets](/dialogflow/cx/docs/concept/fulfillment#param-preset):\n - Parameter: `waiting_room_event_handler`\n - Value: `null`\n 3. [Transition page](/dialogflow/cx/docs/concept/handler#symbolic): should be set according to what should happen after the end-user has used all their retry attempts for the waiting room flow, for example routing to another page, ending the flow, or ending the session.\n\n### Complete\n\nYour agent should now be set up and ready to test."]]