Sich über WordPress für einen Newsletter anmelden
Die folgende Anleitung zeigt am Beispiel einer Newsletteranmeldung, wie Sie Formulardaten aus WordPress an CiviCRM übermitteln und dort weiterverarbeiten.
Für WordPress gibt es verschiedene Erweiterungen, mit denen Sie Newsletter-Empfänger entweder direkt in WordPress verwalten oder an einen E-Mail-Marketing-Dienst übermitteln können. Wenn Sie Ihre Kontakte und Beziehungen jedoch zentral in CiviCRM pflegen möchten, sollten Sie auch die Newsletter-Empfänger dort verwalten. So vermeiden Sie doppelte Datenbestände und müssen Kontaktdaten nicht zwischen mehreren Systemen abgleichen.
Der Versand von Newslettern mit CiviMail ist deshalb häufig ein sinnvoller erster Schritt zu einer integrierten Nutzung von CiviCRM. Zur Konfiguration der Möglichkeit, E-Mails und Serien-E-Mails aus CiviCRM heraus zu versenden, siehe polbeo.de/e-mails-versenden-aus-civicrm
Inhaltsverzeichnis
4. Ein Formular in WordPress anlegen
5. WordPress mit CiviCRM verbinden
- 5.1 Einen Kontakt für die Schnittstelle anlegen
- 5.2 Eine eigene Benutzerrolle anlegen
- 5.3 Einen Benutzer anlegen
- 5.4 Site-Key und API-Key erzeugen
- 5.5 Den WordPress-Hook einrichten
- 5.6 Das PHP-Snippet einfügen
- 5.7 Das Formular gegen Spam absichern
7. In CiviCRM die Kontaktdublettenprüfung konfigurieren
8. Das Newsletter-Abonnement mit einem Form Processor verarbeiten
9. Automatisch eine Double-Opt-in-Mail versenden
10. Den vollständigen Anmeldevorgang prüfen
1. Ziel
Im Zuge dieser Anleitung lernen Sie, wie Formulardaten aus WordPress an CiviCRM übermittelt und dort verarbeitet werden können. Das beschriebene Verfahren lässt sich nicht nur für Newsletteranmeldungen verwenden, sondern grundsätzlich auch für andere Formulare, deren Eingaben in CiviCRM weiterverarbeitet werden sollen.
Am Ende dieser Anleitung verfügen Sie über ein Newsletterformular, das
- auf einer WordPress-Seite eingebunden ist,
- ausschließlich eine E-Mail-Adresse abfragt,
- die eingegebene Adresse an CiviCRM übermittelt,
- bestehende Kontakte möglichst wiedererkennt,
- bei Bedarf einen neuen Kontakt anlegt,
- die Anmeldung zunächst als noch nicht bestätigt behandelt,
- automatisch eine Double-Opt-in-Mail versendet und
- den Kontakt erst nach dessen Bestätigung in den Newsletterverteiler aufnimmt.
2. Die fünf Bausteine
Für die Umsetzung verwenden wir in dieser Anleitung das beliebte WordPress-Plugin Contact Form 7. Mit diesem Plugin können Sie Formulare erstellen und anschließend in Beiträge oder Seiten Ihrer WordPress-Website einbetten.
Contact Form 7 ist der erste Baustein in einer Kette von insgesamt fünf Bausteinen:
-
Contact Form 7 zeigt das Formular an.
Besucher geben auf der WordPress-Seite ihre E-Mail-Adresse ein und senden das Formular ab. -
Ein WordPress-Hook übermittelt die Daten an CiviCRM.
Ein kleines Stück PHP-Code reagiert auf das Absenden des Formulars und sendet die eingegebene E-Mail-Adresse an CiviCRM. -
Ein Form Processor in CiviCRM legt fest, was mit den Daten geschieht.
Der Form Processor nimmt die übermittelte E-Mail-Adresse entgegen und führt die vorgesehenen Verarbeitungsschritte aus. -
Der Extended Contact Matcher in CiviCRM prüft, ob der Kontakt bereits vorhanden ist.
Der Extended Contact Matcher, kurz XCM, sucht anhand der E-Mail-Adresse nach einem bestehenden Kontakt. Nur wenn kein geeigneter Kontakt gefunden wird, wird ein neuer Kontakt angelegt. -
CiviCRM führt das Double-Opt-in-Verfahren durch.
CiviCRM versendet eine E-Mail mit einem Bestätigungslink. Erst nachdem der Empfänger diesen Link aufgerufen hat, wird die Anmeldung wirksam und der Kontakt reguläres Mitglied der Newslettergruppe.
3. Voraussetzungen
Für die Umsetzung benötigen Sie
- einen Zugang mit Administratorrechten zu Ihrer WordPress-Website und
- einen Zugang mit Administratorrechten zu einer CiviCRM-Instanz.
Falls Sie noch kein CiviCRM haben, können Sie Ihr CiviCRM jetzt starten und es direkt kostenlos ausprobieren.
4. Ein Formular in WordPress anlegen
4.1 Contact Form 7 installieren
Öffnen Sie das Backend Ihrer WordPress-Website. Gehen Sie zu Plugins → Plugin hinzufügen. Suchen Sie dort nach dem Plugin Contact Form 7, installieren Sie es und aktivieren Sie es anschließend.
Öffnen Sie danach Formulare → Kontaktformular hinzufügen.
4.2 Formular anlegen
Legen Sie beispielsweise folgendes Formular an:
``text
[submit "Newsletter abonnieren"]
``
Der Feldname email ist wichtig. Er muss später mit dem Systemnamen des Eingabefeldes im CiviCRM Form Processor übereinstimmen.
Öffnen Sie anschließend den Reiter Meldungen. Dort können Sie die Erfolgsmeldung ändern, die nach dem Absenden des Formulars angezeigt wird.
Verwenden Sie beispielsweise folgenden Text:
Vielen Dank. Wir haben Ihnen eine E-Mail mit einem Bestätigungslink gesendet. Ihre Anmeldung wird erst wirksam, nachdem Sie diesen Link aufgerufen haben.
Öffnen Sie danach den Reiter Zusätzliche Einstellungen.
Wenn Contact Form 7 keine zusätzliche Nachricht per E-Mail versenden soll, können Sie den regulären Mailversand des Plugins abschalten. Tragen Sie dazu Folgendes ein:
skip_mail: on
Die Double-Opt-in-Mail zur Newsletteranmeldung wird nicht von Contact Form 7, sondern später von CiviCRM versendet.
4.3 Formular in eine WordPress-Seite einbetten
Nach dem Speichern zeigt Contact Form 7 einen Shortcode an, beispielsweise:
[contact-form-7 id="1234" title="Newsletteranmeldung"]
Fügen Sie diesen Shortcode an der gewünschten Stelle in einen WordPress-Beitrag oder eine WordPress-Seite ein.
Das Formular wird nun auf der Website dort angezeigt, wo Sie diesen Shortcode eingefügt haben. Die darin eingegebene E-Mail-Adresse wird allerdings noch nicht an CiviCRM übermittelt. Dazu müssen Sie WordPress im nächsten Schritt um einen kleinen PHP-Code ergänzen.
5. WordPress mit CiviCRM verbinden
Die WordPress-Erweiterung Contact Form 7 stellt einen sogenannten Hook mit dem Namen wpcf7_before_send_mail bereit.
Ein Hook ist ein Erweiterungspunkt in WordPress. Eigener PHP-Code kann sich an einem solchen Erweiterungspunkt in den Verarbeitungsablauf eines Plugins einschalten.
Der Hook wpcf7_before_send_mail wird nach der Prüfung des Formulars, aber vor dem abschließenden Erfolgsergebnis ausgeführt. Der von uns ergänzte Code kann deshalb
- die eingegebene E-Mail-Adresse auslesen,
- die Adresse an CiviCRM übermitteln,
- auf technische Fehler reagieren und
- bei einem Fehler verhindern, dass das Formular fälschlicherweise eine erfolgreiche Anmeldung meldet.
5.1 Einen Kontakt für die Schnittstelle anlegen
In dem kleinen PHP-Code, den wir gleich in WordPress einfügen, werden Zugangsdaten für CiviCRM eingetragen. Dafür legen wir in CiviCRM einen eigenen technischen Benutzer an. Er dient ausschließlich dazu, Daten aus WordPress zu übermitteln. So können seine Rechte eingeschränkt und der Zugang bei Bedarf unabhängig von persönlichen Benutzerkonten gesperrt oder geändert werden.
Legen Sie in CiviCRM unter Kontakte → Neue Person zunächst einen eigenen Kontakt an, beispielsweise:
- Nachname:
formprocessor_api_kontakt - E-Mail-Adresse: eine ausschließlich für die Schnittstelle verwendete Adresse
- Kontakttyp: natürliche Person
Der Kontakt repräsentiert keine echte Person. Er dient ausschließlich dazu, die Berechtigungen und den API-Key der Schnittstelle eindeutig zuzuordnen.
API-Keys sind in CiviCRM immer einem Kontakt beziehungsweise dem mit diesem Kontakt verbundenen Benutzer zugeordnet. Über diesen Benutzer bestimmt CiviCRM, welche Aktionen ein Aufruf der Schnittstelle ausführen darf.
5.2 Eine eigene Benutzerrolle anlegen
Legen Sie unter Administration → Benutzer und Berechtigungen → Benutzerrollen eine Rolle mit einer eindeutigen Bezeichnung an, beispielsweise:
formprocessor_api_rolle
Erteilen Sie dieser Rolle nur die für die Schnittstelle erforderlichen Berechtigungen:
- CiviCRM: CiviCRM verwalten
- CiviCRM: Alle Kontakte bearbeiten
Die Schnittstelle sollte aus Sicherheitsgründen keine allgemeine Administratorrolle erhalten.
5.3 Einen Benutzer anlegen
Öffnen Sie anschließend Administration → Benutzer und Berechtigungen → Benutzerkonten. Wählen Sie dort Benutzer hinzufügen und tragen Sie beispielsweise ein:
- Benutzername:
formprocessor_api_benutzer - E-Mail-Adresse: die beim technischen Kontakt hinterlegte Adresse
- Verknüpfter Kontakt:
formprocessor_api_kontakt - Rolle:
formprocessor_api_rolle
Der Benutzer muss ausdrücklich mit dem zuvor angelegten Kontakt verbunden werden. Nur dann kann der API-Key dieses Kontakts für einen Aufruf mit den Berechtigungen des Benutzers verwendet werden.
Verwenden Sie für diesen Benutzer ein langes, zufällig erzeugtes Passwort, auch wenn die reguläre Anmeldung später nicht benötigt wird.
5.4 Site-Key und API-Key erzeugen
Für den kleinen PHP-Code benötigen Sie gleich
- den Site-Key Ihrer CiviCRM-Instanz und
- den API-Key des technischen Benutzers.
Im polishub von polbeo ist die Erweiterung API Key bereits installiert. Die Erweiterung sorgt dafür, dass API-Key und Site-Key für jeden Kontakt erzeugt und angezeigt werden können.
Öffnen Sie den Kontakt formprocessor_api_kontakt. Auf der Kontaktansicht erscheint eine Registerkarte API Key. Dort können Sie
- einen neuen API-Key erzeugen,
- den bestehenden API-Key anzeigen oder ändern und
- den Site-Key der CiviCRM-Instanz einsehen.
Der API-Key sollte aus einer langen, zufälligen Zeichenfolge bestehen und ausschließlich für diese Schnittstelle verwendet werden. Verwenden Sie denselben API-Key nicht gleichzeitig für andere Dienste.
Kopieren Sie Site-Key und API-Key in einen Passwortmanager. Beide Werte ermöglichen authentifizierte Zugriffe auf Ihre CiviCRM-Instanz und sollten nicht in ungeschützten Dokumentationen oder E-Mails abgelegt werden.
5.5 Den WordPress-Hook einrichten
Der kleine PHP-Code, von dem hier dauernd die Rede ist, macht sich jetzt den von Contact Form 7 bereitgestellten „WordPress-Hook“ zunutze.
PHP-Code kann man am einfachsten in WordPress einfügen, indem man das WordPress-Plugin Code Snippets installiert.
Öffnen Sie das Backend Ihrer WordPress-Website. Gehen Sie zu Plugins → Plugin hinzufügen. Suchen Sie dort nach dem Plugin Code Snippets, installieren Sie es und aktivieren Sie es anschließend.
Öffnen Sie danach Snippets → Neu hinzufügen.
Softwareentwickler bezeichnen solche kleinen PHP-Code-Stücke auch als „Schnipsel“, englisch „Snippet“. Unser kleiner PHP-Code ist ein solches „Snippet“. Er reagiert auf das Absenden des zuvor angelegten Contact-Form-7-Formulars. Er liest die E-Mail-Adresse aus und ruft über die CiviCRM-API den Form Processor auf.
5.6 Das PHP-Snippet einfügen
Fügen Sie den folgenden PHP-Code hinzu.
Falls Sie schon einmal mit PHP-Code gearbeitet haben und unsicher sind: Die bei PHP-Code sonst übliche einführende Zeile <?php benötigen Sie dort nicht.
Der Code führt vier Schritte aus:
- Er reagiert nur auf das vorgesehene Newsletterformular.
- Er liest die eingegebene E-Mail-Adresse aus.
- Er übermittelt die Adresse an den Form Processor in CiviCRM.
- Falls CiviCRM die Anfrage nicht verarbeitet, zeigt das Formular eine Fehlermeldung an.
Hier also der PHP-Code, den Sie kopieren und dort einfügen. Beachten Sie die Aufgabe, die direkt unterhalb des Codeabschnitts steht!
add_action(
'wpcf7_before_send_mail',
'newsletter_an_civicrm_senden',
10,
3
);
function newsletter_an_civicrm_senden(
$contact_form,
&$abort,
$submission
) {
// Nur dieses Contact-Form-7-Formular verarbeiten.
if ((int) $contact_form->id() !== 1234) {
return;
}
// E-Mail-Adresse auslesen und prüfen.
$data = $submission->get_posted_data();
$email = sanitize_email($data['email'] ?? '');
if (!is_email($email)) {
$abort = true;
$submission->set_response(
'Bitte geben Sie eine gültige E-Mail-Adresse ein.'
);
return;
}
// E-Mail-Adresse an den CiviCRM Form Processor senden.
$response = wp_remote_post(
'https://crm.example.org/civicrm/ajax/rest',
[
'timeout' => 15,
'body' => [
'entity' => 'FormProcessor',
'action' => 'newsletter_signup',
'json' => 1,
'key' => 'DEIN_SITE_KEY',
'api_key' => 'DEIN_API_KEY',
'email' => $email,
],
]
);
// Antwort von CiviCRM auswerten.
if (is_wp_error($response)) {
$error = true;
} else {
$status = wp_remote_retrieve_response_code($response);
$result = json_decode(
wp_remote_retrieve_body($response),
true
);
$error =
$status < 200
|| $status >= 300
|| !is_array($result)
|| !empty($result['is_error']);
}
// Bei einem Fehler keine erfolgreiche Anmeldung melden.
if ($error) {
$abort = true;
$submission->set_response(
'Die Anmeldung konnte technisch nicht verarbeitet werden. '
. 'Bitte versuchen Sie es später erneut.'
);
}
}
Passen Sie im Code folgende Werte an:
1234: ID Ihres Contact-Form-7-Formularshttps://crm.example.org: Adresse Ihrer CiviCRM-Instanznewsletter_signup: Systemname Ihres Form ProcessorsDEIN_SITE_KEY: Site-Key Ihrer CiviCRM-InstanzDEIN_API_KEY: API-Key des technischen Benutzers
Die ID des Contact-Form-7-Formulars finden Sie unter anderem in dem Shortcode, den Contact Form 7 nach dem Speichern des Formulars anzeigt.
Der Systemname newsletter_signup wird im weiteren Verlauf dieser Anleitung beim Anlegen des Form Processors verwendet.
Die CiviCRM-Zugangsdaten, die wir oben angelegt haben, befinden sich jetzt ausschließlich auf der Serverseite von WordPress. Sie werden nicht an den Browser der Websitebesucher ausgeliefert. Schlägt die Übermittlung an CiviCRM fehl, bricht der Code die Verarbeitung ab. Contact Form 7 zeigt dann nicht seine reguläre Erfolgsmeldung, sondern den im Code hinterlegten Fehlertext an.
Aktivieren Sie das Snippet nach der Anpassung.
Der Aufruf wird zu diesem Zeitpunkt noch nicht erfolgreich sein, weil Sie den angesprochenen Form Processor in CiviCRM noch nicht eingerichtet haben. Das machen wir gleich als Nächstes.
Die Verbindung auf der WordPress-Seite ist damit aber vorbereitet.
5.7 Das Formular gegen Spam absichern
Das Double-Opt-in-Verfahren, das wir hier mithilfe von CiviCRM einrichten, verhindert, dass eine fremde E-Mail-Adresse ohne Bestätigung in den Newsletterverteiler aufgenommen wird. Es verhindert jedoch nicht, dass automatisierte Anfragen unerwünschte E-Mail-Adressen in Ihr CiviCRM eintragen und zahlreiche unerwünschte Bestätigungsmails auslösen.
Schützen Sie das Formular in WordPress deshalb zusätzlich gegen Spam. Für Contact Form 7 bietet sich insbesondere Cloudflare Turnstile an.
Öffnen Sie in WordPress Formulare → Integration und richten Sie dort die Turnstile-Integration mit einem Site-Key und einem Secret-Key von Cloudflare ein. Contact Form 7 schützt anschließend automatisch die damit erstellten Formulare. Das Newsletterformular selbst muss dafür normalerweise nicht verändert werden.
Die Spamprüfung findet statt, bevor der PHP-Code unseres Snippets ausgeführt wird, der die E-Mail-Adresse an CiviCRM übermittelt. Als Spam erkannte Anfragen werden daher nicht an den Form Processor in CiviCRM weitergegeben.
Alternativ oder ergänzend können Sie Contact Form 7 mit Akismet verbinden. Dabei ist zu beachten, dass Formulardaten zur Prüfung an den Dienst übermittelt werden. Die Nutzung muss deshalb in Ihrer Datenschutzerklärung berücksichtigt werden.
Falls trotz des Spamschutzes viele wiederholte Anfragen auftreten, sollten Sie zusätzlich begrenzen, wie häufig eine einzelne IP-Adresse das Formular innerhalb eines bestimmten Zeitraums absenden darf. Eine solche Begrenzung kann je nach Umgebung beim Hostinganbieter, auf dem Webserver oder über eine vorgeschaltete Firewall eingerichtet werden.
6. Newslettergruppe anlegen
Damit wir den Kontakt in den Newsletterverteiler eintragen können, muss ein solcher „Verteiler“ überhaupt erst existieren. In CiviCRM werden dafür sogenannte „Gruppen“ verwendet. Man kann beliebig viele verschiedene Gruppen anlegen. Sie ahnen es: Man könnte sich so gesehen mit dem hier beschriebenen Verfahren nicht nur für einen Newsletter anmelden, sondern auch noch für ganz andere Verteiler beziehungsweise Gruppen.
Um eine Gruppe anzulegen, gehen Sie in CiviCRM auf Kontakte → Gruppen verwalten → Gruppe hinzufügen. Legen Sie beispielsweise eine Gruppe mit dem Namen Newsletter an.
Aktivieren Sie für diese Gruppe:
- als Gruppentyp Mailingliste und
- als Sichtbarkeit Öffentliche Seiten.
Die Kennzeichnung als Mailingliste sorgt dafür, dass die Gruppe in CiviMail verwendet werden kann. Die öffentliche Sichtbarkeit ist für den in dieser Anleitung verwendeten Anmeldevorgang erforderlich, weil nur Gruppen mit der Sichtbarkeit „Öffentliche Seiten“ den Double-Opt-in-E-Mail-Versand auslösen.
Notieren Sie die numerische ID der Gruppe. Sie ist beispielsweise in der Adresse der Bearbeitungsseite erkennbar. Die Gruppen-ID wird später für den Double-Opt-in-Aufruf benötigt.
7. In CiviCRM die Kontaktdublettenprüfung konfigurieren
Bevor Sie den Form Processor anlegen, konfigurieren Sie, wie CiviCRM nach einem bereits vorhandenen Kontakt suchen soll. Dafür verwenden wir den Extended Contact Matcher, kurz XCM. XCM sucht anhand der CiviCRM-Dublettenregeln nach einem passenden Kontakt. Nur wenn kein geeigneter Kontakt gefunden wird, legt es einen neuen Kontakt an.
Öffnen Sie Administration → Systemeinstellungen → Extended Contact Matcher.
In der Übersicht gibt es keinen Button zum Anlegen eines neuen Profils. Stattdessen erstellen Sie eine Kopie des bereits vorhandenen Profils default. Klicken Sie dafür in der Zeile des Profils default auf copy. Vergeben Sie anschließend beispielsweise:
- Profil-ID:
newsletter_abonnent - Profilname: Newsletteranmeldung über WordPress
Die Profil-ID darf keine Leerzeichen enthalten.
Die Konfigurationsmaske enthält zahlreiche Einstellungen. Für unser einfaches Newsletterformular müssen Sie jedoch nur wenige davon anpassen.
Bei „Allgemeine Einstellungen“ definieren Sie für „Primary Phone Type“ den Wert „Telefon“ und für „Default Website Type“ den Wert „Hauptadresse“. Wir konfigurieren diese Felder nur, weil sie systemseitig Pflichtfelder sind, die für uns jedoch irrelevant sind, weil wir ohnehin keine entsprechenden Daten zur Prüfung zur Verfügung haben. Einzig das Feld „Bei mehreren Treffern, nimm:“ ist relevant. Sie können wählen, ob XCM den ältesten Kontakt, den neuesten Kontakt oder keinen der gefundenen Kontakte verwendet. Welche Einstellung sinnvoll ist, hängt von Ihrem Datenbestand ab. Wenn in Ihrer Organisation gelegentlich mehrere Personen dieselbe E-Mail-Adresse verwenden, kann die automatische Auswahl eines einzelnen Kontakts zu einer falschen Zuordnung führen.
Im Abschnitt „Update Options“ wird nichts eingetragen!
Bei den Zuordnungsregeln wird dann bei Regel #1 eine Dublettenregel ausgewählt, die Kontakte anhand ihrer gespeicherten E-Mail-Adressen findet, beispielsweise: Email only (any email). Setzen Sie die übrigen Regeln auf Keine. Andernfalls könnte XCM versuchen, Regeln anzuwenden, für die das Formular gar keine Daten liefert.
Falls die benötigte E-Mail-Regel nicht zur Auswahl steht, öffnen Sie zunächst Kontakte → Duplikate finden und zusammenführen. Legen Sie dort eine passende Dublettenregel für Personen anhand der E-Mail-Adresse an. Kehren Sie anschließend zur XCM-Konfiguration zurück und wählen Sie die Regel aus.
Auch unter
- Identifizierte Kontakte,
- Neu erstellte Kontakte,
- Duplikatsaktivität und
- Difference Handling
sind für unseren Anwendungsfall keine zusätzlichen Aktionen erforderlich. Die Aufnahme in die Newslettergruppe erfolgt später durch den Form Processor und nicht durch XCM.
Speichern Sie das Profil.
Die Dublettenprüfung sorgt nun dafür, dass eine erneute Anmeldung mit derselben E-Mail-Adresse möglichst dem bereits vorhandenen Kontakt zugeordnet wird, anstatt jedes Mal einen neuen Kontakt anzulegen.
8. Das Newsletter-Abonnement mit einem Form Processor verarbeiten
Nachdem das WordPress-Formular, die Newslettergruppe und die Dublettenprüfung vorbereitet sind, legen Sie in CiviCRM den Form Processor an.
Der Form Processor nimmt die von WordPress übermittelte E-Mail-Adresse entgegen und führt die einzelnen Verarbeitungsschritte aus.
8.1 Form Processor anlegen
Öffnen Sie in CiviCRM Administration → Automatisierung → Form Processors und klicken Sie auf Form Processor hinzufügen.
Vergeben Sie beispielsweise folgende Werte:
- Titel: Newsletteranmeldung über WordPress
- Systemname:
newsletter_signup - Status: aktiviert
- Berechtigung: CiviCRM: Zugriff auf CiviCRM-Backend und -API
Der Systemname darf keine Leerzeichen enthalten. Er wird als Name der API-Aktion verwendet.
Das zuvor eingefügte WordPress-Snippet ruft den Form Processor mit folgendem Wert auf:
newsletter_signup
Wenn Sie einen anderen Systemnamen verwenden, müssen Sie den Wert auch im WordPress-Snippet entsprechend ändern.
8.2 Eingabefeld definieren
Fügen Sie im Form Processor unter Inputs ein Eingabefeld hinzu.
Verwenden Sie beispielsweise folgende Einstellungen:
- Typ: Short text
- Titel: E-Mail
- Systemname:
email - Pflichtfeld: ja
Der Systemname ist entscheidend. Das WordPress-Formular und das PHP-Snippet übermitteln die E-Mail-Adresse unter genau diesem Namen:
email
Wenn die Systemnamen nicht übereinstimmen, kann der Form Processor den übermittelten Wert nicht verwenden.
8.3 Kontakt mit XCM finden oder anlegen
Fügen Sie unter Aktion eine Aktion vom Typ „Extended Contact Matcher (XCM)“ hinzu, die den Extended Contact Matcher aufruft.
- Titel: Kontakt anlegen
- XCM-Profil: Newsletter-Abonnent
- Default Contact Type: Person
- E-Mail: Input:
email
Den Punkt „E-Mail“ finden Sie im Abschnitt „Parameter Mapping“. Dieser Abschnitt ist eine ziemlich lange Liste. Da wir aber in unserem Fall ausschließlich eine E-Mail-Adresse zur Verfügung haben, nutzen wir eben auch nur dieses eine Feld.
Speichern Sie die Konfiguration der Aktion.
9. Automatisch eine Double-Opt-in-Mail versenden
Im nächsten Schritt ergänzen Sie den eigentlichen Newsletter-Anmeldevorgang.
Der Kontakt soll nicht sofort reguläres Mitglied der Newslettergruppe werden. Stattdessen soll CiviCRM zunächst eine Bestätigungsmail versenden.
Erst nachdem der Empfänger den darin enthaltenen Link aufgerufen hat, wird die Gruppenmitgliedschaft aktiviert.
9.1 Double-Opt-in auslösen
Fügen Sie im Form Processor als nächste Aktion den Anmeldevorgang hinzu.
Verwenden Sie dafür:
- Aktionstyp: Mailing Event: Subscribe to mailing list
- Titel: DOI-E-Mail versenden
- Subscribe to mailing list: Newsletter
- subscribe e-mail: Input:
email - CiviCRM-ID: Aktion: Kontakt anlegen: CiviCRM-ID
Verwenden Sie an dieser Stelle nicht einfach die Aktion „Kontakt zu Gruppe hinzufügen“.
Diese Aktion würde den Kontakt unmittelbar als reguläres Gruppenmitglied eintragen. Der eigentliche Bestätigungsschritt würde dadurch umgangen.
„Mailing Event: Subscribe to mailing list“ startet dagegen den Anmeldevorgang von CiviCRM:
- Der Kontakt wird der Newslettergruppe zunächst noch nicht abschließend hinzugefügt. Er hat jetzt dort den Status „pending“.
- CiviCRM versendet eine E-Mail mit einem Bestätigungslink.
- Der Empfänger ruft den Bestätigungslink auf.
- CiviCRM aktiviert daraufhin die Gruppenmitgliedschaft.
9.2 Form Processor innerhalb von CiviCRM testen
Testen Sie den Form Processor. Gehen Sie dazu beim Form Processor auf den Reiter Try out.
Geben Sie eine erreichbare Testadresse ein und führen Sie den Form Processor aus.
Prüfen Sie anschließend:
- Wurde ein bereits vorhandener Kontakt gefunden oder ein neuer Personenkontakt angelegt?
- Ist beim Kontakt eine noch nicht bestätigte Gruppenzugehörigkeit erkennbar?
- Wurde die Double-Opt-in-Mail versendet?
- Führt der Bestätigungslink zu einer erfolgreichen Anmeldung?
- Ist der Kontakt nach der Bestätigung reguläres Mitglied der Newslettergruppe?
Testen Sie den Form Processor zuerst in CiviCRM.
10. Den vollständigen Anmeldevorgang prüfen
Nachdem der Form Processor innerhalb von CiviCRM erfolgreich getestet wurde, führen Sie einen vollständigen Test über das WordPress-Formular durch.
Verwenden Sie dafür eine neue, erreichbare E-Mail-Adresse.
Prüfen Sie nicht nur, ob Contact Form 7 nach dem Absenden eine Erfolgsmeldung anzeigt. Kontrollieren Sie den gesamten Weg der Daten:
- Das Formular lässt sich absenden.
- Die E-Mail-Adresse wird korrekt übermittelt.
- XCM findet einen vorhandenen Kontakt oder legt bei Bedarf einen neuen Kontakt an.
- XCM legt bei einer erneuten Anmeldung nicht unnötig einen weiteren Kontakt an.
- Die Double-Opt-in-Mail wird zugestellt.
- Der Bestätigungslink in der E-Mail funktioniert.
- Die Gruppenmitgliedschaft wird erst nach der Bestätigung aktiv.
- Eine erneute Anmeldung derselben Adresse erzeugt keinen unnötigen zusätzlichen Kontakt.
Testen Sie außerdem bewusst einen technischen Fehler.
Tragen Sie beispielsweise vorübergehend
- eine fehlerhafte CiviCRM-Adresse oder
- einen ungültigen API-Key
in das WordPress-Snippet ein.
Das Formular sollte in diesem Fall keine erfolgreiche Anmeldung behaupten. Stattdessen sollte die im Snippet hinterlegte Fehlermeldung erscheinen:
Die Anmeldung konnte technisch nicht verarbeitet werden. Bitte versuchen Sie es später erneut.
Damit ist sichergestellt, dass ein Besucher nur dann eine Erfolgsmeldung erhält, wenn CiviCRM die Anmeldung tatsächlich entgegengenommen und verarbeitet hat.
Sie haben noch kein CiviCRM? Dann jetzt starten und vier Wochen kostenlos testen