Better Helpdesk
Inbox and team

Block a sender

Refuse further messages from someone who writes in abusively or as spam, and keep their conversations out of the inbox.

Blocking acts on a contact, the person, not on one conversation. Once a contact is blocked, nothing they send reaches the inbox, and what they sent before leaves it.

Block them in the agent UI

  1. Open the contact's page: choose their name in the panel beside a conversation, or find them under Contacts.
  2. Open the menu next to Edit (More options) and choose Block sender.

The contact page now shows a Blocked badge. The same menu has Unblock sender, which lifts the block; email dropped while it was in place does not come back.

What blocking does

The helpdesk refuses the contact's messages from then on, in every channel:

  • In the widget, a new conversation or a reply from them is refused with 404, as if there were nothing there. This holds whether they are signed in or anonymous, and for an anonymous visitor in a new browser who types the same address.
  • Email from their address is dropped without a reply or a bounce, since a bounce would go to whatever address the message claims to come from.
  • A user of your app who later signs up with a blocked address is refused as well.

The block covers every address the contact holds: their email, and any address merged into them. Merging a blocked contact into another one keeps the block on the merged contact.

Their existing conversations leave the inbox, its counts and the waiting count, and they get no reminders. Nothing is deleted: the conversations stay on the contact's page, where an agent can still open them. Delete, in the same menu, removes the contact and their conversations for good, and the block with them: their address can then write in again as a new contact. Security model places blocking among the helpdesk's other defenses.

Block from your own code

The contact's blocked flag is the whole of the block, so your app can set it too, for example from its own abuse checks:

const contact = await helpdesk.store.findContactByEmail('spam@example.com');
if (contact) await helpdesk.store.updateContact(contact.id, { blocked: true });

findContactByEmail compares the address exactly, and the helpdesk stores addresses in lower case, so lower-case the address you look up. The flag is the blocked column of contact. Writes through helpdesk.store raise no events; Call the helpdesk from your own code has more on the store.

On this page