Salesforce Web-2-Lead mit WordPress

Als Nutzer von Salesforce und WordPress stand ich just vor der Herausforderung, ein Web-to-Lead Formular in diesen Blog einzubinden (siehe rechts in der Seitenleiste). So gehen die Anfragen aus dem Formular direkt in mein Salesforce ein. Natürlich könnte ich einfach das Web-to-Lead Formular direkt einbinden, doch ich hatte einige weitere Anforderungen dazu:

  • Validierung der Eingaben: Ist die E-Mail-Adresse im korrekten Format
  • Deklarierung von Pflichtfeldern: E-Mail-Adresse muss angegeben werden
  • Spam-Schutz via Akismet (nicht Captcha, da unkomfortabel für den Nutzer)

Um diese Dinge nicht selber programmierenn zu müssen, habe ich mich umgeschaut, was es im Bereich „Formulare“ an WordPress-Plugins gibt.

Das Standard Plugin für eine Integration ist „WordPress-to-lead for Salesforce CRM“. Es ist gut zu benutzen, deckt allerdings nicht alle meine Anforderungen ab. Nach einigem Suchen und Ausprobieren bin ich schlussendlich bei dem Plugin Fast Secure Contact Form gelandet, welches alle meine Anforderungen erfüllt und darüber hinaus noch weitere nützliche Features mitbringt. Dieses Plugin ist kostenfrei verfügbar. Der Entwickler freut sich jedoch über eine Spende. Die Installation konnte ich unkompliziert aus meinem WordPress Backend vornehmen.

Gehen wir das weitere Setup im Detail durch…

Vorbereitung

Zunächst habe ich mir mein Web-to-Lead-Formular im Salesforce-Setup erstellt. Dieses brauchen wir später, um einige IDs dort heraus zu kopieren. Gehen Sie hierzu auf Setup -> Anpassen -> Leads -> Online-Lead-Erfassung und klicken Sie auf diese Schaltfläche;

 [Zum vergrößern anklicken]

Wählen Sie sich nun die Felder aus, die Sie später benötigen, und klicken Sie auf „Generieren“.

Konfiguration des gewählten Plugins

Bei der Konfiguration musste ich einige Kniffe vollführen. Hier die wichtigsten im Überblick. Zum Vergleich: Das Formular können Sie in der Realität gleich hier in der rechten Seitenleiste sehen.

Gehen wir zunächst im WordPress Backend zur Konfiguration:

Formular Willkommensnachricht

Hier können Sie eine allgemeine Beschreibung eingeben, welche über dem Formular angezeigt wird.

[Zum vergrößern anklicken]

E-Mail senden

Da ich keine E-Mails von WordPress erhalten möchte, habe ich die Punkte „E-mail“ und „Confirmation E-Mail“ übersprungen bzw. diese Option deaktiviert.

Akismet (Spam-Schutz)

Nun kommt die Akismet-Konfiguration. Akismet ist ein Dienst der Nachrichten auf ihren Spam-Gehalt überprüft.

Hier habe ich mich dafür entschieden, dass als Spam erkannte Nachrichten nicht durchgelassen werden. Dies kann sehr wichtig sein, denn es gibt durchaus Nutzer, die sich über Nacht mit tausenden von unerwünschten Leads in ihrem System konfrontiert sahen. Bitte machen Sie mich aber nicht dafür verantwortlich, wenn ein „heißer Lead“ nicht in Ihrem Salesforce angekommen ist 😉

Da Akismet bei mir bereits eingerichtet war, musste ich an dieser Stelle keine weiteren Aktionen durchführen. Zum Testen der Konfiguration habe ich den entsprechenden Haken gesetzt.

[Zum vergrößern anklicken]

Captcha

Da ich Captchas für äußerst unkomfortabel halte, habe ich diesen Spam-Schutz ausgeschaltet.

Felder des Formulars

Nun legen Sie fest, welche Felder in Ihrem Formular angezeigt werden sollen. Meine Standard-Felder habe ich wie folgt konfiguriert. Das ist natürlich persönlicher Gusto:

[Zum vergrößern anklicken]

Weiter habe ich einige benutzerdefinierte Felder definiert. Z.B. „Firma“ und die drei „Abo“-Häkchen, mit denen der Benutzer steuern kann, welche Information er erhält.

[Zum vergrößern anklicken]

Damit die „Abo“ Häkchen direkt gesetzt sind, habe ich die „Default option“ auf „1“ gesetzt.

Zum nachlesen: Offizielle Doku zu Feldern.

Http POST – Silent Remote Sending

Hier wird es spannend. Um die Daten aus dem Formular nach Salesforce zu bekommen, muss dieses per http request an den Salesfore-Server gesendet werden. Das richten wir mit der Funktion „Silent Remote Sending“ ein.

[Zum vergrößern anklicken]

Die „Silent Remote URL“ lautet:

https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8

Unter „Silent send fields to rename“ müssen Sie die Feldnamen aus dem Formular mit denen aus Salesforce übersetzen. Eine Übersicht zu den im Formular verwendeten Feldnamen erhalten Sie mit einem Klick auf „Hilfe“ über dem Eingabe-Feld.

Beachten Sie, dass die Salesforce Feldnamen für benutzerdefinierte Felder in Form einer ID gegeben werden müssen. Dies wird bei „ex_field2“ bis 4 schön deutlich. Die IDs der entsprechenden Felder erhalten Sie am einfachsten, indem Sie diese in das Web-to-Lead Formular generieren lassen.

Im Feld „Silent send key value pairs to add“ müssen Sie IHRE Salesforce Org Id und – sofern gewünscht – Kampagnen-ID eintragen. Diese erhalten Sie auch aus dem eingangs generierten Web-to-Lead Formular.

Hier noch die offizielle Doku zu diesem Abschnitt.

Sonderfall Checkboxen

Sofern Sie in Ihrem Formular auch checkboxen verwenden (so wie ich), müssen Sie noch eine kleine Einstellung vornehmen. Dieses Plugin sendet für checkboxen den Wert „* ausgewählt“. Salesforce erwartet hier aber eine „1“. Um das Verhalten zu ändern, müssen wir eine Zeile in der PHP-Datei des Plugins ändern.

Entscheidend ist hier die Zeile 752 (alt) bzw. 753 (neu) in der Datei „si-contact-form-process.php“.

[Zum vergrößern anklicken]

Ich weiß nicht, wie es sich mit „multi-checkboxen“ verhält. Hierfür müsste wohl auch die Zeile 742 angepasst werden, was ich aber weder getan, noch getestet habe.

Abschluss

Die übrige Konfiguration ist für die Funktionalität nicht entscheidend. Nehmen Sie noch Änderungen nach Ihren Anforderungen vor.

Sie können das Formular nun mit dem Shortcode

in jede beliebige WordPress Seite einbinden.

Über Rückmeldungen freue ich mich wie immer sehr. Vielleicht gibt es ja auch noch andere gute Plugins, mit denen das gleiche Ziel zu erreichen ist. Ich würde mich natürlich freuen, davon zu hören.

//Hannes

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.