From d99ce4fb2d5f6220e7c3ea2a20623a5622970d0a Mon Sep 17 00:00:00 2001 From: Angela Costa Date: Mon, 28 Apr 2025 10:03:09 +0100 Subject: [PATCH 1/3] Updates to WR docs --- .../how-to/customize-waiting-room.mdx | 29 +++++++++++++++++++ src/content/docs/waiting-room/plans.mdx | 2 ++ .../reference/queueing-methods.mdx | 2 ++ src/content/plans/index.json | 22 +++++++------- 4 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/content/docs/waiting-room/how-to/customize-waiting-room.mdx b/src/content/docs/waiting-room/how-to/customize-waiting-room.mdx index 7aa46aab1324f3..490f232cef6101 100644 --- a/src/content/docs/waiting-room/how-to/customize-waiting-room.mdx +++ b/src/content/docs/waiting-room/how-to/customize-waiting-room.mdx @@ -96,6 +96,35 @@ The following script within the `` section after `
` fetches the wait ``` +#### Turnstile + +If you are using Turnstile for your customized waiting room, you will need to ensure the `turnstile` variable is added. The default queuing page template and any newly created custom templates already include this variable. If you have an existing custom HTML template and wish to enable the Turnstile integration, you will need to add `{{{turnstile}}}` somewhere in the template to let Waiting Room know where the widget should be placed. Waiting Room uses Mustache templates, so including raw HTML within your template without escaping requires three curly braces instead of two. + +```html + + + + Waiting Room + + +

You are currently in the queue.

