seotools.pro Get started free

Outreach Consent and Suppression Log Template

Outreach lists go wrong quietly. Someone replies "remove me", the note sits in one inbox, and a teammate emails them again next week from a different tool.

This log gives every contact one row: where you found them, why they fit, the preference they set, any opt-out date and the suppression check before the next send.

One owner per row. An opt-out or objection stops the contact the day it arrives and goes on the do-not-contact list, whoever on the team sent the first email.

Inside: a fill-in log, a preference and lawful-basis picker, a pre-send suppression check, opt-out rules with sources, a review routine, a CSV header and a fictional example.

Format
Editable Word .docx
Length
7 variants · ~7 pages
Price
100% free
Setup
Copy or download

Get the editable Word doc in one click.

Free · No signup · Instant download

Works withSemrushSe Ranking
UOutreach & Link Building

Outreach Consent and Suppression Log Template

Consent and suppression log

One row per person. Update the row the same day anything happens: you add them, they reply, they bounce or they ask to stop.

Campaign: [campaign name] - Log owner: [name] - Do-not-contact list link: [URL or tab]

Contact sourceRelevancePreferenceOpt-out dateSuppression checkOwner
[email + where you found it][why this site and person fit, one line][ok to contact / topic only / do not contact / unknown][YYYY-MM-DD or none][checked list on YYYY-MM-DD: clear / suppressed][name]
[source][relevance][preference][date][check][name]
[source][relevance][preference][date][check][name]

Per-row detail (fill for every contact)

  • Contact source: [published page, directory, event, referral], with the URL you took the address from
  • Lawful basis / preference: [consent given / legitimate interest / objection / unknown]
  • First contact: [date + channel] - last contact: [date + channel]
  • Stop signal: [none / reply quote / unsubscribe / bounce / objection], with the date and exact wording
  • Suppression: [not needed / added to do-not-contact list on YYYY-MM-DD]
  • Last suppression check: [date the list was checked before the next send]

Next action

  • Log owner: [name] - task: add new opt-outs to the do-not-contact list the same day
  • Outreach owner: [name] - task: check every row against the list before the next send by [date]
  • Data owner: [name] - task: screen any imported or bought list against suppression before use by [date]

Completion check

  • Every row names a source URL, a relevance line and a preference value.
  • Every opt-out or objection has a date and is on the do-not-contact list.
  • No row was sent after its opt-out date. The suppression check shows a date before each send.
  • Each row has one owner. Stopped rows are kept, never deleted.
  • The do-not-contact list was checked before this campaign went out.
Download free template

Why it works

Every outreach contact has a source, a preference and a dated suppression check, so stop requests are honored the same day and nobody is emailed after opting out.

  • A preference value on every row keeps a cold first contact from being treated like a stop request.
  • Checking the list before each send, not at build time, catches people who opted out while queued.
  • Logging opt-outs and objections the same day keeps teammates from contacting someone who already asked to stop.

7 ready-to-use variants

Copy all

Consent and Suppression Log (fill-in)

When to use: One row per contact, with the source, relevance, preference, opt-out date and a suppression check, plus an owner and a completion check.

Consent and suppression log

One row per person. Update the row the same day anything happens: you add them, they reply, they bounce or they ask to stop.

Campaign: [campaign name] - Log owner: [name] - Do-not-contact list link: [URL or tab]

Contact sourceRelevancePreferenceOpt-out dateSuppression checkOwner
[email + where you found it][why this site and person fit, one line][ok to contact / topic only / do not contact / unknown][YYYY-MM-DD or none][checked list on YYYY-MM-DD: clear / suppressed][name]
[source][relevance][preference][date][check][name]
[source][relevance][preference][date][check][name]

Per-row detail (fill for every contact)

  • Contact source: [published page, directory, event, referral], with the URL you took the address from
  • Lawful basis / preference: [consent given / legitimate interest / objection / unknown]
  • First contact: [date + channel] - last contact: [date + channel]
  • Stop signal: [none / reply quote / unsubscribe / bounce / objection], with the date and exact wording
  • Suppression: [not needed / added to do-not-contact list on YYYY-MM-DD]
  • Last suppression check: [date the list was checked before the next send]

Next action

  • Log owner: [name] - task: add new opt-outs to the do-not-contact list the same day
  • Outreach owner: [name] - task: check every row against the list before the next send by [date]
  • Data owner: [name] - task: screen any imported or bought list against suppression before use by [date]

Completion check

  • Every row names a source URL, a relevance line and a preference value.
  • Every opt-out or objection has a date and is on the do-not-contact list.
  • No row was sent after its opt-out date. The suppression check shows a date before each send.
  • Each row has one owner. Stopped rows are kept, never deleted.
  • The do-not-contact list was checked before this campaign went out.

Preference and Lawful-Basis Picker

When to use: Set the preference value and basis for each row the same way every time, so a cold contact and a hard stop never look alike.

Preference and lawful-basis picker

