Salesforce Marketing Cloud編程語言AMPscript

1. 介紹

AMPscript是Salesforce Marketing Cloud的腳本語言。 您可以使用它通過一組廣泛的功能來創(chuàng)建高度復(fù)雜的個(gè)性化內(nèi)容。 該語言遵循簡(jiǎn)單的語法和語義斑司,學(xué)習(xí)起來很快,很容易編碼。

與JavaScript、Perl和Python等其他通用語言不同了赌,AMPscript是為特定運(yùn)行時(shí)環(huán)境(Salesforce Marketing Cloud)開發(fā)的服務(wù)器端腳本語言,其中腳本在呈現(xiàn)內(nèi)容時(shí)被解釋和執(zhí)行玄糟。

AMPscript是一種由兩部分組成的語言:語法和函數(shù)庫勿她。 了解了這些,就有可能在沒有事先編程或腳本經(jīng)驗(yàn)的情況下迅速精通這門語言阵翎,并為直接營銷活動(dòng)創(chuàng)建高度個(gè)性化逢并、動(dòng)態(tài)的內(nèi)容。

2. 語法

由于AMPscript是一種服務(wù)器端語言郭卫,因此代碼可以包含在 email, web page, SMS or push message中的任何位置砍聊。 與其他腳本語言類似,AMPscript是解釋的贰军,而不是編譯的玻蝌,這意味著它是按照編寫的順序解釋的。 因此词疼,如果您使用AMPscript在電子郵件中包含個(gè)性化內(nèi)容俯树,則需要在個(gè)性化內(nèi)容應(yīng)該出現(xiàn)的位置之前或位置定義AMPscript代碼。

AMPscript可以在代碼塊中編寫贰盗,也可以內(nèi)聯(lián)編寫聘萨。
%%[    

]%%  

AMPscript代碼塊可用于:

  • 聲明和設(shè)置變量
  • 處理?xiàng)l件邏輯
  • 大量數(shù)據(jù)處理

對(duì)于內(nèi)聯(lián)AMPscript,包含在以 %%= 開頭和 =%% 結(jié)尾的字符序列中:

%%= =%%  

內(nèi)聯(lián)AMPscript可用于:

  • 輸出變量或調(diào)用函數(shù)
  • 允許嵌入到HTML中

所有AMPscript代碼必須用匹配的開始和結(jié)束分隔符模式括起來童太,否則代碼將被忽略米辐。

3. 變量

變量用于在AMPscript塊或內(nèi)聯(lián)AMPscript中存儲(chǔ)數(shù)據(jù)胸完。 把它們想象成存儲(chǔ)您定義的數(shù)據(jù)的容器。 AMPscript變量都以@符號(hào)開頭翘贮,并使用SET定義赊窥。 變量必須是唯一的名稱,否則存儲(chǔ)在其中的數(shù)據(jù)可能會(huì)被覆蓋狸页。

%%[    
    set @myvar = "Hello world!"
]%%  

可以使用var聲明變量锨能,但這不是必需的。 多個(gè)變量可以用逗號(hào)分隔芍耘。

%%[
    var @myvar, @myvar2
    set @myvar = "Hello one"
    set @myvar2 = "Hello two"
]%%

變量可以包含數(shù)字址遇、字母、破折號(hào)(-)或下劃線(_)斋竞,但必須以字母開頭倔约。

%%[
    set @myvar = "Hello one"
    set @myvar2 = "Hello two"
    set @myvar-3 = "Hello three"
    set @myvar_four = "Hello four"
]%%

變量都不區(qū)分大小寫。 SET也不區(qū)分大小寫坝初。

%%[
    set @myvar = "Hello one"
    SET @myvar2 = "Hello two"
    SET @MYVAR = "myvar is equal to MYVAR"
]%%

可以使用以下命令在AMPscript中進(jìn)行注釋:/* */

%%[
    /* 可以在這里添加注釋 */
    set @myvar = "Hello one"
]%%

