Restrictions (number, frequency, time slots, validation codes)
Limit who can participate, how often they can participate, and when a touchpoint is available.
In this article, you'll learn how touchpoint restrictions work, which limits you can combine, and which hierarchy rules validation checks before publishing.
Prerequisites
- The touchpoint already exists in the campaign.
- You know whether you need to limit total access, per-participant access, time windows, or code-gated access.
Open the restrictions area
Open the touchpoint in Build
Go to Build -> Touchpoints, then select the touchpoint you want to control.
Restrictions are configured per touchpoint, not once for the whole campaign.
Open Restrictions
Open the Restrictions tab for that touchpoint.
This is where OmniLab groups participation limits, time-window limits, and code-based access rules.
Turn on the restrictions you need
Each restriction has its own switch. Enable only the controls that support the behavior you actually need.
For numeric limits, enter the maximum allowed value. For time-window limits, add one or more time slots.
Save and validate
Save the touchpoint, then run validation before publishing the campaign.
Restrictions are one of the most common places where hierarchy errors and overlapping windows are caught.
Available restrictions
| Restriction | Current label | Use it for |
|---|---|---|
| Global number | Total Participations | Cap the total number of participations across all participants. |
| Visitor number | Per Participant Limit | Cap how many times one participant can use the touchpoint. |
| Global daily frequency | Global Daily Restriction | Cap total participations per day across all participants. |
| Global weekly frequency | Global Weekly Restriction | Cap total participations per week across all participants. |
| Visitor daily frequency | Daily Limit | Cap daily participations per participant. |
| Visitor weekly frequency | Weekly Limit | Cap weekly participations per participant. |
| Time slots | Time Slots Restriction | Make the touchpoint available only during specific date/time windows. |
| Validation codes | Validation Codes Restriction | Gate participation behind a reusable validation-code setup. |
Keep the hierarchy consistent
Validation checks the relationships between values
Keep the restriction hierarchy logically consistent:
Total Participationsshould stay greater than or equal to the global weekly and global daily limits.Per Participant Limitshould stay lower thanTotal Participations.Per Participant Limitshould stay greater than or equal toWeekly LimitandDaily Limit.Global Weekly Restrictionshould stay higher thanGlobal Daily Restriction.Weekly Limitshould stay higher thanDaily Limit.- Every enabled numeric limit should stay at
1or higher.
Time slots vs. reward timing
Time Slots Restriction controls when the touchpoint itself can be opened.
It does not control when rewards are distributed. Reward timing is handled separately through Attribution slots (simple & advanced).
If you are working with activities, keep that distinction in mind: touchpoint restrictions are not the same as booking-slot configuration or booking restrictions. For that workflow, see Configure booking restrictions.
Validation codes and pools
When the touchpoint exposes Validation Codes Restriction, turn it on and choose a Validation Codes Pool.
Validation codes are usually managed as reusable pools rather than entered separately in each touchpoint. The same concept also appears in activity booking flows when bookings must be checked against a selected pool.
If validation blocks this configuration, follow the current field names first: the UI asks you to choose a pool even when the validation message uses the broader phrase validation codes.
Common validation issues
| Validation message | What it means | Fix |
|---|---|---|
Touchpoint '{{touchpoint_name}}' has time slots restriction enabled but no time slots defined | The time-slots restriction is on, but no availability window has been configured. | Add one or more time slots, or turn the restriction off. |
Touchpoint '{{touchpoint_name}}' has overlapping time slots (slot {{slot1_index}} and slot {{slot2_index}}) | Two availability windows overlap. | Adjust the time slots so they no longer overlap. |
Touchpoint '{{touchpoint_name}}' global number restriction has invalid value: {{allowed_number}} (must be at least 1) | Total Participations is below 1. | Set the value to 1 or higher. |
Touchpoint '{{touchpoint_name}}' visitor number restriction has invalid value: {{allowed_number}} (must be at least 1) | Per Participant Limit is below 1. | Set the value to 1 or higher. |
Touchpoint '{{touchpoint_name}}' global weekly frequency ({{weekly_frequency}}) must be greater than daily frequency ({{daily_frequency}}) | The weekly global limit is lower than the daily global limit. | Raise the weekly value or reduce the daily value. |
Touchpoint '{{touchpoint_name}}' visitor number ({{visitor_number}}) must be lower than global number ({{global_number}}) | The per-participant total exceeds the overall total. | Keep the per-participant limit below the global total. |
Touchpoint '{{touchpoint_name}}' has validation codes restriction enabled but no validation codes defined | Code-gated access is on, but the restriction is not fully configured. | Complete the validation-code setup or disable the restriction. |
Related
Key concepts glossary
Review the shared definitions behind touchpoints, scope, and validation codes.
Configure booking restrictions
Use the Events-specific flow when the restriction belongs to bookings rather than generic participation.
Attribution slots (simple & advanced)
Separate touchpoint availability from reward-distribution windows.
Validation & publishing
See how restriction errors and warnings appear before publication.