DNC List & Compliance
Do-Not-Call list, opt-out detection, and TCPA / DNC Registry guidance.
Outbound voice campaigns are heavily regulated. letustalk.ai gives you the primitives to stay compliant; the legal responsibility for who you call still sits with you and your legal team.
DNC list
Every organization has its own Do-Not-Call list. Numbers on the list are skipped automatically the moment the campaign dialer tries to call them — the lead gets status: "dnc_blocked" without using an attempt.
Add to DNC
Via the TypeScript SDK (recommended):
import { LetusTalk } from "@letustalkai/sdk";
const client = new LetusTalk({ apiKey: process.env.LETUSTALK_API_KEY! });
// Single entry
await client.dnc.add("+14155550123", {
reason: "Customer requested via email",
source: "manual",
});
// Bulk — useful when importing a regulator's DNC registry
await client.dnc.bulkAdd([
{ phoneNumber: "+14155550123", reason: "Customer opt-out", source: "opt_out" },
{ phoneNumber: "+14155550124", reason: "Regulator list", source: "registry" },
]);
// Inspect what's on the list
const entries = await client.dnc.list();
// Remove someone (e.g. customer re-consented)
await client.dnc.remove("dnc_xxx");Or via raw HTTP:
curl -X POST https://api.letustalk.ai/api/campaigns/dnc \
-H "Authorization: Bearer $LETUSTALK_API_KEY" \
-d '{
"phoneNumber": "+14155550123",
"reason": "Customer requested via email",
"source": "manual"
}'Sources track where the entry came from:
source | Meaning |
|---|---|
manual | Added via dashboard or API |
opt_out | Auto-added when the bot detected opt-out language (see below) |
imported | Loaded from a third-party registry |
api | Posted by an external system |
Bulk import
In the US, the National Do Not Call Registry (FTC) is the baseline source of truth for telemarketing. Scrub your list against it, then bulk-import any internal do-not-call numbers:
curl -X POST https://api.letustalk.ai/api/campaigns/dnc/bulk \
-H "Authorization: Bearer $LETUSTALK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"entries": [
{ "phoneNumber": "+14155550123", "source": "imported", "reason": "National DNC Registry" },
{ "phoneNumber": "+14155550124", "source": "imported", "reason": "National DNC Registry" }
]
}'Up to 50,000 entries per request. Duplicates are silently ignored.
List and remove
curl https://api.letustalk.ai/api/campaigns/dnc
curl -X DELETE https://api.letustalk.ai/api/campaigns/dnc/{id}Opt-out keyword detection
When you mention "stop", "remove me", "unsubscribe", "don't call me", etc., regulations require you to immediately add the caller to your DNC.
letustalk.ai does this via the post-call analyzer. Enable enableSuccessEvaluation on the agent and include opt-out detection in your successCriteria or summaryPrompt:
{
"postCallAnalysis": {
"enabled": true,
"schema": [
{
"name": "requested_optout",
"type": "boolean",
"description": "Did the caller ask to be removed from the list, stop receiving calls, or say 'do not call'?"
}
]
}
}Then in your webhook handler, when analysis.requested_optout === true, POST to /api/campaigns/dnc to add their number.
A future native integration will auto-DNC on detection — track in the changelog.
Consent disclosure
US/CA/EU law requires the agent to disclose the call is being recorded. Enable a one-line preamble at the start of every call:
curl -X PUT https://api.letustalk.ai/api/settings/compliance \
-d '{
"enableConsentDisclosure": true,
"consentDisclosureText": "Hi, this call may be recorded for quality and compliance."
}'The bot speaks this line before its welcome message on every call when enabled.
Jurisdiction summaries (informational — not legal advice)
USA — TCPA
- Pre-recorded / artificial-voice calls require prior express written consent (PEWC) for marketing
- Scrub against the National Do Not Call Registry and honor your internal do-not-call list
- B2B is exempt for many use cases but transparency rule still applies
- Maintain DNC records for 5 years
- Dial only 8 AM – 9 PM in the called party's local time zone
EU — GDPR + ePrivacy
- Consent required before automated calls
- Recipient must be able to opt out within the call ("press X to be removed")
- Recordings are personal data — define a retention policy and offer deletion
Built-in protections letustalk.ai gives you
| Feature | What it does |
|---|---|
| DNC list | Hard-blocks calls to listed numbers |
| Dialing window | Enforces per-timezone call hours |
| Consent disclosure | Auto-played preamble on every call |
| Recording retention | Configurable (default 90 days) |
| Audit trail | Every dial + outcome stored against the call ID |
| Webhook signing | HMAC-signed events for tamper-evident logs |
| PII-scrubbing recording fields | (planned for Phase X — currently store unscrubbed) |
What you're responsible for
- Lawful basis for calling each number (opt-in records, contract, legitimate interest)
- DNC scrubbing before upload to campaigns — letustalk.ai re-checks at dial time but the primary scrub should be your CRM's
- Localization — providing the right
timezoneper recipient when they span jurisdictions - Disclosures — keeping
consentDisclosureTextaccurate for the jurisdictions you operate in - Cooperation with regulators — being able to produce the call recording, transcript, and consent record on demand