電子郵件指令碼

閱讀Velocity使用手冊,瞭解Velocity範本語言行為的詳細說明。

Apache Velocity是一種以Java為基礎的語言,用於範本化和指令碼HTML內容。 在Marketo電子郵件指令碼權杖中使用Velocity來存取儲存在商機和自訂物件中的資料,並建立動態電子郵件內容。

Velocity為條件式與反複式內容提供if/elseforforeach控制流程。

變數

$作為變數的前置詞。 使用#set建立或更新它們:

#set($variable = "value")

使用提供不同行為的參考型別擷取變數值:

$variable ##outputs 'value'
$variablename ##outputs '$variablename'
${variable}name ##outputs 'valuename'

$之後的安靜參考標籤法包含!。 依預設,當參照未定義時,Velocity會將參照字串保留在適當位置。 安靜參考未定義時不會發出任何值:

##Defined Reference

#set($foo = "bar")
$foo ##outputs "bar"

##Undefined Reference

##normal
$baz ##outputs "$baz"

##quiet
$!baz ##outputs nothing

如需如何參考變數的詳細資訊,請參閱Apache使用手冊

Velocity工具

Apache Velocity專案提供Velocity工具。 這些包裝函式會透過所有指令碼都可用的全域變數公開Java物件方法。

例如,若要使用ComparisonDateTool的方法,請從指令碼權杖中的$date變數存取它:

#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

建立指令碼Token

使用Email Script Token將Velocity指令碼新增至電子郵件。 在行銷資料夾或方案的行銷活動中建立Token。

若要使用權杖,電子郵件必須是擁有權杖的計畫的子項,或是從行銷資料夾繼承權杖。 移至資料夾或程式,然後選取My Tokens標籤。 從右側選單將「電子郵件指令碼」選項拖曳到Token清單中。

指令碼Token

編輯權杖名稱,然後選取Click to Edit以開啟編輯器:

編輯指令碼

在編輯器中,建立指令碼,用於存取指令碼可存取物件中的變數。 若要新增物件欄位參照,請從右邊的樹狀結構將其拖曳到指令碼中:

編輯指令碼Token

指令碼內嵌和測試

在程式「我的Token」中定義指令碼後,從Marketo電子郵件編輯器中的電子郵件對其參照。

電子郵件指令碼

在Marketo電子郵件設計工具中使用Send Sample Email動作測試指令碼。 在Lead欄位中選取現有的銷售機會,讓指令碼可正確處理。

測試$TriggerObject時,請以Trigger引數選取觸發物件。 Marketo使用該型別最近更新的物件做為$TriggerObject變數。

測試電子郵件指令碼

您也可以使用Email Preview進行測試。 選取「View As: Lead Detail」,然後從靜態清單中選取潛在客戶。 預覽也會顯示指令碼執行的例外:

以 檢視電子郵件

最佳做法

指定電子郵件中所有電子郵件指令碼Token的合併長度不得超過100,000個位元組。 此限制與權杖字串本身的總長度有關(而非權杖展開後的總長度)。

  • 電子郵件指令碼中參照的變數必須存在於Marketo中指令碼可用的其中一個物件上。
  • 您可以參考源自您原生整合的CRM的第一層和第二層自訂物件,這些自訂物件直接連線至銷售機會或連絡人,但不包括第三層自訂物件。 自訂物件可能不是潛在客戶或公司的父級
  • 對於Marketo自訂物件,您可以參照具有父子關係的第二層自訂物件。 例如 Lead <- Parent <- Child. 您無法參考具有Edge-Bridge關係的第二層級自訂物件。 例如,Lead <- Bridge -> Edge
  • 您可以參照連線至Lead、Contact或Account的自訂物件,但不能參照多個物件。
  • 自訂物件只能透過單一連線、銷售機會、連絡人或帳戶參照
  • 勾選指令碼編輯器中的方塊,找出您正在使用的欄位,或這些欄位未處理
  • 對於每個自訂物件,每個人員/連絡人在執行階段都可以使用最近更新的10筆記錄。 記錄會從索引0的最近更新到索引9的最舊排序。 您可以依照指示🔗增加個可用的記錄數。
  • 如果您在電子郵件中包含多個電子郵件指令碼,這些指令碼會由上到下執行。 第一個要執行的指令碼中所定義的變數範圍,可在後續指令碼中使用。
  • 工具參考: https://velocity.apache.org/tools/2.0/index.html
  • 有關包含新行字元「\n」或「\r\n」的權杖的備註。 當透過傳送範例或批次促銷活動傳送電子郵件時,代號中的新行字元會被替換為空格。 透過「觸發器促銷活動」傳送電子郵件時,新行字元保持不變。
  • 若要確保URL剖析正確,請將完整路徑設定為變數,然後列印。 請勿在URL參照內列印變數。 將通訊協定(http://https://)與URL的其餘部分分開加入。 輸出完整的錨點(<a>)標籤,以便追蹤連結。 未追蹤從forforeach回圈輸出的連結。
<!-- 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>
recommendation-more-help
marketo-developer-help