Skip to content

Improve Wait for Response documentation: clarify criteria, add field guide, fix examples and screenshots - #666

Open
soniasachdeva wants to merge 16 commits into
mainfrom
docs/665-wait-for-response-criteria-examples
Open

Improve Wait for Response documentation: clarify criteria, add field guide, fix examples and screenshots#666
soniasachdeva wants to merge 16 commits into
mainfrom
docs/665-wait-for-response-criteria-examples

Conversation

@soniasachdeva

@soniasachdeva soniasachdeva commented Aug 3, 2026

Copy link
Copy Markdown

Summary

  • Rewrites the "has all of the words", "has the phrase" (renamed from "has a phrase" to match the live dropdown label), and "has only the phrase" descriptions with worked examples, verified against Glific.Flows.Case.do_execute/2 in glific/glific and the operatorConfigList labels in glific/floweditor.
  • Adds two previously undocumented criteria that already exist in the live dropdown, "has multiple values" and "starts with", verified the same way.
  • Adds an "Understanding the fields in this node" section near the top explaining every blank field in the Wait for Response dialog (criteria dropdown, value box, categorize as, multiple criteria rows, Result Name, no-response timeout), including a self-contained explanation of the automatic Other branch vs. the single All Responses branch, with screenshots for both states.
  • Fixes the "has a number between" screenshot, which had a category misspelled "Kida" instead of "Kids", and aligns the text examples throughout the doc with the actual values shown in each existing screenshot (numeric ranges/cases, phone/email/media categorization and result names, regex example, etc.) instead of generic placeholders. Also documents that overlapping ranges resolve to the first matching row (verified on staging).
  • Fixes duplicated/invalid "has an email" examples with distinct, valid email variations.
  • Adds the create-a-result-variable + @results.<name>.url syntax to has audio, has video, has image, and has file, plus the longitude/latitude syntax for has location. Verified on staging that only the URL resolves for these (and for has media) — .caption does not work for any media type and has been removed.
  • Adds a new "The no-response branch in your flow" section with a flow-editor screenshot showing the Yes / Other / No Response branches, and clarifies the difference between Other and No Response.
  • Aligns vocabulary with the rest of the docs repo: "flow editor" instead of "canvas", "branch" instead of "exit point", plain "Note:" text instead of unused :::note admonition syntax.
  • General grammar and plain-language cleanup throughout.

Test plan

  • Preview locally with yarn start and check docs/4. Product Features/03. Flows/2. Flow Actions/04. Wait for the contact to respond.md renders correctly
  • Confirm all screenshots display and match the text examples next to them

Fixes #665

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Expanded “Wait for Response” guidance with field explanations, branching behavior, matching rules, and response-type examples.
    • Added details for result variables, media URLs, location outputs, regular expressions, and no-response handling.
    • Clarified phone number and email validation examples.

…nse docs