Pick the value once per row from the same short list. Write it in the preference column, and note the basis in the detail list.

SituationPreference valueWhat it means for sending
Found on a public page, no prior contactunknownA first, relevant contact may be allowed, depending on your local rules. Set a basis and record it
Said yes, or signed up for this topicok to contactContact on the agreed topic. Keep the proof
Only wants one subject, not otherstopic onlyContact on that subject alone. Nothing else
Asked to stop, or objecteddo not contactStop. Suppress today. No more sends, any channel

Basis notes to keep in the row

  • Consent given: they opted in. Note where and when, and keep the proof.
  • Legitimate interest: a relevant, limited reason to contact a business address. Write the reason in the relevance column.
  • Objection: they told you to stop. This overrides any basis. Suppress.
  • Unknown: no signal yet. Treat the first send as careful and relevant, and record a basis.

Under UK GDPR the right to object to direct marketing is absolute, and as a team rule "do not contact" always wins over any reason to send. Check the rules that apply to your contacts and country.

Use the relevance column to prove the contact fits. The Link Insertion Relevance Review Template is a tighter way to score fit before a page goes in the log.

Pre-Send Suppression Check

When to use: A short routine to run against the do-not-contact list before any batch goes out, so a stopped contact is never emailed again.

Pre-send suppression check

Run this before every send, not when you build the list. People opt out while a batch sits in the queue.

Steps

  • Open the do-not-contact list. Match on the person, not one address: email in lower case, plus any second address or domain you hold.
  • Remove every matched row from this send. Mark its suppression check with today's date.
  • Screen any imported, scraped or bought rows against the list before they ever enter a campaign.
  • Treat a reply that says stop, a spam complaint and a hard bounce as a stop. When unsure, suppress.
  • Check the whole account or domain when a company asks you to stop, not just one inbox.

Check fields

  • Checked by: [name] on [YYYY-MM-DD]
  • Rows removed by suppression: [count or IDs]
  • Imported list screened: [yes, source + date / none this batch]

One master list beats a flag inside each tool. A sequencer's "unsubscribed" mark is a copy; the master list is the record every send checks.

Keeping contacts, tasks and history in one place gets hard in a sheet. A CRM such as crmsoftware.pro can hold the master suppression list and check it at send time.

Opt-Out Handling Rules

When to use: Handle a stop request the same way every time, with the US and UK rules written down so nobody guesses the deadline.

Opt-out handling rules

Write these at the top of the log. When a stop signal arrives, the row stops that day, whoever owns it.

SignalWhat you doRow preference
Asks to be removed or not contactedStop all sends. Add to the do-not-contact list todaydo not contact
Objects to marketing (any wording, verbal or written)Record the words and date. Suppressdo not contact
Hard bounceStop that address. Suppress itdo not contact
Spam complaintStop every channel for that person. Suppressdo not contact

US rule (CAN-SPAM)

  • Honor an opt-out within 10 business days. The opt-out route must work for at least 30 days after you send.
  • There is no exception for business-to-business email. You can't charge a fee or ask for more than an email address.
  • After an opt-out you can't sell or transfer that address.

Source: the FTC CAN-SPAM Act compliance guide for business, checked 13 November 2026.

UK rule (right to object)

  • The right to stop direct marketing is absolute. There are no grounds to refuse it.
  • Act without undue delay, and within one month at the latest.
  • An objection can be verbal or written. Record verbal ones. Suppress rather than delete, so the stop holds.

Source: the ICO right to object guidance, checked 13 November 2026. Other countries have their own rules; check them for your list.

Simplest habit: stop the row the same day, well inside any deadline.

Weekly and Monthly Log Review

When to use: A short routine for the log owner: new opt-outs, missing checks, imported lists and a monthly test that a stop request lands.

Weekly and monthly log review

Pick one day a week for the quick checks, and one day a month for the test. The log owner runs them and fixes rows on the spot.

Weekly checks

  • New stops: every opt-out or objection this week is on the do-not-contact list, with a date.
  • Missing checks: any row sent without a dated suppression check is flagged and fixed.
  • Imports: every list added this week was screened against suppression before use.
  • Duplicates: one person, one row. Merge rows from different teammates.
  • Preference blanks: any row with no preference value gets one.

Monthly test

  • Send a stop request from a test address in each tool. Confirm it reaches the master list.
  • Sample a few "remove me" replies and check each one was suppressed in time.
  • Export suppression data from any tool you plan to drop, so the stops survive the move.

Review fields

  • Review date: [YYYY-MM-DD] - Reviewer: [name]
  • New stops added: [count] - rows fixed: [IDs]
  • Monthly test result: [passed / issue found + fix]

Report the clean campaign up with the Link Building Campaign Report Template, and pair timing with the Outreach Follow-Up Tracker Template.

Spreadsheet Header (CSV)

When to use: A paste-ready header row and allowed values to run the log in Google Sheets or Excel with a separate do-not-contact tab.

