SettingsInbox

Spam Protection

Protect your inbox from message abuse — inbound spam and outbound loops

Spam protection safeguards both your team and your contacts from message abuse. It handles two directions:

  • Inbound — Prevents users from flooding your bots with spam messages
  • Outbound — Prevents misconfigured flows from sending excessive messages to users
Spam protection settings

Configuration

  1. Go to Settings → Inbox → Spam Protection
  2. Toggle spam protection on or off
  3. Choose your block mode for inbound spammers
  4. Set the block duration (if using temporary blocks)

Enable Spam Protection

When enabled, the system automatically monitors for spam patterns and takes protective action.

Block Mode

ModeBehaviour
Throttle OnlyNever block the user — just silently skip processing their spam messages
Temporary BlockTemporarily block outbound messages for a set duration, then automatically resume
Permanent BlockBlock until an operator manually unblocks the user from the chat

Block Duration

Duration in minutes (1–1440). Only applies to Temporary Block mode. Default: 5 minutes.

Outbound Status

Shows the current status of outbound messaging for your organisation:

  • Outbound messaging is active — everything is working normally
  • Outbound messaging is paused — outbound was temporarily blocked due to spam protection triggers. It will automatically resume after the block expires

Block History

A log of all spam protection events, showing:

ColumnDescription
ChatThe contact name and when the event occurred
EventThe action taken — User Blocked or User Unblocked
ReasonWhy the block/unblock happened (e.g. manually blocked by operator, rate limit exceeded)
Resolved byThe operator who performed the action

Inbound Protection (User → Bot)

Prevents users from spamming your bots with rapid-fire or duplicate messages. All protection happens automatically — no configuration needed beyond the settings above.

How It Works

When a user sends messages to your bot, spam protection checks three layers:

  1. Rate Limiting — Detects message bursts and sustained flooding
  2. Message Dedup — If a user sends the same trigger multiple times rapidly, only the latest message is processed ("latest wins")
  3. Spam Actions — Escalating responses based on how many times the user hits rate limits

Rate Limits

WindowMax MessagesPurpose
5 seconds20Burst protection (spam clicking)
60 seconds60Sustained flood protection

Messages are always saved to the chat history regardless of spam status. Only processing (flows, AI) is skipped for spam messages.

Escalation

When a user repeatedly hits rate limits, the system escalates automatically:

Violations (per hour)Action
1–2Throttle — silently skip processing
3–5Warn — send a system message: "Please slow down, messages are being throttled"
6+Block — block the user based on your block mode setting

When a user is blocked:

  • Their messages are still saved (audit trail preserved)
  • All processing is skipped (flows, AI, keyboards)
  • A system message appears in the chat (visible to operators)
  • Operators can unblock manually via chat actions at any time

Outbound Protection (Bot → User)

Prevents misconfigured flows from sending excessive messages to your contacts. This protects your users from being flooded if a flow has a loop or sends too many messages.

How It Works

Outbound protection works on a per-chat first principle — a problem in one chat only affects that one chat. If problems occur across multiple chats simultaneously, it escalates to an organisation-level block.

Per-Chat Protection

CheckThresholdAction
Flow loopSame flow card visited 5+ times in one executionFlow cancelled with error message
Flow message flood50+ messages sent by a single flow executionFlow cancelled with error message
Chat rate limit30+ outbound messages to one chat within 40 secondsOutbound paused for that chat for 60 seconds

When any of these triggers, a system message appears in the affected chat explaining what happened (e.g. "Flow cancelled: loop detected on card 'Welcome'").

Organisation-Level Escalation

If 3 or more different chats trigger outbound violations within 5 minutes, Wexio pauses all outbound messages for your entire organisation for 5 minutes:

  • All outbound sending is paused (flows, AI responses, API sends)
  • All active flows across the organisation are cancelled
  • Inbound messages continue to arrive — no data is lost
  • Operators can still view chats and read messages
  • All online team members receive a notification explaining the pause
  • After 5 minutes, outbound automatically resumes

A single buggy flow in one chat will not block your entire organisation — only that specific chat is affected. Organisation-level blocks only trigger when the same problem occurs across 3+ chats simultaneously.

Why This Design?

ScenarioWhat happens
One chat has a flow loopThat chat's flow is cancelled. Organisation is not affected
Two chats have issuesEach chat is handled individually. Warning logged
3+ chats have issues within 5 minutesOrganisation outbound paused for 5 minutes — this indicates a systematic problem

Blocked Users

When a user is blocked by spam protection (or manually by an operator):

  • A system message appears in the chat indicating the user was blocked
  • Operators can unblock the user from the chat actions menu
  • Temporarily blocked users are automatically unblocked after the configured duration
  • Permanently blocked users remain blocked until an operator unblocks them

Key Details

On this page