Do-not-contact lists for social outreach: how to run one
A do-not-contact list is easy to start and easy to get wrong. What goes on it, how to match people across profiles, and what happens when the check fails.
By the Programmable Social team ·
A do-not-contact list is a record of people you've agreed never to approach again, checked before every message. The idea is simple. It fails in the details: one person has several profiles, three teammates each keep their own notes, and a scheduled follow-up doesn't know someone said stop.
Who goes on the list
- Anyone who asks you to stop, in any words. “Not interested, please don't message me” counts. So does an angry reply.
- Anyone who marks you as spam or blocks you, if you can see it.
- Competitors, and existing customers who shouldn't be sold to, if that fits your policy.
- Anyone a teammate flags as a bad idea, like a personal contact or a sensitive account.
Be generous. A false positive costs you one conversation. A false negative means contacting someone who told you not to, from a real person's profile, in a place they can screenshot.
Five rules for one that works
- Keep one list. Not per sender or per campaign. If someone tells Sam to stop, they've told the company to stop.
- Check at both ends. Before a draft is written and again right before it's sent. Someone may be added between the two, and a follow-up may have been queued days earlier.
- Match the person, not the string. One LinkedIn profile has several valid addresses, with or without www, a country prefix or a tracking parameter, and LinkedIn also has internal ID forms. Normalise them, or a stored spelling will miss a live one.
- Link profiles across platforms. Someone who said stop on LinkedIn hasn't agreed to hear from you on X. Once you know two profiles are the same person, the entry should cover both.
- Fail closed. If the check can't run because the database is down or a lookup times out, don't send. The whole point of the list is lost if an outage quietly turns it off.
Who can remove someone
Adding should be easy for anyone. Removing should be hard: a named person with authority, a reason, and a record. Keep entries even if the teammate who added them leaves, because the promise was made by the organisation.
What about the law?
Rules on unsolicited messages and personal data vary by country and depend on who you're contacting. An opt-out record may also count as personal data that you need a lawful reason to keep, and it's usually kept precisely so you can honour the request. This guide isn't legal advice. If you're doing outreach across borders, ask someone who is qualified to give it.
In Programmable Social
The do-not-contact list applies to the whole install. It's matched on every spelling of a profile link, covers someone's other profiles once you link them as the same person, and is checked before every draft and every send-eligible pull. If a check errors, the send is held. Lifting an entry takes an approver who's signed in, and entries stay after the account that added them is deleted. It works alongside human approval, not in place of it.
Drafted with AI and reviewed against the sources above. This is general information, not legal advice.