Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Die einfachste Möglichkeit Anmeldeformulare von Drupal mit Maileon zu verknüpfen, ist über WebForms einen Handler zu definieren, welcher die Daten an die Maileon Webhook-API übergibt. Leider ist der direkte Weg aktuell nicht möglich, denn für die namen der Felder in WebForms dürfen nur Kleinbuchstaben verwendet werden und die Handler erlauben keine Angabe eines Mappings. Für die Webhook-API ist jedoch die exakte Groß-/ und Kleinschreibung wichtig, somit wird eine MIddleware als Übersetzer benötigtConnecting subscription forms in Drupal to Maileon can be done by setting up a WebForm and a handler.

However, since field names in WebForms may only contain lowercase letters, a middleware to convert the field names is required.

Subscribe

Endpoint

POST https://integrations.maileon.com/xsic/ext/drupal/subscribe.php

...

Name

Value

Description

Content-Type

application/x-www-form-urlencoded

The middleware accepts standard form POST inputs. For this, a specific content type header must be send with each request.

Parameter

Name

Required / optionalOptional

Default

Description

Type

api_key

Required

The Maileon API key to access the REST API and to identify the Maileon account.

New keys can be created in Maileon under Settings → API Keys.

String

permission

Die MIddleware wird aus einem POST-Formular angesprochen, genauer gesagt muss der Content-Type-Header auf „application/x-www-form-urlencoded“ gestellt und die Daten wie üblich als Teil des Bodies übertragen werden.

Folgende Parameter können oder müssen dabei übergeben werden:

  • „email“: Es ist zwingend erforderlich, dass es einen Parameter „email“ gibt. In einem Formular muss das Feld also auch genau diesen Schlüssel aufweisen.

  • „account_id“: Wenn es möglich sein soll mehr als nur eienn Account zu verwenden, etwa wenn verschiedene Formulare auf verschiedene Accounts verweisen, so wird pro Account eine neue Konfiguration im Skript hinzugefügt. Diese Account-Konfiguration kann man über die Variable „account_id” spezifizieren. Wird keine ID angegeben, so wird ein fest definierter Fallback verwendet. Dieses Feld sollte am besten als verstecktes Feld im Formular hinzugefügt werden.

  • „doi_key“: Wenn ein Wert für „doi_key“ angegeben wird, so wird das entsprechende DOI ausgelöst. Wird das Attribut gar nicht oder mit leerem Wert übergeben, so wird das Default-DOI-Mailing des Kontos übergeben. Hinweis: wird ein DOI-Schlüssel angegeben der im Maileon-Konto nicht existiert, so wird die Anmeldung fehlschlagen. Genau so verhält es sich, wenn ein DOI-Mailing durch ein neues DOI-Mailing in Maileon ersetzt wird.
    Hier ist darauf zu achten wieder den gleichen DOI-Schlüssel in den Basiseinstellungen des neuen Mailings einzustellen.

  • „webform_id“: Dieser Parameter kann optional angegeben werden. Wenn hier die ID des Formulares übergeben wird, so wird dies als „Subscription Source“ beim Registrieren des Kontaktes eingetragen und es ist möglich Kontakte über die Kontaktfilter in Maileon zu unterscheiden.

Weiterhin werden per Default einige Standard-Felder übernommen: „salutation“, „fullname“, „firstname“ und „lastname“. Diese müssen im Formular genau so benannt werden, da der Name des Feldes direkt vom WebForm-Handler weitergeleitet wird. Existieren die Felder nicht, so wird dieser Default ignoriert und hat keine weiteren Auswirkungen. Werden weitere Felder benötigt kann einerseits das Skript entsprechend erweitert werden, andererseits benötigt möglicherweise nicht jedes Formular die gleichen Felder und es ist natürlich nicht immer möglich ein Formular entsprechend aufzubauen. Hierzu wird ein dynamisches Feldmapping verwendet, welches über zwei Felder gesteuert werden kann. Auch hier empfiehlt es sich diese Konfigurationen als versteckte Felder im Formular unterzubringen.

  • mapping_standard_fields

  • mapping_custom_fields

Die Werte der Felder sind als JSON-Objekte zu befüllen und folgen der Konvention, dass der Attribut-Name dem Namen des Feldes im Formular und der Wert dem Namen des Feldes in Maileon entspricht. Ein JSON-Objekt ist wie folgt definiert:

Code Block
{"FeldnameImFormular ": "FeldnameInMaileon"}

Bei mehr als einem Eintrag werden diese Kommasepariert:

Code Block
{"FeldnameImFormular1 ": "FeldnameInMaileon1", "FeldnameImFormular2 ": "FeldnameInMaileon2"}

