E-Mail-Skripterstellung
HINWEIS: Es wird dringend empfohlen, das Velocity-Benutzerhandbuch für einen tiefen Einblick in das Verhalten der Velocity-Vorlagensprache zu lesen.
Apache Velocity ist eine auf Java basierende Sprache, die für die Vorlagenerstellung und Skripterstellung von HTML-Inhalten entwickelt wurde. Marketo ermöglicht die Verwendung von Skript-Token im Kontext von E-Mails. Dadurch erhalten Sie Zugriff auf Daten, die in "Chancen"und "Benutzerdefinierte Objekte"gespeichert sind, und können dynamische Inhalte in E-Mails erstellen. Velocity bietet standardmäßigen Steuerungsfluss auf hoher Ebene mit if/else, for und für jede , um bedingte und iterative Bearbeitung von Inhalten zu ermöglichen. Hier ist ein einfaches Beispiel, um eine Grußformel mit der richtigen Anrede zu drucken:
//check if the lead is male
if(${lead.MarketoSocialGender} == "Male")
if the lead is male, use the salutation 'Mr.'
set($greeting = "Dear Mr. ${lead.LastName},")
//check is the lead is female
elseif(${lead.MarketoSocialGender} == "Female")
if female, use the salutation 'Ms.'
set($greeting = "Dear Ms. ${lead.LastName},")
else
//otherwise, use the first name
set($greeting = "Dear ${lead.FirstName},")
end
print the greeting and some content
${greeting}
Lorem ipsum dolor sit amet...
Variablen
Variablen erhalten immer das Präfix '$' und werden mithilfe von #set festgelegt und aktualisiert:
#set($variable = "value")
Ihre Werte können dann über verschiedene Referenztypen mit unterschiedlichem Verhalten abgerufen werden:
$variable ##outputs 'value'
$variablename ##outputs '$variablename'
${variable}name ##outputs 'valuename'
Es gibt auch eine stille Referenznotation, bei der nach dem $
ein !
enthalten ist. Wenn bei Geschwindigkeit ein nicht definierter Verweis auftritt, bleibt die Zeichenfolge, die den Verweis darstellt, an Ort und Stelle. Wenn bei stillen Referenznotation ein nicht definierter Verweis auftritt, wird kein Wert ausgegeben:
##Defined Reference
#set($foo = "bar")
$foo ##outputs "bar"
##Undefined Reference
##normal
$baz ##outputs "$baz"
##quiet
$!baz ##outputs nothing
Weitere Informationen zum Referenzieren von Variablen finden Sie im Apache-Benutzerhandbuch.
Velocity-Tools
Das Apache Velocity-Projekt stellt Funktionen mithilfe von Velocity-Tools bereit. Diese sind lediglich Wrapper für Java-Objekte und stellen ihre Methoden über globale Variablen bereit, die für alle Skripte zur Verfügung gestellt werden.
Um beispielsweise eine Methode aus ComparisonDateTool
zu verwenden, greifen Sie über die Variable $date
in einem Skript-Token auf if zu:
#set($birthday = $convert.parseDate("2015-08-07","yyyy-MM-dd"))
##use whenIs to determine how many days away it is
$date.whenIs($birthday).days ##outputs 1
Skript-Token erstellen
Das Velocity-Skript wird mithilfe von E-Mail-Skript-Token in E-Mails eingeschlossen. Diese können in Marketingaktivitäten entweder in einem Marketingordner oder in einem Programm erstellt werden. Damit ein Token in einer E-Mail verwendet werden kann, muss es sich bei der E-Mail um ein untergeordnetes Element eines Programms handeln, das entweder Eigentümer des Tokens ist oder es von einem Marketing-Ordner übernimmt. Um ein Token zu erstellen, navigieren Sie zu einem Ordner oder Programm und wählen Sie die Registerkarte My Tokens aus. Ziehen Sie aus dem Kontextmenü die Option "E-Mail-Script"in die Token-Liste
Von hier aus können Sie den Namen des Tokens bearbeiten und den Editor über die Option Klicken zum Bearbeiten öffnen:
Sobald Sie sich im Editor befinden, können Sie ein Skript mit Zugriff auf alle Variablen in Objekten erstellen, auf die über Skripte zugegriffen werden kann. Um eine Feldreferenz aus einem Objekt zu erhalten, ziehen Sie sie aus der rechten Baumstruktur in das Skript:
Einbetten und Testen von Skripten
Nachdem Sie Ihr Skript in einem Programm-My Token definiert haben, können Sie es mit dem Marketo-E-Mail-Editor in einer bestimmten E-Mail referenzieren.
Sie können Ihr Skript mit der E-Mail-Aktion Beispiel-E-Mail senden im E-Mail-Designer von Marketo testen. Damit das Skript ordnungsgemäß verarbeitet werden kann, müssen Sie einen vorhandenen Lead auswählen, der im Feld Lead stellvertretend agieren soll. Wenn Sie mit $TriggerObject
testen, können Sie das auslösende Objekt über den Parameter Trigger auswählen. Hierbei werden die Daten des zuletzt aktualisierten Objekts dieses Typs als $TriggerObject
-Variable verwendet.
Sie können auch die E-Mail-Vorschau verwenden, um Ihr Skript zu testen. Dazu müssen Sie Anzeigen als: Lead-Detail auswählen und einen Lead aus einer verfügbaren statischen Liste auswählen. Dies hat den zusätzlichen Vorteil, dass Ausnahmen ausgegeben werden, die möglicherweise während der Skriptausführung aufgetreten sind:
Nützliche Hinweise
Die Gesamtlänge aller E-Mail-Skript-Token in einer E-Mail darf 100.000 Byte nicht überschreiten. Diese Begrenzung bezieht sich auf die Gesamtlänge der Token-Zeichenfolgen selbst (nicht auf die Gesamtlänge nach der Erweiterung der Token).
- Die im E-Mail-Skript referenzierten Variablen müssen in Marketo auf einem der dem Skript verfügbaren Objekte vorhanden sein.
- Sie können benutzerdefinierte Objekte der ersten und zweiten Ebene referenzieren, die aus Ihrem nativ integrierten CRM stammen und direkt mit dem Lead oder Kontakt, aber nicht mit benutzerdefinierten Objekten der dritten Ebene verbunden sind. Benutzerdefinierte Objekte sind möglicherweise nicht die übergeordneten Elemente des Leads oder Unternehmens
- Bei benutzerdefinierten Marketo-Objekten können Sie auf benutzerdefinierte Objekte der zweiten Ebene mit einer übergeordneten untergeordneten Beziehung verweisen. Beispiel:
Lead <- Parent <- Child
. Benutzerdefinierte Objekte der zweiten Ebene können nicht mit der Beziehung zwischen Edge und Bridge referenziert werden. Beispiel:Lead <- Bridge -> Edge
- Sie können auf benutzerdefinierte Objekte verweisen, die mit einem Lead, Kontakt oder einem Konto verbunden sind, jedoch nicht mit mehreren.
- Benutzerdefinierte Objekte können nur über eine Verbindung, Lead, Kontakt oder Konto referenziert werden
- Sie müssen das Kontrollkästchen im Skript-Editor für die Felder aktivieren, die Sie verwenden, oder sie werden nicht verarbeitet
- Für jedes benutzerdefinierte Objekt sind die zehn zuletzt aktualisierten Datensätze pro Person/Kontakt zur Laufzeit verfügbar und werden von der letzten Aktualisierung (0) bis zur ältesten Aktualisierung (9) geordnet. Sie können die Anzahl der verfügbaren Datensätze erhöhen, indem Sie die Anweisungenbefolgen.
- Wenn Sie mehr als ein E-Mail-Skript in eine E-Mail einfügen, werden diese von oben nach unten ausgeführt. Der Bereich der Variablen, die im ersten auszuführenden Skript definiert sind, ist in nachfolgenden Skripten verfügbar.
- Tools-Referenz: https://velocity.apache.org/tools/2.0/index.html
- Ein Hinweis zu Token, die Zeilenumbruchzeichen "\n"oder "\r\n"enthalten. Wenn eine E-Mail über das Senden-Beispiel oder eine Batch-Kampagne gesendet wird, werden Zeilenumbrüche in Token durch Leerzeichen ersetzt. Wenn E-Mails über Trigger Campaign gesendet werden, bleiben Zeilenumbruchzeichen unverändert.
- Um eine korrekte Analyse von URLs sicherzustellen, sollte der gesamte Pfad als Variable festgelegt und dann gedruckt und die Variable nicht in URL-Verweisen gedruckt werden. Das Protokoll (http:// oder https://) muss eingeschlossen und vom Rest der URL getrennt sein. Die URL muss auch Teil eines vollständig gebildeten Anker-Tags () sein. Das Skript muss ein vollständig geformtes Anker-Tag ausgeben, damit Links verfolgt werden können. Links werden nicht verfolgt, wenn sie aus einer for - oder foreach -Schleife ausgegeben werden.
<!-- Correct -->
#set($url = "www.example.com/${object.id}")
<a href="http://${url}">Link Text</a>
<!-- Correct -->
<a href="http://www.example.com/${object.id}">Link Text</a>
<!-- Incorrect -->
<a href="${url}">Link Text</a>
<!-- Incorrect -->
<a href="{{my.link}}">Link Text</a>
<!-- Incorrect -->
<a href="http://{{my.link}}">Link Text</a>