+ {{#waitTimeKnown}} +

Your estimated wait time is {{waitTimeFormatted}}.

+ {{/waitTimeKnown}} + {{^waitTimeKnown}} +

Your estimated wait time is unknown.

+ {{/waitTimeKnown}} + {{#turnstile}} + +

Please complete this challenge so we know you're a human:

+ {{{turnstile}}} + {{/turnstile}} + + +``` + +When using Infinite Queue (especially with managed challenges which may be interactive), you may want to let users know that they will not be in the queue until they complete the challenge. + #### Available variables When you create a waiting room with custom HTML, you can have access to several variables to customize your response. For a full list of variables, refer to the `json_response_enabled` parameter in the [Cloudflare API docs](/api/resources/waiting_rooms/methods/create/). diff --git a/src/content/docs/waiting-room/plans.mdx b/src/content/docs/waiting-room/plans.mdx index c48bba34d7bba7..d32c210b123bff 100644 --- a/src/content/docs/waiting-room/plans.mdx +++ b/src/content/docs/waiting-room/plans.mdx @@ -14,6 +14,8 @@ import { FeatureTable, Render } from "~/components" The features available for a waiting room depend on your plan type. You can only have **one plan** per zone. +One basic waiting room is included in all Business and Enterprise plans. On an Enterprise plan, you can purchase advanced waiting room(s) to unlock all of the additional advanced features. + diff --git a/src/content/docs/waiting-room/reference/queueing-methods.mdx b/src/content/docs/waiting-room/reference/queueing-methods.mdx index 36eaf3c3fc9423..be2df81e95205f 100644 --- a/src/content/docs/waiting-room/reference/queueing-methods.mdx +++ b/src/content/docs/waiting-room/reference/queueing-methods.mdx @@ -42,6 +42,8 @@ Allow all traffic to pass immediately through your waiting room and into your ap Use this setup when you only want to use your waiting room for events — where you can update the queueing method — and otherwise avoid queueing during low-traffic hours. +Additionally, you can use this queuing method when you want to gather analytics on your traffic but do not want to queue any users. With passthrough on, all traffic will be sent directly to your origin, however analytics will be gathered on `total active users`, `new users per minute` and `time on origin`. We recommend this as a useful test to gather insights into your traffic patterns and help determine appropriate threshold settings. + ## Reject Prevent any traffic from reaching your application by setting its `queueing_method` to **reject**. Users will get a static page. diff --git a/src/content/plans/index.json b/src/content/plans/index.json index 8a14bb4a8e3d46..3537c08da22850 100644 --- a/src/content/plans/index.json +++ b/src/content/plans/index.json @@ -3187,7 +3187,7 @@ "free": 0, "pro": 0, "biz": 1, - "ent": "1 (default)\n\nWith add-on\nCustom (can purchase more)" + "ent": "1 (default)\n\nWith advanced:\nCustom (can purchase more)" }, "customized_templates": { "title": "Customized templates", @@ -3195,7 +3195,7 @@ "free": "No", "pro": "No", "biz": "No", - "ent": "Paid add-on" + "ent": "Advanced add-on" }, "queueing_methods": { "title": "Queueing methods", @@ -3203,7 +3203,7 @@ "free": "No", "pro": "No", "biz": "First In First Out (FIFO)", - "ent": "First In First Out (FIFO) (default)\n\nWith add-on\nAll options" + "ent": "First In First Out (FIFO) (default)\n\nWith advanced:\nFIFO, Random, Reject, Passthrough" }, "configure_multiple_hostnames_paths": { "title": "Configure multiple hostnames and paths", @@ -3211,7 +3211,7 @@ "free": "No", "pro": "No", "biz": "No", - "ent": "Paid add-on" + "ent": "Advanced add-on" }, "disable_session_renewal": { "title": "Disable session renewal", @@ -3219,7 +3219,7 @@ "free": "No", "pro": "No", "biz": "No", - "ent": "Paid add-on" + "ent": "Advanced add-on" }, "json_response": { "title": "JSON-friendly response", @@ -3227,7 +3227,7 @@ "free": "No", "pro": "No", "biz": "No", - "ent": "Paid add-on" + "ent": "Advanced add-on" }, "k_customize_queuing_status_code": { "title": "Customize queuing status code", @@ -3243,7 +3243,7 @@ "free": "No", "pro": "No", "biz": "No", - "ent": "Paid add-on" + "ent": "Advanced add-on" }, "rules": { "title": "Waiting Room rules", @@ -3251,7 +3251,7 @@ "free": "No", "pro": "No", "biz": "No", - "ent": "Paid add-on" + "ent": "Advanced add-on" }, "session_revocation": { "title": "Session Revocation", @@ -3259,7 +3259,7 @@ "free": "No", "pro": "No", "biz": "No", - "ent": "Paid add-on" + "ent": "Advanced add-on" }, "seo_crawler": { "title": "SEO Crawler Bypassing", @@ -3275,7 +3275,7 @@ "free": "No", "pro": "No", "biz": "Invisible only", - "ent": "Invisible (default)\n\nWith add-on\nAll options" + "ent": "Invisible (default)\n\nWith advanced:\nInvisible, Managed, Non Interactive" }, "turnstile_fail_action": { "title": "Turnstile Fail Action", @@ -3283,7 +3283,7 @@ "free": "No", "pro": "No", "biz": "Log only", - "ent": "Log only (default)\n\nWith add-on\nInfinite queue" + "ent": "Log only (default)\n\nWith advanced:\nLog only & Infinite queue" } } } From ca0d42ccc82e4ecd63a4184bb9bf7ceb2ae266a0 Mon Sep 17 00:00:00 2001 From: angelampcosta <92738954+angelampcosta@users.noreply.github.com> Date: Mon, 28 Apr 2025 11:12:31 +0100 Subject: [PATCH 2/3] Update src/content/docs/waiting-room/reference/queueing-methods.mdx Co-authored-by: Jun Lee --- src/content/docs/waiting-room/reference/queueing-methods.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/waiting-room/reference/queueing-methods.mdx b/src/content/docs/waiting-room/reference/queueing-methods.mdx index be2df81e95205f..d31942057911cc 100644 --- a/src/content/docs/waiting-room/reference/queueing-methods.mdx +++ b/src/content/docs/waiting-room/reference/queueing-methods.mdx @@ -42,7 +42,7 @@ Allow all traffic to pass immediately through your waiting room and into your ap Use this setup when you only want to use your waiting room for events — where you can update the queueing method — and otherwise avoid queueing during low-traffic hours. -Additionally, you can use this queuing method when you want to gather analytics on your traffic but do not want to queue any users. With passthrough on, all traffic will be sent directly to your origin, however analytics will be gathered on `total active users`, `new users per minute` and `time on origin`. We recommend this as a useful test to gather insights into your traffic patterns and help determine appropriate threshold settings. +Additionally, you can use this queuing method when you want to gather analytics on your traffic but do not want to queue any users. With passthrough on, all traffic will be sent directly to your origin. However, analytics will be gathered on `total active users`, `new users per minute` and `time on origin`. We recommend this as a useful test to gather insights into your traffic patterns to help determine appropriate threshold settings. ## Reject From 54ad4a76d5882da03d1e7b3cbd68b91ad1921b14 Mon Sep 17 00:00:00 2001 From: angelampcosta <92738954+angelampcosta@users.noreply.github.com> Date: Tue, 29 Apr 2025 09:12:08 +0100 Subject: [PATCH 3/3] Update src/content/docs/waiting-room/how-to/customize-waiting-room.mdx --- src/content/docs/waiting-room/how-to/customize-waiting-room.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/waiting-room/how-to/customize-waiting-room.mdx b/src/content/docs/waiting-room/how-to/customize-waiting-room.mdx index 490f232cef6101..e8e19a9c03e676 100644 --- a/src/content/docs/waiting-room/how-to/customize-waiting-room.mdx +++ b/src/content/docs/waiting-room/how-to/customize-waiting-room.mdx @@ -96,7 +96,7 @@ The following script within the `` section after `
` fetches the wait ``` -#### Turnstile +#### Turnstile variable If you are using Turnstile for your customized waiting room, you will need to ensure the `turnstile` variable is added. The default queuing page template and any newly created custom templates already include this variable. If you have an existing custom HTML template and wish to enable the Turnstile integration, you will need to add `{{{turnstile}}}` somewhere in the template to let Waiting Room know where the widget should be placed. Waiting Room uses Mustache templates, so including raw HTML within your template without escaping requires three curly braces instead of two.