Es ist notwendig die korrekte Schreibweise der Maileon-Variablen einzuhalten. Für Standardfelder wie Vor- und Nachname sind die korrekten Bezeichnungen in der Dokumentation zu finden.

Bei den Custom-Feldern ist es lediglich notwendig, die genaue Groß- und Kleinschreibung der in Maileon erzeugten Felder einzuhalten.

Beispiel:

...

Optional

1 (Permission “None”)

The contact’s permission if no DOI process should be started. Will be ignored and set to the default otherwise.

Available permission methods:
1: None
2: Single-Opt-In
3: Confirmed-Opt-In
4: Double-Opt-In
5: Double-Opt-In with single user tracking
6: Other

Check the documentation for further information about all available permission methods.

Integer

doi

Optional

false

Flag to start a DOI process for a new contact.

Boolean

tracking

Optional

false

Flag to set allowance for individual user tracking (Opens, Clicks etc.).

Boolean

doi_key

Optional

An alphanumerical key to identify a DOI mailing to be used in the DOI process. If omitted the account’s default DOI mailing will be used.

String

webform_id

Optional

ID of the WebForm. May be used to segment contacts in Maileon by filtering for the DOI attribute “subscriptionPage” (and/or the DOI attribute “source = Drupal”).

String

email

Required

The contact’s email address. Can not be part of the mapping parameters listed below.

String

salutation

Optional

The contact’s salutation. May also be defined by using the standard field mapping.

String

fullname

Optional

The contact’s full name. May also be defined by using the standard field mapping.

String

firstname

Optional

The contact’s first name. May also be defined by using the standard field mapping.

String

lastname

Optional

The contact’s last name. May also be defined by using the standard field mapping.

String

mapping_standard_fields

Optional

E.g.: {"FieldNameInForm1": "FieldNameInMaileon1", "FieldNameInForm2": "FieldNameInMaileon2"}

JSON

mapping_custom_fields

Optional

E.g.: {"FieldNameInForm1": "FieldNameInMaileon1", "FieldNameInForm2": "FieldNameInMaileon2"}

JSON

<additional-fields>

Optional

Any additional fields that are being mapped in one of the above mappings.

String

WebForm configuration

First, the form needs to be created and elements need to be added

Info

While adding an element, it’s key (name in the data model) can be edited by clicking on “edit” next to “key”. See figure 1 below for further information.

...

Figure 2 displays an example with an email address, a first name and a last name. Additional fields are being converted by using the parameter “mapping_standard_fields”.

...

The mapping is being defined by a JSON object, in which the object’s attribute name maps the field's name in the WebForm and it’s value maps the field's name in Maileon.

Info

A list of all available standard fields in Maileon can be found in the documentation.

Example:

Code Block
{
  "Field in WebForms": "Field in Maileon",
  "fname": "FIRSTNAME",
  "lname": "LASTNAME"}' />
<input type="hidden" name="mapping_custom_fields" value='{"customer_dep":"Department"}' />

Mit obigen Mappings würde also nun das Formularfeld mit dem Schlüssel/Namen “fname“ in das Standardfeld „FIRSTNAME“ (=Vorname) eingetragen und „lname“ würde entsprechend in das Maileon-Feld LASTNAME (=Nachname) eingetragen werden. Zusätzlich würde der Wert des Formular-Feldes „customer_dep“ in das Custom-Feld „Department“ eingetragen.

Somit können beliebige Felder aus dem Formular in Maileon eingebunden werden, einzig das Feld „email“ ist fest vorgegeben.

Konfiguration des WebForms Handlers

Zunächst muss das Formular angelegt werden. Ein Hinweis dazu: beim Erstellen eines Elementes kann über den Link „Bearbeiten“ der Schlüssel (=Name im Datenmodell) des Elementes angepasst werden, siehe Abbildung 1.

...

Abbildung 2 zeigt ein Beispiel mit der E-Mail-Adresse, einem Vor- und einem Nachnamen. Weiterhin wird das Mapping für Standard-Felder aus dem Beispiel verwendet, siehe Abbildung 3.

...

Anschließend wird unter „Einstellungen“ -> „E-Mails / Handlers“ ein neuer Handler vom Typ „Remote Post“ hinzugefügt (Abbildung 4).

...

,
  "street": "ADDRESS",
  "zip": "ZIP",
  "city": "CITY"
}
Info

Set the element’s type to “hidden” for all elements that shouldn’t be displayed in the form.

...

WebForm handler configuration

Finally add a “Remote Post” handler to send submitted form data to the middleware.

Info

You can access the configuration in Drupal under “Settings” → “Emails / Handlers”.

...