Skip to main content
Skip table of contents

Single OptIn (SOI): Kundenportal

Beschreibung des Szenarios: Person setzt im Kundenportal ihre Präferenzen

Ist ein Kundenportal oder eine ähnliche Plattform im Einsatz, bei dem die Person bereits durch ein Kundenkonto oder eine ähnliche Registrierung verifiziert ist, können dort Kontaktpräferenzen verwaltet und geändert werden. In diesem Fall loggt sich die Person in ihrem Kundenkonto ein und kann die Kontaktpräferenzen aufrufen, z.B. über die eigenen Benutzereinstellungen. Dort kann die aktuelle Auswahl der Informationsarten eingesehen und eine Anmeldung bzw. Abmeldung durchgeführt werden.

Hierbei fragt das Kundenportal beim Aufruf der Kontaktpräferenzen die aktuellen Consent-Informationen der betreffenden Person aus dem CRM ab, um diese darstellen zu können. Sobald die Änderungen der Kontaktpräferenzen gespeichert wurden, kann das Kundenportal die neuen Informationen an das CRM übertragen. Im CRM werden im Anschluss die Informationen verarbeitet und Folgeprozesse ausgelöst.

Schnittstellen-Aktionen

image-20240325-074843.png

Skizzierung des Ablaufs zwischen Kundenportal, CRM und Kundenaktion

Abfrage der aktuellen Consents zu einer Person für die Anzeige der Informationen im Kundenportal

Die Abfrage identifiziert die aktuellen Consent-Datensätze für eine Person, welche über die contactId identifiziert wird. Der Wert contactId  bezieht sich auf im Standard auf das Feld Email.ContactPerson. Dabei werden Datensätze geliefert, die einen der folgenden Stati haben:

  • Aktuell (C0OPTINSTATUS_CURRENT)

  • Angefragt (C0OPTINSTATUS_REQUESTED)

  • Bestätigung ausstehend (C0OPTINSTATUS_PENDING)

Historische Datensätze sowie abgebrochene Anfragen werden nicht überliefert. Gleiches gilt, wenn keine Consent-Datensätze verfügbar sind (für einzelne Informationsarten sowie generell). In diesem Fall müsste das Kundenportal annehmen, dass keine Einwilligung vorhanden ist und die jeweiligen Informationsarten entsprechend behandeln. Sollte der Kontakt nicht gefunden werden, so werden leere Werte für properties  und optIns  geliefert.

Die dazugehörige Methode in der Skriptbibliothek lautet SC0OptinUtils.callGetOptInsByContactId .

Beispielaufruf: GET /v1/optins/{contactId}

REQUEST

GET /v1/optins/example@example.com

CODE
none
RESPONSE
CODE
{
    "optIns": [
        {
            "pk": "1s9dh7g1hgd4117mOpIn",
            "type": "C0INFOTYPE_NEWSLETTER",
            "status": "C0OPTINSTATUS_CURRENT",
            "approval": "Zus_C0Approval"
        },
        {
            "pk": "9pmpq1hgd4117eOpIn",
            "type": "C0INFOTYPE_PRODUCTINFO",
            "status": "C0OPTINSTATUS_CURRENT",
            "approval": "Zus_C0Approval"
        },
        {
            "pk": "fvvvvvuevpqlk1hgd4117uOpIn",
            "type": "C0INFOTYPE_SURVEYS",
            "status": "C0OPTINSTATUS_CURRENT",
            "approval": "Abl_C0Approval"
        }
    ],
    "properties": {
        "contactId": "example@example.com",
        "pk": "pk123",
        "adBlocked": false
    }
}

Übermittlung der aktualisierten Consent-Informationen an das CRM

Nach der Speichern-Aktion des Kunden im Portal, übermittelt das Portal die Auswahl des Kunden an das CRM. Dazu muss die contactId sowie eine Liste der Consents mit den Zustimmungswerten für jeden einzelnen Typ übergeben werden. Optional kann auch die Herkunft definiert werden, wenn diese Information im Consent-Datensatz einsehbar sein soll. Das CRM legt darauf hin die Consent-Datensätze an und versendet eine Bestätigungsmail.

Sollte es vorhandene Datensätze geben, die den gleichen Informationstyp aufweisen, so wird der Status dieser Datensätze auf C0OPTINSTATUS_HISTORIC gesetzt. Wird das Feld status nicht übergeben (in diesem Kontext nicht notwendig), so wird der Wert C0OPTINSTATUS_CURRENT  genutzt. Die dazugehörige Methode in der Skriptbibliothek lautet SCOptinUtils.callPostOptIns .

Beispielaufruf: POST /v1/optins/{contactId}

REQUEST

POST /v1/optins/example@example.com

CODE
[
    {
        "type": "C0INFOTYPE_NEWSLETTER",
        "approval": "Zus_C0Approval"
    },
    {
        "type": "C0INFOTYPE_PRODUCTINFO",
        "approval": "Abl_C0Approval"
    },
    {
        "type": "C0INFOTYPE_SURVEYS",
        "approval": "Abl_C0Approval"
    }
]
RESPONSE
CODE
{
    "optIns": [
        {
            "pk": "1s9dh7g1hgd4117mOpIn",
            "type": "C0INFOTYPE_NEWSLETTER",
            "status": "C0OPTINSTATUS_CURRENT",
            "approval": "Zus_C0Approval"
        },
        {
            "pk": "9pmpq1hgd4117eOpIn",
            "type": "C0INFOTYPE_PRODUCTINFO",
            "status": "C0OPTINSTATUS_CURRENT",
            "approval": "Abl_C0Approval"
        },
        {
            "pk": "fvvvvvuevpqlk1hgd4117uOpIn",
            "type": "C0INFOTYPE_SURVEYS",
            "status": "C0OPTINSTATUS_CURRENT",
            "approval": "Abl_C0Approval"
        }
    ],
    "result": {
        "status": "Success",
        "code": 200
    }
}

 Fehlerfälle

  • 520 - Kein Kontakt gefunden

  • 525 - Fehlermail beim Mailversand

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.