Skip to main content
By default, FormBharo re-asks each unanswered question twice before moving on. You can customise this per question using retry_config.

retry_config fields

boolean
default:"true"
Set to false to move on immediately after the first unanswered attempt, without re-asking. All other retry_config fields are ignored when this is false.
boolean
default:"false"
When true, the agent re-asks the question indefinitely until it receives a valid answer. The max_retries value is ignored. Use with caution — callers can get stuck if they genuinely cannot provide the answer.
integer
default:"2"
The number of additional attempts after the first. A value of 2 means the agent asks the question up to three times total (one initial attempt plus two retries).
array of strings
Custom messages the agent uses for each re-ask. The first string is used on the first retry, the second on the second retry, and so on. If the list is shorter than max_retries or is omitted entirely, the agent falls back to the original question script for any retry that lacks a custom message.
"skip" | "end_call"
default:"\"skip\""
What to do when all retries have been used on an optional question. Has no effect on required questions — those always end the call when retries are exhausted. See below for the full breakdown.

What happens when retries are exhausted

The outcome depends on whether the question is required and what exhausted_action is set to: Required question, retries exhausted The call ends immediately. The conversation status is set to failed. The form_data entry for the question is null. Optional question, exhausted_action: "skip" (default) The answer is stored as null. The form_status for the question is set to "skipped". The call continues to the next question. Optional question, exhausted_action: "end_call" The call ends. The conversation status is failed — unless the answer that triggered the end matched a value in the question’s end_call_values list, in which case the status is screened_out.

Example

If you need a caller to always provide an answer and want to keep re-asking until they do, combine until_answered: true with a varied retry_messages list so the conversation doesn’t feel robotic.