Blocklist

Never contact a person or a company again, on any channel. Block email addresses, domains and LinkedIn profiles in Swarmhit, from a CSV or through the API.

The blocklist is the workspace's "do not contact" list. A lead that matches an entry is never added to a campaign, a lead already in one stops as soon as the entry is added, on every channel, and a direct action or email to that person is refused.

What an entry matches

TypeYou addIt matches
emailjane@acme.com, in any case (Jane <jane@acme.com> works too)Leads with that address, and with that address plus a tag (jane+news@acme.com).
domainacme.com, @acme.com or https://www.acme.com/aboutLeads whose email address is at that domain or one of its subdomains (eu.acme.com). A personal email provider's domain (gmail.com) or a public suffix (co.uk) is refused: it would block everyone there.
linkedinA profile link such as https://www.linkedin.com/in/jane-doe, in any case, or a member id (ACoAA…)The person with that LinkedIn profile, whether the lead is known by its profile name or its member id. A name the person changed is caught when the profile is next read, before anything is sent.

A domain matches email addresses only. A lead with no email address, such as one added from LinkedIn, is not matched by its company: add its LinkedIn profile to block it.

A Sales Navigator link or id (ACwAA…) can't be added: no profile read gives it back, so it would only ever match leads from a Sales Navigator search. Use the person's linkedin.com/in/ link. Internationalized domain names aren't read yet.

Each workspace has its own blocklist: a workspace inside an organization doesn't use the organization's.

Add and remove entries

In Swarmhit, Settings → Blocklist takes one value per line or a CSV file, and lists, searches and exports the entries. Before anything is added, it shows how the values read: how many addresses, domains and profiles, a few of each, and what will be left out and why. From a CSV, it starts with the column with the most addresses or profile links, and you can pick another. The lead drawer of a campaign and a lead's inbox thread can add the lead's address, its domain (not a personal provider's such as gmail.com) or its profile.

Any member can add entries. Removing them and changing the settings take an owner or admin, in Swarmhit and through the API (403 with code: not-allowed for a key whose creator is neither). Removing an entry doesn't restart the leads it stopped.

Through the API:

curl -X POST https://app.swarmhit.com/api/v1/blocklist \
  -H "Authorization: Bearer swh_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "values": ["jane@acme.com", "competitor.com", "https://www.linkedin.com/in/john-roe"] }'
  • Add to the blocklist takes up to 1000 values, each read as what it looks like, or entries with their type. It returns { added, alreadyBlocked, invalid, stopped, stopping }: a value that reads as none of the three types, or is refused, comes back in invalid with the reason; stopped counts the leads in campaigns the new entries stopped, and stopping the ones past the first 500, which stop in the background right after.
  • List the blocklist filters by type, or by the start of a value with search.
  • Remove from the blocklist takes values as they were added, or entries as the list gives them ({ type, value }), and returns { removed, invalid }; Remove one blocklist entry takes an entry's id.
  • The MCP server has list_blocklist, add_to_blocklist and remove_from_blocklist.

What it stops

  • Joining a campaign. Add leads to a campaign, a list import and every other way leads join a campaign leave a blocklisted lead out and count it as blocklisted. The blocklist is checked before the campaign's exclusion rules.
  • Leads in campaigns. When you add an entry, the leads it matches in your campaigns stop at once, mid-sequence too: their status becomes stopped, with a blocklisted entry in their history, lead.status_changed fires, and their open call tasks close. Every step checks again before it runs, on LinkedIn, email and WhatsApp, and a LinkedIn step checks once more after it reads the profile, so a person known by another name or id is stopped before anything is sent.
  • Direct actions. A LinkedIn direct action or a direct email to a blocklisted person is refused with 409 and code: blocklisted, with the matching entry in details. A direct email is refused for a person blocked by their LinkedIn profile too.
  • Profile visits. A visit reads the profile silently first (in a campaign, when the person's member id isn't known yet), so a blocked person never sees it. A LinkedIn account connected with a browser cookie records every profile read as a visit: there, a person blocked only by a member id Swarmhit doesn't know yet can see that one read.
  • A reply in an existing conversation still goes out, whether you write it in the inbox or send it through the API or MCP. The thread shows Blocklisted.

Unsubscribes

An unsubscribe (the link in an email, or a one-click unsubscribe) and a spam report stop email to that address only. To stop the person's LinkedIn and WhatsApp steps too, turn on Add unsubscribes to the blocklist in Settings → Blocklist, or send { "addUnsubscribes": true } to Update the blocklist settings. The address is then added to the blocklist, with source: unsubscribe. This setting is off by default, and turning it on doesn't add the addresses that unsubscribed before.

Unsubscribes, exclusion rules and the blocklist

UnsubscribeExclusion rulesBlocklist
Applies toOne address, in the whole workspaceOne campaignThe whole workspace
Set byThe recipientThe campaign's settingsYour team: in Swarmhit, from a CSV, through the API or MCP, or from unsubscribes
MatchesLeads with that addressLeads in an excluded list, or already contacted by another campaign or accountAn address, a domain and its subdomains, or a LinkedIn profile, for leads you have now and leads you add later
StopsEmail stepsA lead, until it is first contactedEvery step on every channel, from the moment it's added, and direct actions

On this page