Email blocklist
Block a sender or whole domain so their inbound email stops creating conversations. Per-org list, owner/admin/agent can manage, instant effect.
The email blocklist is a per-workspace list of senders or domains whose inbound email should never become a conversation. Messages from blocked senders are dropped at the inbound webhook before any ingest, AI dispatch, or notification — they don't show up in the inbox, they don't burn AI tokens, and they don't trip routing rules.
Use it for ex-employees, scraper bots, recurring noise, or any address you want gone for good.
How blocking works
Block entries come in two flavors:
- Email — exact match against the inbound
from:address. - Domain — suffix match against the part after the
@. Blockingacme.comdrops everything from*@acme.com.
When the inbound webhook receives a message, it checks the sender against the workspace's blocklist before any other processing. A match is logged with result='blocklisted' in the inbound event log and the request is acknowledged with a 200 — no retry, no ingest, no further work.
Adding to the blocklist from the UI
Go to Customers. Each row has a Block action. Click it and you'll see a confirmation modal:
- Block email blocks the exact address.
- Block domain blocks everything from that domain.
Add a short note for context (e.g. "scraper", "former employee") so future-you remembers why it was blocked.
Adding via RPC
The underlying primitive is the add_to_blocklist Postgres RPC. It's SECURITY DEFINER and gated on has_perm('manage_settings') (owner / admin / agent):
select add_to_blocklist(
p_pattern => 'noreply@bot.example.com',
p_kind => 'email',
p_note => 'recurring scraper'
);Or for a domain:
select add_to_blocklist(
p_pattern => 'spamdomain.com',
p_kind => 'domain',
p_note => 'persistent noise'
);Viewing and removing entries
The blocked list lives at Customers → Blocked. Each entry shows the pattern, the kind, the note, who added it, and when. Remove an entry with the Remove button on the row.
What blocking does NOT do
- It does not retroactively delete past conversations from that sender. Old conversations stay in the inbox until you close or delete them.
- It does not block outbound. If a teammate replies to an existing conversation with a blocked sender, the reply still goes out.
- It does not block on the chat widget or Slack. The blocklist is email-only today.
Diagnosing "where did the email go?"
If a customer says "I emailed you and you never replied," the first place to look is Settings → Domains → Inbound diagnostics. A result='blocklisted' row tells you the message was dropped intentionally; you'll see the sender's address and the matching pattern. Remove the entry and the next message will land normally.
Permissions
Adding and removing blocklist entries requires the manage_settings permission — owners, admins, and agents qualify. Viewers see the list but can't change it.
Related
- Inbound email and how receiving works for the rest of the inbound pipeline.
- Email channel for the broader email setup.
Was this article helpful?