Skip to content

How every call is checked

Before any call is placed, the dialer asks the safety service: may this number be called now? The answer comes back in a fraction of a second, from memory. It is either yes, or no with one reason in plain words. The first check that fails wins.

CHECK 1NumberreadableCHECK 2DatafreshCHECK 3Do-not-calllistsCHECK 4RulescompleteCHECK 5Consenton recordCHECK 6Time zoneknownCHECK 7Calling hoursevery zoneCHECK 8Holidayif blockedCHECK 9Attemptsper number1Numberreadable2Datafresh3Do-not-calllists4Rulescomplete5Consenton record6Time zoneknown7Calling hoursevery zone8Holidayif blocked9Attemptsper number
Every call passes these checks in this order. The first one that fails stops the call and gives the reason. The do-not-call check is never skipped.
# Check If it fails, the screen says (examples)
1 The number reads as a valid phone number The phone number could not be read as a valid number, so it cannot be dialed.
2 The safety data is fresh (refreshed within 60 seconds) No call is allowed right now: the compliance data could not be refreshed for over a minute.
3 Do-not-call: trap number, litigator, federal, state, your own list This number is on the federal Do Not Call list.
4 The rules are complete (calling hours and a consent rule exist) The calling rules are incomplete (nothing is set for calling_hours)…
5 Consent, when the strictest rule requires it The newest permission-to-call record is 400 days old; your rules allow at most 365 days…
6 A time zone can be worked out We cannot tell which time zone this person is in…
7 Inside calling hours in every possible zone It is 9:40 pm where this person lives (Eastern time); calling hours end at 9 pm.
8 Not a holiday, when your rules block holidays Today is Labor Day where this person lives, and your rules block calls on holidays.
9 Attempt limits per number, across all campaigns This number has already been dialed 3 times in the last 24 hours and the limit is 3. It can be tried again after 7 Oct 2026 at 17:00 UTC.

The sentences are the product’s own. The reason codes behind them, such as dnc_internal or outside_hours, are in dial-check reasons. Time-based reasons also say when to try again.

The checks never allow a call when they are unsure.

  • No answer means no dial. If the safety service does not answer in time, nothing is dialed. The dialer holds back and tries again.
  • If the safety service stops, dialing pauses. Calls already in progress continue. Dialing resumes by itself when the service is back.
  • A check that cannot be recorded is a refusal. Every check is written to the record before the answer goes back. If the write fails, the answer is “could not be checked” and the attempt is not counted.
  • The end of the window has a margin. No new call starts in the last 60 seconds of the calling hours, so a call that is still ringing does not connect after closing time.
  • Attempts are counted when a check allows a call. A call the dialer then fails to place still counts. Denied checks never count.
  • Do-not-call is never skipped. This includes callbacks.
  • A callback skips one thing only: the consent age cap. Consent must still exist and not have run out.
  • Holidays are blocked only if your rules say so. The starting value is off.

Your own campaign hours sit on top of these. See calling hours and retries.