Introducing the Ochre AI support workspace. Start a 14-day trial

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.

Updated 2 min read

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 @. Blocking acme.com drops 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.

Was this article helpful?

Email blocklist — Ochre · Ochre