> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revyops.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Do Not Contact Sync

> How RevyOps keeps Do Not Contact status in sync across every connected platform.

## Overview

RevyOps unifies Do Not Contact (DNC) signals from every connected platform into a single
suppression list, then keeps that list in sync in both directions: pulling DNC entries in from
your platforms, and pushing RevyOps DNC marks back out to them.

## Sources

RevyOps pulls each configured platform's suppression list in once a day. The platforms it
currently pulls from:

* Instantly
* SmartLead
* Lemlist
* Sendkit
* EmailBison
* PlusVibe
* Close CRM (via the **Outbound Status** custom field)
* HubSpot (via the `outbound_status` contact property)

For each platform, RevyOps marks any matching existing contact as Do Not Contact, and creates a
placeholder contact for any suppressed email that doesn't already exist in RevyOps. Each source's
last run, how many entries were pulled, and how many contacts were marked or created is recorded
and shown per platform.

Pulling from a platform can be turned off per integration without affecting other sources.

## Pushing to Integrations

Whenever a contact is marked Do Not Contact in RevyOps, whether from a pulled source, a manual
mark, or a CSV upload, RevyOps pushes that suppression out to every other configured and enabled
integration (EmailBison, Instantly, Lemlist, SmartLead, Sendkit, HeyReach, PlusVibe, Close CRM,
HubSpot), except the one the mark originated from. HeyReach only supports adding entries to its
blocklist; it doesn't support removing one.

Marking one contact Do Not Contact also marks every other record RevyOps has for that same person
(for example, a LinkedIn-only contact and an email contact for the same person), so every known
address is suppressed together.

## Historical Backfill

The first time you turn Do Not Contact sync on for a platform, RevyOps offers a one-time
**Sync Historical DNC List** push, which sends every contact already marked Do Not Contact in
RevyOps (not just new ones) to that platform's blocklist. This can't be undone in bulk, and the
integration panel asks you to confirm before running it.

## Marking Contacts as DNC from a CSV

You can upload a CSV of email addresses or LinkedIn URLs to mark as Do Not Contact directly,
without going through a platform:

<Steps>
  <Step title="Upload the file">
    Upload a CSV file and indicate whether it has a header row.
  </Step>

  <Step title="Select the identifier column">
    Choose whether the column holds email addresses or LinkedIn URLs, then pick which column it
    is. RevyOps previews the values and warns if they don't look like the selected type.
  </Step>

  <Step title="Process">
    RevyOps marks existing contacts as Do Not Contact and creates placeholder contacts for
    identifiers that don't have a matching contact yet. The result shows how many were updated,
    how many were created, and lists any errors.
  </Step>
</Steps>

## Suppression Sources

An integration's **Sync setup** view includes a card listing every source contributing to your
suppression list (each connected platform, plus CSV uploads and manual marks) with how many
contacts each one has suppressed and its current state: **Uploaded by you**, **Marked by hand**,
**Not connected**, **Sync paused**, **Sync failed**, or **Synced \[time]**. Sources sync once a
day.

If you don't already have a **Suppressed List** saved view, listing every suppressed contact with
the source that suppressed each one, RevyOps offers to create it for you from this card.

## Event History

Where available, an integration's settings panel includes an **Activity** tab showing **Webhook
requests** and **DNC pushed** over 30 days, 90 days, 180 days, or all time, alongside an event
log you can filter to **All**, **Errors**, or **Warnings**.

## Where This Shows Up

The suppression source breakdown, historical backfill control, and per-platform Do Not Contact
toggle appear inside each integration's own settings panel (for example, in the Close CRM,
HeyReach, or Sendkit panels), alongside that integration's sync setup.