Rewrites the "has all of the words", "has a phrase" (renamed to "has the
phrase" to match the live dropdown label), and "has only the phrase"
descriptions with worked examples, verified against Glific.Flows.Case
do_execute/2 behavior and the floweditor operatorConfigList labels. Adds
a screenshot of the response-criteria dropdown.

Fixes #665
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

@github-actions
github-actions Bot temporarily deployed to pull request August 3, 2026 07:57 Inactive
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Expanded the Wait for Response flow action documentation. Added field explanations and a response-type dropdown image. Documented text, numeric, phone, email, and regex matching rules with examples. Added result-variable paths for response data, including media and location fields. Explained no-response timing, reminders, and the distinction between the No Response and Other branches.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the documentation improvements to Wait for Response criteria, fields, examples, and screenshots.
Description check ✅ Passed The description directly explains the documentation changes, verification work, screenshots, and linked issue.
Linked Issues check ✅ Passed The changes address issue #665 by clarifying criteria behavior, adding examples and fields, and documenting related response branches and variables.
Out of Scope Changes check ✅ Passed The expanded documentation changes remain within the linked issue's explicitly defined scope for the Wait for Response page.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/4`. Product Features/03. Flows/2. Flow Actions/04. Wait for the contact
to respond.md:
- Line 76: Update the wording in both examples to use the singular term
“criterion” instead of “criteria,” while preserving the surrounding explanation
and examples.
- Around line 74-75: Add a blank line after each affected Markdown heading,
including “3. has the phrase” and the heading at the referenced additional
location, before its paragraph content. Preserve the existing heading text and
paragraph wording.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: d94d1ff1-c405-4848-a44f-b2d4dbccbd71

📥 Commits

Reviewing files that changed from the base of the PR and between 88a8b89 and 93c235f.

⛔ Files ignored due to path filters (1)
  • static/img/flows/flows_wait_for_response_criteria.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • docs/4. Product Features/03. Flows/2. Flow Actions/04. Wait for the contact to respond.md

@soniasachdeva soniasachdeva self-assigned this Aug 3, 2026
…syntax, no-response branch

- Add an "Understanding the fields in this node" section near the top
  explaining every blank in the dialog (criteria dropdown, value box,
  categorize as, Result Name, no-response timeout).
- Fix "has a number between" screenshot: category name was misspelled
  "Kida", now "Kids", and align its text example (and the "has a
  number equal to" example) with what the screenshot actually shows.
- Rewrite text examples across the doc to match the actual values in
  each existing screenshot instead of generic placeholders.
- Fix duplicated/invalid "has an email" examples with distinct valid
  addresses.
- Add the create-a-result-variable + @results.<name>.url/.caption
  syntax explanation to has audio, has video, has image, and has file,
  matching the existing has media section. Also add it for location.
- Add a new "The no-response branch in your flow" section with a
  canvas screenshot showing the Yes/Other/No Response branches, and
  clarify the difference between Other and No Response.
- General grammar and plain-language cleanup throughout.

Continues #665
@github-actions
github-actions Bot temporarily deployed to pull request August 3, 2026 09:12 Inactive

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/4`. Product Features/03. Flows/2. Flow Actions/04. Wait for the contact
to respond.md:
- Around line 128-136: Update the supported-format description in the “Wait for
the contact to respond” documentation so the 0-prefixed mobile format
0XXXXXXXXXX is identified as an 11-digit number. Preserve the other phone-number
formats unchanged.
- Around line 265-267: Update the repeated-reminder guidance near “up to 3
times” to document a concrete counter and exit condition that stops the loop
after three reminders, or remove the specific “up to 3 times” claim if no
supported limit mechanism exists. Keep the existing single-wait and no-response
branch instructions intact.
- Around line 107-111: The “has a number between” example contains overlapping
ranges at 60; update the displayed range definitions and accompanying
description to use disjoint boundaries, such as 20-59 for Adults and 60-100 for
Sr Citizens, while keeping the example’s categorization consistent.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 921864c7-691f-4d57-9515-7f32842da70f

📥 Commits

Reviewing files that changed from the base of the PR and between 93c235f and 3bbbe8e.

⛔ Files ignored due to path filters (2)
  • static/img/flows/flows_wait_for_response_no_response_branch.png is excluded by !**/*.png
  • static/img/flows/flows_wait_for_response_number_between.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • docs/4. Product Features/03. Flows/2. Flow Actions/04. Wait for the contact to respond.md

@soniasachdeva
soniasachdeva removed the request for review from SangeetaMishr August 3, 2026 09:24
…repetition

- Verified in staging Preview that has file, has audio, has video, and
  has image do not expose a working caption field (only has media
  does) — removed the unverified @results.<name>.caption lines for
  those four, keeping only the URL syntax.
- Add "has multiple values" and "starts with" entries under
  Text-based responses, verified against Glific.Flows.Case
  do_execute/2 (has_multiple, has_beginning) — these were live in the
  dropdown/screenshot but undocumented.
- Trim repeated explanation of the no-response checkbox between
  "Understanding the fields in this node" and "Handling no response".
- Restore the original "every hour, up to 3 times" example as stated
  fact rather than a generic placeholder, per confirmation that
  pre-existing doc content should be trusted as-is.

Continues #665
@github-actions
github-actions Bot temporarily deployed to pull request August 3, 2026 09:47 Inactive
…nges

- "criteria is" -> "criterion is" (singular) in the has the phrase,
  has only the phrase, and starts with examples.
- Fix phone format label: 0XXXXXXXXXX is 11 digits (0 prefix + 10
  digits), not 10.
- Verified on staging that overlapping "has a number between" rows
  resolve to the first matching row, not the more specific one. Added
  a note documenting this for the existing 20-60 / 60-100 example
  instead of changing the ranges, since the screenshot already shows
  them as originally set up.

Continues #665
@github-actions
github-actions Bot temporarily deployed to pull request August 3, 2026 10:04 Inactive
@github-actions
github-actions Bot temporarily deployed to pull request August 3, 2026 10:21 Inactive

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/4`. Product Features/03. Flows/2. Flow Actions/04. Wait for the contact
to respond.md:
- Around line 266-268: Update the reminder example in “Wait for Response”
documentation to remove the unsupported “up to 3 times” claim, unless the
documented flow also defines a supported counter and exit condition. Keep the
chaining guidance consistent with the actual behavior.
- Around line 83-99: Insert a blank line immediately after each Markdown heading
from “has multiple values” through “starts with” in the response-criteria
documentation, including headings 2 through 6, so each heading is separated from
its following paragraph and satisfies MD022.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 1da2b491-4f0b-4e9e-97e4-3a35be9b3036

📥 Commits

Reviewing files that changed from the base of the PR and between 3bbbe8e and 1f9b9ef.

📒 Files selected for processing (1)
  • docs/4. Product Features/03. Flows/2. Flow Actions/04. Wait for the contact to respond.md

@github-actions
github-actions Bot temporarily deployed to pull request August 3, 2026 10:28 Inactive
…lds section

Verified on staging: the automatic Other branch is only added once at
least one criteria row is filled in. With every row left blank, the
node shows a single "All Responses" branch instead. Documented both
states with screenshots directly in "Understanding the fields in this
node", without referring forward to the no-response branch section.

Continues #665
@github-actions
github-actions Bot temporarily deployed to pull request August 3, 2026 10:36 Inactive
…rding

- Add a blank line after every ### heading in the file (MD022), not
  just the newly added ones, for consistency across the whole page.
- Reword the reminder-chaining explanation: "chaining as many times
  as you like" read as contradicting "up to 3 times". Clarified that
  there's no automatic counter -- the reminder count is simply how
  many Wait for Response nodes you chain, so three chained nodes give
  the three reminders in the example.

Continues #665
@github-actions
github-actions Bot temporarily deployed to pull request August 3, 2026 11:52 Inactive

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/4`. Product Features/03. Flows/2. Flow Actions/04. Wait for the contact
to respond.md:
- Around line 69-77: Update the “The Other branch” documentation and the
corresponding unmatched-value example around the numeric reply handling section
so they describe one consistent behavior: either state that unmatched numeric
replies such as 15 route to the automatic Other branch, or explicitly document
the numeric-specific invalid-value exception if that is the engine’s behavior.
Ensure both sections use the same routing terminology.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: deaada26-4892-425a-af2f-f62a9a541e44

📥 Commits

Reviewing files that changed from the base of the PR and between 1f9b9ef and 3dd72ef.

⛔ Files ignored due to path filters (2)
  • static/img/flows/flows_wait_for_response_all_responses_branch.png is excluded by !**/*.png
  • static/img/flows/flows_wait_for_response_other_branch.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • docs/4. Product Features/03. Flows/2. Flow Actions/04. Wait for the contact to respond.md

@github-actions
github-actions Bot temporarily deployed to pull request August 5, 2026 06:03 Inactive
- Bold "Other" consistently in the numeric-response sections, matching
  its styling everywhere else it's used as the branch name.
- Align terminology: has-a-number-equal-to called its rows "cases"
  while every other section calls them "rows" -- switched to "rows".
- Quote category labels ("Kids", "Teens", "Adults", "Sr Citizens")
  consistently with every other categorize-as example in the doc.
- Restructure the reminder-chaining explanation from one dense
  five-sentence paragraph into numbered steps, matching the doc's own
  "How to configure" convention for sequential instructions. Clarify
  that each repeated pair connects to the previous node's No Response
  branch, not the original one.
- Re-verified: zero MD022 violations, all image paths resolve, no
  curly quotes, all four "see X above/below" cross-references still
  point in the correct direction after restructuring.

Continues #665
@github-actions
github-actions Bot temporarily deployed to pull request August 5, 2026 08:13 Inactive
- Move the contact-variable-vs-result-variable note from the intro
  (before either concept was introduced) to right after Result Name
  is defined in "Understanding the fields in this node".
- Clarify "Give a Result Name (this becomes your variable)" -> spell
  out that it's the result variable that stores the contact's reply.
- "for replies that don't match any of your rows" -> "criteria",
  matching the phrasing used for the same concept in "The no-response
  branch in your flow".
- Reorder Text-based responses so "has all of the words" (a direct
  contrast with "has any of the words") comes right after it, with
  "has multiple values" following -- logical teaching order rather
  than raw dropdown order. Renumbered 1-6 accordingly; the dropdown
  screenshot's alt text still accurately describes the actual UI
  order, which differs from this teaching order intentionally.

Continues #665
@github-actions
github-actions Bot temporarily deployed to pull request August 5, 2026 13:50 Inactive


**3. Give a Result Name (this becomes your variable).**
**3. Give a Result Name (this becomes the result variable that stores the contact's reply).**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Result name does not become the result variable. Result name is the name of the variable that stores the result, (the value in the result, in this case being the contact's reply).

**3. Give a Result Name (this becomes your variable).**
**3. Give a Result Name (this becomes the result variable that stores the contact's reply).**

**4. (Optional) Check Continue when there is no response to nudge the users to respond.**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current wording is slightly misleading. It implies that simply checking the Continue box automatically sends nudges, which is not the case.

Checking the Continue box only enables the workflow for configuring nudges. Users must still design and configure the nudge sequence, including details such as the number of nudges to send, the interval between them, and other related settings.

It would be more accurate to clarify that checking the box provides the option to configure nudges rather than automatically sending them.

- **Categorize as**: the label given to this branch, so use something that describes the outcome, like "Yes" or "Has Number". This becomes the name of the branch you connect the rest of your flow to.
- **Multiple criteria rows**: you can add more than one row of criteria. Each row becomes its own branch, so a reply can be routed differently depending on which criteria it matches.
- **Result Name**: the variable the contact's reply is saved under. Once named, you can reuse the reply later with `@results.<result_name>`, for example `@results.age`.
- **Continue when there is no response for**: optional. Lets the flow move on if the contact never replies, instead of waiting forever. See "Handling no response" below for details.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the document is very long - link the section you are referring to, to "Handling no response", so that users are directed to the section, instead of them having to look at it.


**The Other branch**

If you leave every criteria row blank, the node has a single **All Responses** branch that accepts any reply.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line needs to be worded better. It is more than just accepting any response. More importantly, it doesn't communicate that no validation or criteria matching is performed when all criteria rows are left blank. In the absence of any configured criteria, the node does not perform any validation or criteria checks, as none have been configured, and instead routes every response received at this node through a single All Responses branch.

Also - Clarify what you mean by "any reply". Currently, "accepts any reply" is also ambiguous—it is unclear what "any reply" refers to (e.g., text input, media, invalid input, etc.).


If you leave every criteria row blank, the node has a single **All Responses** branch that accepts any reply.

![Wait for Response node with no criteria filled in, showing a single All Responses branch](../../../../static/img/flows/flows_wait_for_response_all_responses_branch.png)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Screenshot is cut - please add complete screenshot.


As soon as you fill in at least one criteria row, an automatic **Other** branch is added alongside it, for replies that don't match any of your criteria.

![Wait for Response node with one filled-in criteria row (Yes), showing the automatic Other branch next to it](../../../../static/img/flows/flows_wait_for_response_other_branch.png)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Screenshot is cut - please add the screenshot that shows the node entirely.


![Wait for Response node with no criteria filled in, showing a single All Responses branch](../../../../static/img/flows/flows_wait_for_response_all_responses_branch.png)

As soon as you fill in at least one criteria row, an automatic **Other** branch is added alongside it, for replies that don't match any of your criteria.

@tanuprasad530 tanuprasad530 Aug 7, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could be phrased better: It is not "for replies....." it is "that captures the replies that don't match....."


### 1. has any of the words

This option accepts the input if it contains any of the words defined in the response criteria. Multiple words can be added, separated by commas. For example, if the criteria include Yes, Y, Ya, Yup, then any of these responses will be treated as valid.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently - this doesn't clearly communicate that the matching also works when the configured word appears within a phrase.

Kindly check and make the necessary changes to accommodate this clearly.

### 1. has any of the words

This option accepts the input if it contains any of the words defined in the response criteria. Multiple words can be added, separated by commas. For example, if the criteria include Yes, Y, Ya, Yup, then any of these responses will be treated as valid.
Also, if the field is left blank, any text response from the user will be accepted.

@tanuprasad530 tanuprasad530 Aug 7, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is incorrect. Please remove this line.

From what I understand when I read this is the following:
has any of the words as the response criteria with no values added to check, accepts any text response from the user.
This cannot be configured this way. Requesting you to kindly try this out on the platform to understand this better.

Example: Criteria = 18-60, so only numbers within 18 and 60 range will be accepted.

<img width="469" height="420" alt="Screenshot 2025-10-08 at 2 36 13 AM" src="https://github.com/user-attachments/assets/61b8eab1-e491-4ba4-81f9-43169d0c0cab" />
Accepts input only if it is numeric and falls within the defined range. A number that doesn't fall in any of your ranges is routed to the automatic **Other** branch instead.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mention if the range boundaries are inclusive or exclusive.

### 2. has an email

Accepts input if the response is a valid email address.
Examples: abc@xyz.xyz, abc@xyz.xyz, abc@xyz

@tanuprasad530 tanuprasad530 Aug 7, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are also valid responses too.

You can test to verify this :)


---

## Response Types

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please include a note about the evaluation order, as it has a direct impact on routing. When multiple response criteria can match the same input, the node routes the response based on the first matching criterion. For example, if has media is listed before has image, an image response will be routed to has media, since it is evaluated first. The same behavior applies to text-based criteria where multiple validations could match the same response.

Example: to ensure a date of birth is entered in the format DD/MM/YYYY, use the following regex:
`^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/[0-9]{4}$`

Valid responses include 05/09/1995 and 31/12/2000.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right now it reads like only 05/09/1995 and 31/12/2000 are valid, which is not the case.
Kindly check and make the necessary changes.
Also, include invalid responses too, based on the regex added.

- In the given example, result name is given as ‘location’.
- Now user can save or use the location details received in longitude and latitude forms in the flow like other variables.
- The location is saved as longitude and latitude.
- In the example below, location is given as the result name.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be "above" and not "below" as the screenshot is above.


Tick **Continue when there is no response for** and choose the time gap after which the flow should move on. The screenshot below shows a single Wait for Response node configured to wait 1 hour before continuing down the **No Response** branch.

To send a reminder before giving up — for example, a reminder every hour, up to 3 times — chain **Send the contact a message** and **Wait for Response** nodes together:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the not the most optimal way to do this, as this significantly increases the number of nodes in the flow, and this is not scalable too.
This can be done with counter variables / result variables, with a looping cap.
Requesting you to kindly check. You can try this out perhaps and verify, to understand this better.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also worth explicitly calling out that configuring reminder nudges depends on two key aspects:

  1. The number of reminders/nudges to send.
  2. The time interval between reminders (which may or may not vary across reminders/nudges).

The most appropriate configuration approach depends on the answers to the above.


If a contact does not respond, you can configure the flow to continue after a set wait time, instead of waiting forever.

Tick **Continue when there is no response for** and choose the time gap after which the flow should move on. The screenshot below shows a single Wait for Response node configured to wait 1 hour before continuing down the **No Response** branch.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There isn't a screenshot attached below, although the text refers to one. Please check and update this accordingly.

Additionally, it would be helpful to explain why simply connecting a send contact a message node to the No Response path and then looping it back to the wait for response node may not work as expected (or clarify the limitations of this approach).


---

## The no-response branch in your flow

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should come before you add the approach for sending reminder nudges.


In the example below, the node has one criteria branch (**Yes**), an automatic **Other** branch for replies that do not match any criteria, and the **No Response** branch for when the contact does not reply in time.

![Wait for Response node in the flow editor showing Yes, Other, and No Response branches](../../../../static/img/flows/flows_wait_for_response_no_response_branch.png)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The screenshot is cut. Please check and add a complete screenshot of the node, highlighting the pathway/branch you are referring to.

3. For each additional reminder, repeat steps 1 and 2, connecting the new pair to the previous **Wait for Response** node's No Response branch — three pairs chained this way send three reminders.
4. Connect the last **Wait for Response** node's No Response branch to wherever the flow should continue once all reminders have been sent.

There's no automatic counter: the number of reminders is simply how many Send message → Wait for Response pairs you connect. See "The no-response branch in your flow" below for what the No Response branch looks like in the flow editor.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as my comment on line 292

A counter can be created, which simplifies the logic of doing this - compared to the logic currently added here in this line.

The Wait for Response node has a few blank fields you need to fill in. Here is what each one means:

- **Response criteria dropdown** (shows "has only the phrase" by default): choose how the contact's reply should be checked, for example "has any of the words" or "has a number". See "Response Types" below for the full list.
- **Value box** (next to the criteria dropdown): the word, phrase, or number the contact's reply is checked against. Some criteria, like "has a number" or "has an email", don't need a value here since they check the type of reply instead of specific text.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please explicitly mention that any leading or trailing whitespace in the Value field is treated as part of the value being matched. For example, has only the phraseYes is different from has only the phraseYes (with a trailing space), as the extra space is considered during validation and can affect the match.


## Text-based responses

![Response type dropdown showing has any of the words, has multiple values, has all of the words, has the phrase, has only the phrase, and starts with](../../../../static/img/flows/flows_wait_for_response_criteria.png)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The purpose of this screenshot / explanation is missing. Kindly check and update.


## Response Types

## Text-based responses

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add screenshots for all text response rule, like you have added for media, email, numeric inputs. Adding screenshots helps explain the examples better.
For reference - points 2 to 6 dont have screenshots attached to it.

### 1. Has a number
Accepts any numeric input, This will accept any number as a valid response. Any non numeric input will be treated as invalid response.

Accepts any numeric input as a valid response. A non-numeric reply doesn't match this criterion and is routed to the automatic **Other** branch instead (see "The Other branch" above).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation being referenced here ("Other") is not easy to find in a long documentation. Instead of mentioning above / below - suggesting to link to that section.

- for the longitude: `@results.location.longitude`
- for the latitude: `@results.location.latitude`

<img width="465" height="355" alt="Screenshot 2025-10-08 at 2 56 30 AM" src="https://github.com/user-attachments/assets/beb9c392-ab61-4cc0-bc99-9fb700a6e811" />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can remove this screenshot, because generally the longitude and latitude values are not referenced to surface to the user (like here, where it is added in a send message node).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve Wait for Response documentation: clarify criteria, add missing fields and examples

2 participants