Sending

Suppressions

Nudgel keeps a suppression list per tenant. Sending to a suppressed address is a no-op — no provider call, no charge, no delivery attempt.

How suppressions work

Before Nudgel dispatches any message to a provider, it checks whether the recipient is on the tenant's suppression list. If they are:

  1. A messages row is written with status=suppressed
  2. No provider API call is made
  3. No charge is incurred
  4. The suppression reason is recorded on the message row

The suppression list is scoped to your tenant — it does not affect other tenants on the platform.

What gets auto-added

Nudgel automatically adds addresses to the suppression list when your email provider reports certain events via webhooks:

EventSuppression reasonPermanent?
Hard bouncehard_bounceYes — the address does not exist or permanently rejects mail
Spam complaintspam_complaintYes — the recipient marked your email as spam
UnsubscribeunsubscribedYes — in most jurisdictions, you are legally required to honour unsubscribes

LEGAL REQUIREMENT

In Kenya, under the Kenya Information and Communications Act and global standards (CAN-SPAM, GDPR), you must not send marketing email to someone who has unsubscribed. Nudgel enforces this automatically via suppressions — do not bypass it by removing unsubscribes from the list.

Soft bounces (temporary delivery failures like "mailbox full") do not add to the suppression list. If a soft bounce threshold is exceeded over multiple sends, Nudgel will add the address automatically.

View and manage suppressions

Go to Settings → Suppressions in the dashboard. You can:

  • See all suppressed addresses with their reason and the date they were added
  • Filter by channel (email, sms)
  • Search by address
  • Manually add an address
  • Remove a suppression (use with caution — see below)

Manually add a suppression

You may want to suppress addresses proactively — for example, if a customer contacts support to opt out but the unsubscribe webhook has not fired yet.

curl
curl -X POST https://api-raven-cloud.autotribes.app/v1/admin/suppressions \
  -H "Authorization: Bearer eyJ..." \
  -H "X-App-Name: raven-cloud" \
  -H "X-Tenant-Slug: acme-co" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "email",
    "address": "customer@example.com",
    "reason": "unsubscribed"
  }'

Remove a suppression

Only remove a suppression if you have verified that the address is valid and the recipient has explicitly re-opted in. Removing a hard bounce suppression and re-sending to a bad address will hurt your sender reputation.

curl
curl -X DELETE https://api-raven-cloud.autotribes.app/v1/admin/suppressions/{id} \
  -H "Authorization: Bearer eyJ..." \
  -H "X-App-Name: raven-cloud" \
  -H "X-Tenant-Slug: acme-co"

Suppression API

See the API reference pages for full request/response schemas: