Skip to content

DNC

Describe Do Not Call (DNC) suppression: how Get2Dial prevents dialing numbers that must not be contacted.

DNC entries (dnc_entries) are per-tenant, E.164-normalized numbers with a source (internal/external/manual) and a reason. Suppression is enforced in two layers:

  1. Lead selection — the pacer’s eligible-leads query anti-joins dnc_entries, so suppressed numbers are never even selected.
  2. Dial-time compliance gate — an ordered, fail-closed pipeline runs before each origination: internal DNC → calling hours → daily attempt cap → lifetime attempt cap → retry cadence → optional external DNC hook → allow. Any error suppresses the call.

A disposition with adds_to_dnc = true writes the DNC entry in the same transaction as the attempt (fail-closed rollback if it can’t).

DNC is managed via /api/v1/dnc and the tenant app. The optional external DNC hook is an HTTP check; a timeout records a dnc_check_failed disposition and suppresses (fail-closed).

An agent sets the do_not_call disposition; the number is normalized (00+, then the leading + stripped so +441… and 441… collapse to the same key), inserted into dnc_entries, and the lead is closed — all atomically.

  • DNC screening is a compliance control — failures suppress, never dial.
  • Because suppression runs at both selection and dial time, a number added to DNC mid-campaign is honored on the very next tick.