✉ Email deliverability

Feedback loops and spam complaints: receiving reports and acting

How provider feedback loops work, the ARF format, the Feedback-ID header, and how to use spam complaints to unsubscribe people and fix the causes.

When a user presses the «Report spam» button, they take the action most damaging to a sender's reputation. The provider records that gesture and uses it to decide where to put subsequent messages. For a long time the sender knew nothing about it. Feedback loops exist to fill this gap: they are arrangements through which a provider tells the sender, or its platform, that a recipient has reported a message.

How a feedback loop works

The classic scheme is simple:

  1. the sender, or whoever manages the IP or domain, registers with the provider, stating where to receive reports;
  2. when a user reports a message, the provider sends a report to that address;
  3. the sender receives the report, identifies the recipient and removes them from the list.

The report usually follows the ARF format, Abuse Reporting Format: a message with a human-readable part, a structured part containing the report data and a copy, often partial, of the original message. To protect user privacy, many providers remove or mask the recipient's address. That is why you must be able to trace the contact from other elements of the message, such as a unique identifier in the Return-Path or in a dedicated header.

Different approaches across providers

Not all providers work the same way.

Approach What the sender receives Typical use
individual ARF reports one notice per complaint immediate unsubscription of the contact
aggregate data complaint counts per campaign or flow, without addresses identifying the problem campaign
no feedback loop nothing relying on sender dashboards and metrics

Gmail, for instance, does not send per-user reports. Instead it offers aggregate data, available through its sender tools, which sending platforms can map to campaigns or customers via a header called Feedback-ID. The header contains a few fields chosen by the sender, separated by colons, such as campaign, customer and message type identifiers:

Feedback-ID: promo-october:newsletter:customer42:platform

The header must be covered by the DKIM signature, so the provider can trust its contents.

Who needs to register

If you use a sending platform with shared IPs, you usually don't have to do anything: the platform is registered with the available feedback loops and automatically unsubscribes people who complain. It is worth confirming this in the documentation and checking that complaints appear in your reports.

If you run dedicated IPs or your own server, you need to register with each provider that offers the service, proving you control the IPs or the domain, and set up a mailbox that processes the reports automatically.

What to do with complaints

Unsubscribe immediately

The most important rule: anyone who reports a message as spam must not receive further promotional messages. Continuing to write to them produces new complaints and makes things worse. Unsubscription must be automatic and immediate, and apply to all promotional flows, not just the list the reported message came from.

Transactional emails are a separate case: a receipt or a security alert remains tied to a user action. But if a user reports transactional messages specifically, it is worth asking whether they are really expected and recognisable.

Look for the causes

A single complaint says little. A cluster of complaints, on the other hand, always tells you something. The questions to ask are:

  • are complaints concentrated in a segment, for example imported or long-inactive contacts?
  • do they come mainly from recent subscribers, who perhaps don't recognise the sender?
  • do they rise after an increase in sending frequency?
  • do they involve a specific kind of message, such as aggressive promotions?
  • is unsubscribing easy to find, or do people use the spam button because they see no alternative?

The last point is the most common. Many users report as spam messages they asked for, simply because it is the quickest way to stop receiving them. A visible unsubscribe link near the top and one-click unsubscribe from the client reduce complaints in a concrete way.

Measuring the complaint rate

The complaint rate is calculated as complaints divided by delivered messages, per campaign and per provider. With feedback loop data you can calculate it for providers that offer one; for the others, sender dashboards provide indicative values. Large providers state very low thresholds, in the order of a few tenths of a percentage point, that should not be exceeded. So it is wise to set an alert well before those values.

In short

  • A feedback loop tells the sender when a recipient reports a message as spam.
  • Reports often follow the ARF format; some providers only offer aggregate data.
  • The Feedback-ID header, signed with DKIM, links aggregate data to campaigns and flows.
  • Anyone who complains should be excluded immediately from all promotional sends.
  • A visible, simple unsubscribe reduces complaints more than any other measure.
MM
Marco Marzaduri

Marco Marzaduri works in cybersecurity, digital forensics and web development. A computer science graduate, he combines rigorous technical analysis with attention to the people who use technology.

Read also