SFMC (ExactTarget) AMPscript Snippets

We use these all the time!

Pull in a date

Current Year
%%=Format(Now(), "yyyy")=%%

Date that will update continually
%%=Format(Now(), "MM/dd/yyyy")=%%

Date that is hard set from time of send
%%=Format(Now(true), "MM/dd/yyyy")=%%

Date plus days
%%=Format(DateAdd(Now(true), "14", "D"), "MM/dd/yyyy")=%%

Casing

%%=ProperCase(variable)=%%
%%=UpperCase(variable)=%%
%%=LowerCase(variable)=%%

URLs

URL from list
href="%%=RedirectTo(variable)=%%"

Variable as URL parameter
href="https://camiah.com/?param=%%variable%%"

Variable as part of the URL
%%[
set @url = concat("https://camiah.com/",variable)
]%%
href="%%=RedirectTo(@url)=%%"

Remove tracking from a URL
href="%%=concat('link you do NOT want to track')=%%"

Tracking Pixel

<custom name="opencounter" type="tracking">

System level variables

view online = %%view_email_url%%
email address = %%emailaddr%%
name of campaign = %%emailName_%%
forward to a friend = %%ftaf_url%%
unsubscribe = %%unsub_center_url%%
profile center = %%profile_center_url%%
subscription center = %%subscription_center_url%%
sender reply name = %%replyname%%
sender reply email address = %%replyemailaddress%%
business name = %%Member_Busname%%
business address = %%Member_Addr%%
business city = %%Member_City%%
business state = %%Member_State%%
business postal code = %%Member_PostalCode%%
business country = %%Member_Country%%

Subjectline and Preheader

In Properties
Subject: %%=v(@subjectline)=%%
Preheader: %%=v(@preheader)=%%

Between </style> and </head>
%%[
set @firstname = ProperCase(firstname)

/Is there a First Name in the Subjectline? Y or N/
set @has_firstname = "N"

if empty(firstname) or @has_firstname == "N" then
  set @subjectline = "replace"
else
  set @subjectline = concat(@firstname,", replace")
endif

/Is there a Preheader? Y or N/
set @has_preheader = "Y"

if @has_preheader == "Y" then
  set @preheader = "replace"
endif
]%%

Proofing info in Subjectline

%%[
if _DataSourceName == "DE_Name" then
  set @subjectline = concat("[Proofing Info] ",@subjectline)
endif
]%%

Space in Field Header Name

%%[
set @firstname = [First Name]
]%%

Hiding content on web

%%[if _messagecontext != "vawp" then]%%
content hidden on web
%%[endif]%%

Hiding content on forward to a friend

%%[if _messagecontext != "ftaf" then]%%
content hidden on forward to a friend
%%[endif]%%

Formatting

Date
%%=Format(variable, "MMMM d, yyyy")=%%
%%=Format(variable, "MM/dd/yy")=%%

Time
%%=Format(variable, "h:mm tt")=%%

Phone number
%%=Format(variable,"###-###-####")=%%

Currency
%%=Format(variable,"$#,#.00;-$#,#.00")=%%

Expire a Coupon

%%[
set @expires = "12/31/17"
set @date = Now()
set @days = DateDiff(@date, @expires, "D")
]%%

%%[if @days >= 0 then]%%
Coupon
%%[else]%%
Coupon has expired
%%[endif]%%

Pull in a Content Area

Classic Builder
%%=ContentArea("UniqueID")=%%

Content Builder
%%=ContentBlockbyID("UniqueID")=%%

Raise Error

%%[else RaiseError("Write Error Sentence Here", true) endif]%%

Find content in a string

%%[if IndexOf(variable,"this") > 0 then
Write set Statement Here
endif]%%

Replace content in a string

%%[set @variable = Replace(variable,"old","new")]%%

Micro base URL

%%microsite_base_url[default]UniqueID[/default]%%

Target a specific domain

%%[if domain(emailaddr) == "domain.com" then]%%

Lookup Table

%%[
set @fieldData = fieldData
set @variable = Lookup("lookupTableName","fieldHeaderForVariable","matchbackVariable",@fieldData)
]%%

Lookup Table with Row Count

%%[
set @rows = LookupRows("lookupTableName","matchbackVariable",matchbackVariable)
if RowCount(@rows) > 0 then
  set @row = Row(@rows,1)
  set @variable1 = Field(@row,"fieldHeaderForVariable1")
  set @variable2 = Field(@row,"fieldHeaderForVariable2")
endif
]%%

