Skip to main content
Users
CloudPortalLogin
  • Powered byPowered by
Introduction to Sitecore Personalize
Managing accounts and system settings
Identifying guests
Introduction to experiments
Introduction to experiences
Decisioning
View dashboards
Developer Center
Connecting to an external system
Using client-side JavaScript
Using server-side JavaScript
AI in Personalize
Glossary
  • Sitecore Personalize
  • Introduction to experiments in Sitecore Personalize
  • Introduction to triggered experiments in Sitecore Personalize
  • Compose the API request for an experiment
  • Use FreeMarker snippets in an API request for a triggered experiment

Use FreeMarker snippets in an API request for a triggered experiment

Sitecore Personalize provides you with FreeMarker snippets that you can copy and paste into the API request. For example, if you selected a decision model to return offers or content, you must include the offers or content in the API request using FreeMarker.

To copy and paste FreeMarker snippets in the API request:

  1. In the API editor, click the API body tab.

  2. On the Snippets tab, browse the available FreeMarker snippets that you can copy and paste into the API body tab.

  3. Click the Copy link next to the code snippet that you want to copy.

  4. Paste the code snippet into the API body tab.

  5. Click Save.

  6. Click to close the API editor.

Check if variable exists

You can use this FreeMarker snippet to check if a variable exists. This helps eliminate errors if there's a null or missing value.

RequestResponse
<#if guest.orders[0]??>
	<#-- get last order -->
</#if>

Convert epoch dates and times

Sitecore Personalize manages dates and times in epoch. You can use this FreeMarker snippet to convert dates and times in epoch to a format that FreeMarker can interpret.

RequestResponse
<#assign today = .now>
<#assign nowTime = today?long?replace(",","")?number>
<#assign lastSeen = guest.lastSeen?long?replace(",","")?number>


<#assign diffInMinutes2 = ((nowTime - lastSeen)/60000)?round>
<#assign lastSeenDays= ((diffInMinutes2/60)/24)?floor>
<#assign loggedIn24hours = "False">
<#assign nowDate = today?string('yyyy-MM-dd HH:mm:ss')>

<#-- GUEST SESSION DATA -->
<#assign loggedIn24hours = "False">
<#list guest.sessions as sessions>
    <#list sessions.interactions as events>
        <#if events.type == "IDENTITY">
            <#assign identified = "True">
            <#assign identityEventDate = events.date?long?replace(",","")?number>
            <#assign diffInMinutes2 = ((nowTime - identityEventDate)/60000)?round>
            <#if diffInMinutes2 &lt; 1800>
                <#assign loggedIn24hours = "True">
            </#if>
        </#if>
    </#list>
</#list> 

Extract sessions or orders

You can use this FreeMarker snippet to extract sessions from the guest object to a list format that FreeMarker can interpret. You can also use a similar snippet to extract parameters from the orders object.

RequestResponse
<#list guest.sessions as sessions>
	<#list sessions.interactions as events>
		<#if events.type == "IDENTITY">
			<#assign identified = "true">
        </#if>
    </#list>
</#list>

Verify number counts

You can use this FreeMarker snippet to verify number counts.

RequestResponse
<#if children?number &gt; 0>
    <#if infants?number &gt; 0>
        <#if children?number &lt; 1 || infants?number &lt; 1>
	        <#assign family = "false">
        </#if> 
    </#if>
</#if>

Do you have some feedback for us?

If you have suggestions for improving this article,

Privacy policySitecore Trust CenterCopyright © 1999-2026 Sitecore