Skip to main content
AI voice agents are the most tightly regulated way to place an outbound call. The FCC ruled in February 2024 that an AI-generated voice is an artificial voice under the TCPA. That puts every AI marketing call under 47 U.S.C. §227(b): prior express written consent from the person called, for wireless and residential landlines alike, with no existing-business-relationship exemption. Get it wrong and the exposure is 500500–1,500 per call, class-wide. DNCScrub already holds the three things an AI dialer needs to answer “may I place this call right now?”: the consent you captured, every DNC list, and the destination’s calling hours. With version=8 the Scrub API returns that answer as one field, IsCallAllowedAI.

Store consent

Save express written consent as a Permission EBR the moment you capture it

Gate every call

Scrub before dialing; place the call only when IsCallAllowedAI is 1

Honor opt-outs

Add to Internal DNC when the consumer says stop — the next scrub returns 0

What IsCallAllowedAI checks

IsCallAllowedAI is 1 only when every row below is satisfied. The flag is computed per number at scrub time. Anything else returns 0. In particular:
  • A clean number with no consent on file (ResultCode C) is 0. Clean is not consent.
  • A Sale (S) or Inquiry (I) EBR is 0. An EBR is a DNC exemption, not consent for an artificial voice.
  • Wireless and VoIP numbers are 1 when a Permission EBR is on file. Express written consent covers §227(b) for wireless.
IsCallAllowedAI is the strictest of the three version=8 flags. If your agent is 1 here it is also 1 for IsCallAllowedATDS and IsCallAllowedNonATDS. See Is the call allowed? for how the three relate.

The loop

1

Capture consent and store it as a Permission EBR

When the consumer opts in (web form, checkbox with the required disclosures, signed agreement), write it to DNCScrub immediately. Set dateOfLastContact to the date consent was given and keep your evidence reference in referenceNum.
You can also do this in the same request as the scrub — see Scrub + Add EBR.
2

Gate every call

Immediately before the agent dials, scrub the number with version=8. Pass the contact’s postal code as the third pipe field so calling hours follow where the person actually is, not where their area code was assigned.
Place the call only if IsCallAllowedAI is "1".
3

Honor opt-outs in the conversation

When the consumer asks not to be called again, add the number to your Internal DNC. Because the Internal DNC entry is newer than the consent, the next scrub returns IsCallAllowedAI 0 — no code change on your side. See Opt-outs and opt-ins for the precedence rules.

Example

A consumer who gave express written consent on 2026-08-15, scrubbed from an AI agent at 2 PM Eastern with their postal code:
Same number, same time. A live agent could dial it; an AI agent may not until consent is on file.

Building an agent framework or LLM tool?

  • Gate in the dialer loop, not in the model. Call the REST endpoint directly from the code that places the call, immediately before dialing. Do not route the check through an LLM tool call — that adds seconds of latency and puts a non-deterministic step in front of a compliance decision.
  • Deterministic, not advisory. IsCallAllowedAI is computed from rules and data, never from a model. Treat it as a hard gate in code, not as context for the agent to reason about.
  • Cheap to call. The flags add no database work; a single-number scrub is one round trip. Scrub at dial time, every time — consent, DNC status and calling hours all change.
  • Log the response. Store the full scrub row with the call record. It is your evidence that consent existed and hours were respected when the call was placed.

What this flag does not cover

Several states (California, Utah, Colorado and others) and pending FCC rules require that an artificial or AI caller identify itself and, in some cases, disclose that the voice is synthetic. That concerns what the call says, which the scrub cannot see. Build the disclosure into your agent’s opening.
FCC rules require prerecorded and artificial-voice telemarketing calls to offer an automated opt-out (for example, “press 9 or say stop”) that immediately ends the call and records the request. Wire that request to the Internal DNC API.
Appointment reminders, fraud alerts and similar informational calls have different consent standards (prior express consent, not written). The flag assumes a marketing call; a 0 does not by itself mean an informational call is prohibited. Use ResultCode, LineType and CallingWindow and apply your own policy.
IsCallAllowedAI encodes DNC status, stored consent, line type and calling hours — the data DNCScrub holds. It is not legal advice and does not replace review of your consent process and call scripts by counsel.