4. 函數(shù)

在編程中浸剩,函數(shù)是程序的一部分,它使用一些輸入值(或參數(shù))來執(zhí)行特定的任務(wù)并產(chǎn)生輸出值鳄袍。雖然其它腳本語言提供用戶定義的函數(shù)(例如JavaScript)绢要,而AMPscript通過主要面向顯示、轉(zhuǎn)換和存儲(chǔ)客戶數(shù)據(jù)和營銷內(nèi)容的預(yù)定義函數(shù)使用聲明性方法拗小。

AMPscript函數(shù)是純函數(shù)重罪,這意味著它們接受一些輸入并根據(jù)輸入返回輸出。 純函數(shù)構(gòu)成了函數(shù)式編程的基礎(chǔ)哀九,并且是獨(dú)立的剿配,這意味著您可以在代碼中移動(dòng)它們,從而使重構(gòu)或調(diào)整變得容易勾栗。 這種編程風(fēng)格簡(jiǎn)化了用戶的開發(fā)過程惨篱,因?yàn)樗蛔裱@式的控制流或命令序列盏筐,這反過來又通過應(yīng)用“創(chuàng)造性”設(shè)計(jì)模式來實(shí)現(xiàn)結(jié)果围俘,從而在開發(fā)中實(shí)現(xiàn)靈活性。

AMPscript函數(shù)的工作方式與它們?cè)贛icrosoft Excel中的工作方式大致相同琢融;即為預(yù)定義函數(shù)設(shè)置參數(shù)界牡,這些參數(shù)被解釋,然后返回一個(gè)值漾抬。 幾個(gè)AMPscript函數(shù)與Excel函數(shù)相同-雖然有些函數(shù)的名稱不同宿亡,但它們與Excel共享相同的參數(shù)和輸出相同的結(jié)果。

下面的示例比較了SUM Excel函數(shù)和AMPscript的Add函數(shù)纳令,在這兩個(gè)函數(shù)中挽荠,有兩個(gè)數(shù)字作為參數(shù)傳遞給該函數(shù)克胳。 在這種情況下,兩個(gè)函數(shù)都將輸出值3圈匆。

Excel SUM function:

=SUM(1,2)

AMPscript Add Function:

%%=Add(1,2)=%%

下面是所有可用的AMPscript函數(shù)漠另。可以點(diǎn)擊關(guān)注跃赚,具體用法后面會(huì)有章節(jié)詳細(xì)介紹笆搓。
也可以查看文檔:https://ampscript.guide

API

  • AddObjectArrayItem
  • CreateObject
  • InvokeCreate
  • InvokeDelete
  • InvokeExecute
  • InvokePerform
  • InvokeRetrieve
  • InvokeUpdate
  • RaiseError
  • SetObjectProperty

Contacts

  • UpsertContact

Content

  • AttachFile
  • BarCodeURL
  • BeginImpressionRegion
  • BuildOptionList
  • BuildRowSetFromString
  • BuildRowSetFromXML
  • ContentArea
  • ContentAreaByName
  • ContentBlockbyId
  • ContentBlockbyKey
  • ContentBlockbyName
  • ContentImagebyID
  • ContentImagebyKey
  • CreateSmsConversation
  • EndImpressionRegion
  • EndSmsConversation
  • GetPortfolioItem
  • Image
  • _messageContext
  • SetSmsConversationNextKeyword
  • TransformXML
  • TreatAsContent
  • TreatAsContentArea
  • WAT
  • WATP

Data Extension

  • ClaimRow
  • ClaimRowValue
  • DataExtensionRowCount
  • DeleteData
  • DeleteDE
  • ExecuteFilter
  • ExecuteFilterOrderedRows
  • Field
  • InsertData
  • InsertDE
  • Lookup
  • LookupOrderedRows
  • LookupOrderedRowsCS
  • LookupRows
  • LookupRowsCS
  • Row
  • RowCount
  • UpdateData
  • UpdateDE
  • UpsertData
  • UpsertDE

