Tried keeps a do-not-call flag on each contact. The flag is set when a caller asks to be removed during a call, when they reply STOP to an SMS, or by hand. Outbound calls can then skip flagged numbers.
Detect requests during a call#
Turn on Do-not-call detection in Call Settings (enable_dnc_detection, off by default).
When the caller says something like "stop calling me", "take me off your list", "don't call here" or "unsubscribe":
- The agent asks: "Just to confirm, you'd like us to stop calling you and remove this number from our list?"
- If the caller confirms ("yes", "correct", "please do"), the agent says "Understood. We'll remove your number from our calling list. Goodbye." and hangs up.
- The call ends with
disconnection_reason: "user_requested_dnc". - The call's contact gets
do_not_call: true.
If the caller says no or something unclear, the conversation continues normally.
Detection runs on every caller turn before the model replies, so it works the same for single prompt, multi-prompt and conversation flow agents. Requests are matched on wording, so phrasing far from these patterns may not trigger it. Add a line to the prompt as well, such as "If the caller asks not to be contacted again, apologise and confirm."
Flag contacts by hand#
On Contacts, open a contact and switch on Do not call. Flagged contacts show a Do not call badge. The field is also on the contact API (do_not_call) and in contact CSV imports (a do_not_call or dnc column).
The flag is available to prompts as {{do_not_call}} (true or false).
Skip flagged numbers on outbound calls#
| Where | Control | Field |
|---|---|---|
| Create phone call | honor_internal_dnc: true |
|
| Make an outbound call on Phone Numbers | Don't call numbers on the do-not-call list | honor_internal_dnc |
| Batch call | Skip recipients on the do-not-call list | honor_internal_dnc: true |
With it on, a call to a flagged number is refused with a 400 error: "<number> is on the do-not-call list". In a batch, each number is checked when its task is dialled, and a flagged task is marked failed with that error.
honor_internal_dnc defaults to false, so turn it on for every outbound campaign.
SMS opt-out#
An inbound SMS of STOP, STOPALL, UNSUBSCRIBE, CANCEL, END or QUIT flags the sender's contact (creating it if needed) and ends any open SMS chat with them. Outbound SMS to a flagged contact is not sent and is marked failed with "Recipient opted out (do-not-contact)".
Needs keys SMS opt-out needs Telnyx messaging configured.
The do-not-call flag is your workspace's own list. It does not check national registers such as the Australian Do Not Call Register or the US National Do Not Call Registry. Wash your lists against those registers before calling.