Do Not Contact (DNC) in Oppy
If a person tells your team to stop contacting them, Oppy can mark that contact as Do Not Contact, or DNC.
What DNC means
DNC tells Oppy to stop future outreach to that contact. It is meant for explicit opt-out requests such as:
- “stop contacting me”
- “remove me from your list”
- “unsubscribe”
- “do not contact me again”
Oppy should not treat general frustration as DNC unless the person clearly asks for no more contact.
What Oppy stores when DNC is set
When a contact enters DNC, Oppy may add or update:
- the
do_not_contacttag - the
DNCtag - the contact status
- the preferred contact method
- a contact note explaining why DNC was set
- an audit event showing when and why DNC was applied
This gives your team a paper trail for compliance and context.
Audit trail
Oppy keeps an audit trail for both sides of the DNC lifecycle:
-
dnc_setwhen a contact is put into DNC -
dnc_clearedwhen a contact is removed from DNC
Those audit records are meant to preserve:
- when the change happened
- why it happened
- which contact and account were affected
- the before and after state at that time
- who removed DNC, when DNC is cleared
Who can remove DNC
Oppy should not automatically remove DNC through AI follow-up logic.
DNC removal is a human-controlled action. It can happen in two ways:
- A human clears DNC manually in the Oppy UI.
- A human or trusted integration clears DNC through the authenticated API.
If your team uses the API, use the clear-DNC endpoint and pass the acting user headers so the audit trail shows who performed the change.
API path
Authenticated account admins can clear DNC with:
POST /api/contacts/:id/clear_dnc
To preserve the audit trail, include the acting user context when available:
X-Oppy-User-UuidX-Oppy-User-NameX-Oppy-User-Email
Why this matters
DNC is a compliance control, not just a label. Your team should be able to answer:
- Why was this contact marked DNC?
- When did it happen?
- Who cleared it later?
- What changed when it was cleared?
Oppy is designed to keep that context available through notes and events instead of hiding it inside one field.