AMPscript Looping Tips

Use the Lookup Table AMPscript in the body, wrapped around your content you want looping.

We suggest looping full stacked <tables> or full stacked <tr>s.

Call variables using %%=v(@variable)=%% in the body.

Loop with Sendable List matching to Lookup Table

Sendable List or Data Extension
emailAddress matchbackVariable
this@emailaddress.com 0239485
that@emailaddress.com 7462829
theother@emailaddress.com 0239485
Lookup Table (Data Extension)
matchbackVariable fieldHeaderForVariable1 fieldHeaderForVariable2
7462829 Tacos Mardi Gras
0239485 Spaceships Spain
0239485 Spinach Alfredo The Bathroom
0239485 Radios The Beastie Boys Recording Studio
%%[ set @rows = LookupRows("lookupTableName","matchbackVariable",matchbackVariable) for @i = 1 to rowCount(@rows) do set @row = Row(@rows,1) set @variable1 = Field(@row,"fieldHeaderForVariable1") set @variable2 = Field(@row,"fieldHeaderForVariable2") ]%% <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td align="left" valign="top"> (CONTENT TO BE LOOPED) I love when camiah sends me %%=v(@variable1)=%% from %%=v(@variable2)=%%. </td> </tr> </table> %%[next @i endif]%%

Loop with Lookup Table Only

Lookup Table (Data Extension)
matchbackVariable fieldHeaderForVariable1 fieldHeaderForVariable2
fieldData Tacos Mardi Gras
fieldData Spaceships Spain
fieldData Spinach Alfredo The Bathroom
%%[ set @matchbackVariable = "fieldData" set @rows = LookupRows("lookupTableName","matchbackVariable",@matchbackVariable) for @i = 1 to rowCount(@rows) do set @row = Row(@rows,1) set @variable1 = Field(@row,"fieldHeaderForVariable1") set @variable2 = Field(@row,"fieldHeaderForVariable2") ]%% <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td align="left" valign="top"> (CONTENT TO BE LOOPED) I love when camiah sends me %%=v(@variable1)=%% from %%=v(@variable2)=%%. </td> </tr> </table> %%[next @i endif]%%

Loop with a Grouping

%%[
set @rows1 = LookupRows("lookupTableName","matchbackVariable",matchbackVariable)
if RowCount(@rows1) > 0 then
  set @row1 = Row(@rows1,1)
  set @groupingVariable = Field(@row1,"groupingVariable")
endif

set @oneItem = "0"
set @multipleItems = "0"
set @previousItemNumber = ""
set @rows2 = LookupOrderedRows("lookupTableName",0,"groupingVariable ASC","matchbackVariable",matchbackVariable)
for @i = 1 to rowCount(@rows2) do
  set @row2 = Row(@rows2,@i)
  set @groupingVariable = Field(@row2,"groupingVariable")
  set @variable1 = Field(@row2,"fieldHeaderForVariable1")
  set @variable2 = Field(@row2,"fieldHeaderForVariable2")

  set @rows3 = LookupRows("lookupTableName","matchbackVariable",matchbackVariable,"groupingVariable",@groupingVariable)
  set @groupingVariableQuantity = RowCount(@rows3)

  if @groupingVariableQuantity == "1" then
    set @oneItem = "1"
    set @multipleItems = "0"
  elseif @previousItemNumber == @groupingVariable then
    set @oneItem = "0"
    set @multipleItems = add(@multipleItems, 1)
  else
    set @oneItem = "0"
    set @multipleItems = "1"
  endif

  if @oneItem == "1" or @multipleItems == "1" then
]%%
  <table cellpadding="0" cellspacing="0" border="0" width="100%">
    <tr>
      <td align="left" valign="top">
        (CONTENT TO BE LOOPED AND GROUPED)
        I love when camiah sends me %%=v(@variable1)=%% from %%=v(@variable2)=%%.
      </td>
    </tr>
  </table>
%%[
  else
  endif

  set @oneItem = "0"
  set @multipleItems = @multipleItems
  set @previousItemNumber = @groupingVariable

next @i endif
]%%

1 thought on “SFMC (ExactTarget) AMPscript Snippets

Comments are closed.