Paste-ready spreadsheet header

Paste this row into cell A1 of Google Sheets or Excel, then split text to columns by comma. One row per person and campaign.

person_id,campaign,contact_email,contact_source,source_url,relevance,lawful_basis,preference,first_contact_date,last_contact_date,stop_signal,stop_wording,opt_out_date,suppressed,do_not_contact_added_date,last_suppression_check,owner,notes

Allowed values

  • lawful_basis: consent, legitimate_interest, objection, unknown
  • preference: ok_to_contact, topic_only, do_not_contact, unknown
  • stop_signal: none, unsubscribe, reply_stop, objection, bounce, complaint
  • suppressed: yes, no

Sheet tips

  • Highlight rows where preference is do_not_contact but suppressed is no. Fix them first.
  • Highlight rows where last_suppression_check is blank or older than the last send.
  • Keep a separate do-not-contact tab. Check it before adding any new person.
  • Never delete stopped rows. They stop a teammate from contacting the same person again.

Feed the relevance column from real prospect research. The Competitor Analysis link gap shows domains that link to competitors but not to you, a pool to check for fit before any address goes in the log.

Worked Example (fictional Brindlemoor houseplant care)

When to use: Four filled rows for an invented houseplant-care brand: one clear to contact, one topic-only, one bounce and one objection.

Worked example: Brindlemoor houseplant care

Example only. Brindlemoor is an invented houseplant-care brand. The sites, URLs, names and dates are made up to show a filled-in log.

Campaign: winter watering guide - Log owner: outreach lead - Do-not-contact tab: shared sheet

Contact sourceRelevancePreferenceOpt-out dateSuppression checkOwner
ferntide-living.example/care-guides/ - Priya, editor (byline page)Care guide hub has no winter watering section; our guide has a schedule chartunknownNone4 Nov 2026: clearOutreach lead
mossandclay.example/journal/ - Dan, author (listed contact)Writes on soil, asked once to hear only about soil topicstopic onlyNone4 Nov 2026: clearOutreach lead
greenhouse-notes.example/contact/ - general inboxResource list for beginners, no watering guidedo not contact2 Nov 2026 (hard bounce)2 Nov 2026: suppressedOutreach assistant
windowsill-weekly.example/ - site ownerBeginner newsletter, watering question in a recent issuedo not contact3 Nov 2026 ("please remove me")3 Nov 2026: suppressedOutreach assistant

How the rows were filled

  • Row 1: public byline, no prior contact, so preference is unknown and the first send is relevant and limited.
  • Row 2: Dan set a topic limit, so the row is topic only. The winter guide was framed as a soil-season note.
  • Row 3: the bounce was treated as a stop and suppressed the same day; the team did not guess another address.
  • Row 4: "please remove me" went on the do-not-contact tab the day it arrived, well inside the deadline.

Why this works

  • Every row shows a source, a relevance line and a preference, so a cold contact never looks like a stop.
  • The two stops were suppressed the same day and checked before the next send.
  • No stopped row was deleted, so a teammate can't re-add the same person next month.

Want help building a compliant outreach process for your link campaigns? Book a free consultation with Anatolii Ulitovskyi, or see done-for-you options in SEO and GEO services.

How to use this template

  1. Add each contact as one row, with the source URL and the reason they fit.
  2. Set a preference value and a lawful basis for every row before the first send.
  3. Write the opt-out rules and the do-not-contact list link in the header.
  4. Check the whole list against suppression before every send, and date the check.
  5. Stop opt-outs, objections, bounces and complaints the same day, and suppress them.
  6. Screen any imported or bought list against suppression before it enters a campaign.
  7. Review weekly, and each month test that a stop request reaches the master list.

Pro tips

  • Match on the person, not one address. A second inbox is still the same stop.
  • Check suppression at send time, not when you build the list. People opt out in the queue.
  • When unsure whether a reply is a stop, suppress. It is easier to reopen than to apologize.
  • Keep stopped rows forever. They are your record of who asked you to stop.
  • Before dropping a tool, export its suppression data so the stops survive the move.

Frequently asked questions

What is an outreach consent and suppression log?

One sheet with a row per contact. It records the source, why they fit, their preference, any opt-out date and a suppression check before each send, with an owner.

How fast must I honor an opt-out?

For US commercial email, the FTC CAN-SPAM guide says within 10 business days, with no B2B exception. In the UK, the ICO says act within one month. Same day is simpler.

Do I need consent to send cold B2B outreach?

It depends on your country and the contact. Some rely on legitimate interest for relevant business contact; others need consent. Record a basis and check your own rules.

Should I delete a contact who opts out, or suppress them?

Suppress. A deleted record can be re-added from an import and emailed again. The ICO notes a suppression record is generally better than erasure for honoring the stop.

Where does this log fit with my other outreach sheets?

It is the consent and stop record. Pair it with the Outreach Follow-Up Tracker for timing, and feed won links into your campaign report and backlink tracker.