Compliance and calling hours
Every number is checked twice: when the lead is claimed and again at dial time. Outside the allowed hours the lead is postponed to the next opening; any other refusal excludes the lead from the campaign.
The checks
| Check | Channels | Rule |
|---|---|---|
| DNC lists | All | The global internal list (where "Add to do-not-call list" from an agent goes), imported lists and campaign lists (dncListIds). A list tied to a channel (sms or whatsapp) applies to that channel only. |
| Calling windows | All | Evaluated in the lead's time zone. Default: Sunday to Thursday 09:00 to 20:00, Friday 09:00 to 13:00, nothing on Saturday. A retry that falls outside a window moves to the next opening. For messages these are the sending windows. |
| Contact-center calendar | All | Optional. When a calendar is linked, nobody is contacted while it is closed (see below). |
| Attempt limit | All | maxAttemptsTotal per lead (6 by default), plus a separate cap per outcome in the retry rules. |
| National registry | Voice | The Israeli national do-not-call registry: a registered lead is not called unless an exemption applies (consent or existing customer). A campaign can require a registry check newer than N days (requireRegistryCheckDays, 0 = off). |
| Marketing consent | Messaging | The marketing category needs consent less than a year old, or an existing customer. The utility category does not. |
| Caller identification | Voice | The hold and end-of-call messages say who is calling. The defaults are Hebrew placeholders; the campaign owner replaces them with their own. |
These rules reflect a reading of Israeli regulation (the national registry, one-year consent, the anti-spam provisions of the Communications Law, section 30A). Confirm them with a lawyer before going live. Every rule above is configurable per campaign.
Calling windows and the contact-center calendar
Two different questions decide whether a lead may be contacted at a given moment:
- Calling windows (
callingWindows): compliance, "is it too late to call this person?", evaluated in the lead's time zone. - Contact-center calendar (
settings.schedule): "are we working?", the centre's weekly hours, holidays and events, evaluated in the calendar's time zone.
A lead is contacted only when both are open. The calendar is the same one Studio flows and the Flex business-calendar screen use; the dialer only reads it. See the Agent workspace section for how calendars, holidays and events are managed.
Linking a calendar to a campaign
In the campaign settings, under Calling hours, the Contact-center calendar block offers:
| Setting | What it does |
|---|---|
Calendar (calendarId) | The calendar to follow. "None: calling windows only" keeps the old behaviour. |
Different working hours for this campaign (hoursOverride) | Replaces the calendar's weekly hours for this campaign only (calendar time zone). The calendar's holidays and events still apply. |
Campaign exceptions (exceptions) | Dates that differ for this campaign only: Closed, Special hours or Close early. They take precedence over the calendar, so one can also open a holiday. |
When dates overlap, a campaign exception beats a calendar event, which beats a holiday; at equal precedence the strictest rule wins. The form shows whether the calendar is open now and the holidays and closures of the next 30 days.
How the dialer applies the calendar
- The dialer refreshes each linked calendar every minute and keeps a copy covering about the next year, so a change to the calendar reaches running campaigns within a minute.
- While the calendar is closed, the campaign claims nothing, neither leads nor callbacks; the live view shows "Closed by calendar". After it opens, the campaign ramps up as after a normal start.
- A lead postponed by the calendar or by its window stays
ready, with its next attempt set to the nearest moment when both are open. The calendar never excludes a lead; only a lead whose own calling windows are empty is excluded. - Retries are scheduled into the same combined window.
- If the calendar cannot be refreshed, the dialer keeps working from its last copy and the campaign form warns that the calendar could not be refreshed. If a linked calendar has never been loaded, the campaign fails closed: it does not dial, and leads are postponed by 10 minutes.
- Saving a campaign with a new calendar loads it at once; an unknown or unavailable calendar is reported as an error on save.
- A callback requested through the integration API for an explicit time outside the allowed hours is refused with
422 outside_calling_window, with the reason (lead_window,calendar_closedorcalendar_unavailable) and the next opening. A callback with no time ("as soon as possible") is moved to the next opening instead.
The same rules apply to SMS and WhatsApp campaigns: nothing is sent while the calendar is closed.