Skip to main content
Question guards (also called consent gates or validation rules) are server-side validation rules on onboarding questions. They determine whether a participant is eligible to join a quest based on their answers.

How They Work

  1. Participant fills out onboarding questions
  2. Answers are sent to the server: POST /quest/validate-onboarding
  3. Every question with a guard is evaluated
  4. If any guard fails → participant is blocked with rejection messages
  5. If all guards pass → participant can proceed to join
Guard validation is server-side — it cannot be bypassed by participants.

Guard Configuration

Each guard has three fields:

Available Operators

Which operators are available depends on the question’s response type:

Operator Details

When you change a question’s response type, the operator resets to the first valid option if the current operator is no longer available for the new type.

Rejection Behavior

When a participant fails validation:
  • Per-question: Each failed question shows its rejection message in a red inline box below the question
  • Global: A yellow warning banner appears: “You do not meet the eligibility criteria for this quest.”
  • The participant cannot proceed and cannot join the quest

Adding a Guard

  1. Open a quest and navigate to the onboarding section
  2. Click on an onboarding question (or add a new one)
  3. Check “Add validation rule (consent gate)”
  4. Select an operator from the dropdown
  5. Enter the expected value
  6. Optionally customize the rejection message

Worked Examples

Must Be 18 or Older

Behavior: If a participant enters 17, they see the rejection message and cannot join. Behavior: If a participant selects “No”, they see the rejection message and cannot join.

Must Be in Target Demographic

Behavior: If a participant selects “Retired” or “Other”, they see the rejection message and cannot join.

Exclude a Specific Condition

Behavior: If a participant selects “Yes”, they see the rejection message and cannot join.