Date Time

  • DateAdd
  • DateDiff
  • DateParse
  • DatePart
  • GetSendTime
  • LocalDateToSystemDate
  • Now
  • SystemDateToLocalDate

Encryption

  • Base64Decode
  • Base64Encode
  • DecryptSymmetric
  • EncryptSymmetric
  • GUID
  • MD5
  • SHA1
  • SHA256

HTTP

  • HTTPGet
  • HTTPPost
  • HTTPPost2
  • HTTPRequestHeader
  • IsCHTMLBrowser
  • RedirectTo
  • URLEncode
  • WrapLongURL

Math

  • Add
  • Divide
  • FormatCurrency
  • FormatNumber
  • Mod
  • Multiply
  • Random
  • Subtract

Microsoft Dynamics CRM

  • AddMscrmListMember
  • CreateMscrmRecord
  • DescribeMscrmEntities
  • DescribeMscrmEntityAttributes
  • RetrieveMscrmRecords
  • RetrieveMscrmRecordsFetchXML
  • SetStateMscrmRecord
  • UpdateMscrmRecords
  • UpsertMscrmRecord

Salesforce

  • CreateSalesforceObject
  • LongSFID
  • RetrieveSalesforceJobSources
  • RetrieveSalesforceObjects
  • UpdateSingleSalesforceObject

Sites

  • AuthenticatedEmployeeID
  • AuthenticatedEmployeeNotificationAddress
  • AuthenticatedEmployeeUserName
  • AuthenticatedEnterpriseID
  • AuthenticatedMemberID
  • AuthenticatedMemberName
  • CloudPagesURL
  • IsNullDefault
  • LiveContentMicrositeURL
  • MicrositeURL
  • QueryParameter
  • Redirect
  • RequestParameter

Social

  • GetPublishedSocialContent
  • GetSocialPublishURL
  • GetSocialPublishURLByName

String

  • Char
  • Concat
  • Format
  • IndexOf
  • Length
  • Lowercase
  • ProperCase
  • RegExMatch
  • Replace
  • ReplaceList
  • StringToDate
  • StringToHex
  • Substring
  • Trim
  • Uppercase

Utilities

  • AttributeValue
  • Domain
  • Empty
  • If
  • IIf
  • IsEmailAddress
  • IsNull
  • IsPhoneNumber
  • Output
  • OutputLine
  • V
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市纬傲,隨后出現(xiàn)的幾起案子满败,更是在濱河造成了極大的恐慌,老刑警劉巖叹括,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件算墨,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡领猾,警方通過查閱死者的電腦和手機(jī)米同,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來摔竿,“玉大人面粮,你說我怎么就攤上這事〖痰停” “怎么了熬苍?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長袁翁。 經(jīng)常有香客問我柴底,道長,這世上最難降的妖魔是什么粱胜? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任柄驻,我火速辦了婚禮,結(jié)果婚禮上焙压,老公的妹妹穿的比我還像新娘鸿脓。我一直安慰自己,他們只是感情好涯曲,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布野哭。 她就那樣靜靜地躺著,像睡著了一般幻件。 火紅的嫁衣襯著肌膚如雪拨黔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天绰沥,我揣著相機(jī)與錄音篱蝇,去河邊找鬼贺待。 笑死,一個(gè)胖子當(dāng)著我的面吹牛零截,可吹牛的內(nèi)容都是我干的狠持。 我是一名探鬼主播,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼瞻润,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼喘垂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起绍撞,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤正勒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后傻铣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體章贞,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年非洲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鸭限。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡两踏,死狀恐怖败京,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情梦染,我是刑警寧澤赡麦,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站帕识,受9級(jí)特大地震影響泛粹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肮疗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一晶姊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧伪货,春花似錦们衙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蒂教。三九已至巍举,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凝垛,已是汗流浹背懊悯。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來泰國打工蜓谋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炭分。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓桃焕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親捧毛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子观堂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359