Zum Hauptinhalt springen

Empfänger-Status

Jeder Empfänger hat einen Status, der angibt, ob er Newsletter empfangen darf.

Account ohne Kanäle

Ohne Kanäle gibt es genau einen Status pro Empfänger.

Account
├─ Empfänger A (max@example.com)
│ └─ Status: Aktiv (global)

├─ Empfänger B (lisa@example.com)
│ └─ Status: Abgemeldet (global)

└─ Newsletter-Versand
└─ Geht an alle aktiven Empfänger

Account mit Kanälen

Mit Kanälen hat jeder Empfänger einen Status pro Kanal. So kann ein Empfänger z.B. für den Newsletter-Kanal aktiv sein, aber für den Werbe-Kanal inaktiv.

Account
├─ Kanal 1: "Produkt-Newsletter"
├─ Kanal 2: "Blog-Updates"
└─ Kanal 3: "Event-Einladungen"

Empfänger A (max@example.com)
├─ Kanal 1: Status Aktiv ✓
├─ Kanal 2: Status Aktiv ✓
└─ Kanal 3: Status Abgemeldet ✗

Empfänger B (lisa@example.com)
├─ Kanal 1: Status Abgemeldet ✗
├─ Kanal 2: Status Aktiv ✓
└─ Kanal 3: Status Aktiv ✓

Newsletter-Versand über Kanal 1
├─ Empfänger A: Erhält Newsletter ✓
└─ Empfänger B: Erhält keinen Newsletter ✗

Status-Werte

Es gibt drei grundlegende Status-Werte:

StatusNameBeschreibung
1RECEIVE_READYEmpfänger ist bereit, Newsletter zu empfangen.
2NOT_RECEIVE_READYEmpfänger ist noch nicht bereit (z.B. Opt-In ausstehend).
3ARCHIVEDEmpfänger ist archiviert und erhält keine Newsletter mehr.

Status-Additions

Jeder Status kann eine Status-Addition besitzen, die den Grund für den Status präzisiert:

StatusStatus-AdditionBeschreibung
1 (RECEIVE_READY)nullEmpfänger ist aktiv.
2 (NOT_RECEIVE_READY)1 = OPTIN_PENDINGOpt-In wurde angefordert, aber noch nicht bestätigt.
2 (NOT_RECEIVE_READY)2 = NO_OPTINKein Opt-In erforderlich (z.B. Transaktionsmails).
2 (NOT_RECEIVE_READY)3 = TRANSACTIONNur für Transaktionsmails.
3 (ARCHIVED)4 = UNSUBSCRIBEDEmpfänger hat sich abgemeldet.
3 (ARCHIVED)5 = HARD_BOUNCEE-Mail-Adresse existiert nicht (Hard Bounce).
3 (ARCHIVED)6 = MANUALManuell archiviert.
3 (ARCHIVED)7 = COMPLAINEDSpam-Beschwerde (Complaint).
3 (ARCHIVED)8 = BLACKLISTBlacklist (manuell)

Status-Lifecycle

Der typische Lebenszyklus eines Empfängers:

Neu erstellt

├─→ Status 2, Addition 1 (Opt-In ausstehend)
│ │
│ └─→ Status 1 (Aktiv) ─────┐
│ │
└─→ Status 1 (Aktiv ohne Opt-In) ─┘

├─→ Status 3, Addition 4 (Abgemeldet)
├─→ Status 3, Addition 5 (Hard Bounce)
├─→ Status 3, Addition 6 (Manuell archiviert)
└─→ Status 3, Addition 7 (Spam-Beschwerde)

Beispiele

Aktiver Empfänger

{
"status": 1,
"statusAddition": null
}

Empfänger ist aktiv und erhält Newsletter.

Abgemeldeter Empfänger

{
"status": 3,
"statusAddition": 4
}

Empfänger ist archiviert, weil er sich abgemeldet hat.

Opt-In ausstehend

{
"status": 2,
"statusAddition": 1
}

Empfänger wurde angelegt, muss aber noch seine E-Mail-Adresse bestätigen (Double Opt-In).

Status-Änderungen über API

info

Wichtig: Bestimmte Status-Änderungen erfordern spezielle API-Rechte. Zum Beispiel kann ein archivierter, abgemeldeter Empfänger nur reaktiviert werden, wenn der API-Key das entsprechende Recht besitzt.

Status über API setzen

Der Status eines Empfängers kann je nach Account-Konfiguration unterschiedlich gesetzt werden:

Ohne Kanäle

Bei Accounts ohne Kanäle wird der Status direkt auf dem Empfänger-Objekt gesetzt:

POST /subscribers
PUT /subscribers/{id}
PUT /subscribers/multiple
POST /subscribers/upsert

Request:

{
"email": "mail@example.com",
"status": 1,
"statusAddition": null
}

Beispiel - Abgemeldeter Empfänger:

{
"email": "mail@example.com",
"status": 3,
"statusAddition": 4
}

Mit Kanälen

Bei Accounts mit Kanälen wird der Status pro Kanal im channels-Array gesetzt:

POST /subscribers
PUT /subscribers/{id}
PUT /subscribers/multiple
POST /subscribers/upsert

Request:

{
"email": "mail@example.com",
"channels": [
{
"id": 1,
"status": 1,
"statusAddition": null
},
{
"id": 2,
"status": 3,
"statusAddition": 4
}
]
}

Status abrufen

Ohne Kanäle

GET /subscribers/{id}

Response:

{
"objectType": "Subscriber",
"id": 1,
"email": "mail@example.com",
"status": 1,
"statusAddition": null,
"optinAt": "2024-01-15 10:30:00",
"optoutAt": null
}

Mit Kanälen

GET /subscribers/{id}?include=channels

Response:

{
"objectType": "Subscriber",
"id": 1,
"email": "mail@example.com",
"channels": {
"data": [
{
"objectType": "Channel",
"id": 1,
"isDefault": true,
"status": 1,
"statusAddition": null,
"optinAt": "2024-01-15 10:30:00",
"optinIp": "192.168.1.1",
"optoutAt": null,
"optoutIp": null,
"translations": {
"de": {
"name": "Newsletter"
}
}
}
]
}
}