◼️Liquid Section
Overview
The Liquid Custom Section allows you to create fully customized layouts and content within the gamification widget using the Liquid templating language.
With this section type, you can:
Build a personalized overview page.
Display only the data you need (e.g., missions, tournaments, mini-games, store items).
Choose from predefined templates or start from scratch with your own Liquid code.

In a nutshell, to build a Liquid template, you need to create HTML that looks like this:
In terms of setup, the Liquid Section works similarly to other custom section types; you can configure its name, icon, visibility period, and target user segment, just as you do for any other custom section.
You can start from one of the following templates:
Overview Template – A general layout using Missions, Store Items, and Mini-Games.
Missions Template – Focused on displaying and customizing mission content.
Level Map Template – Used for building and styling a level map with position and background customization.
Custom Template – A blank canvas where you build the section from scratch.
💡 These Templates serve as a starting point. You can modify them as needed.
To work effectively with Liquid-based templates, a solid understanding of HTML and CSS is required. Familiarity with JavaScript is also helpful. We also recommend reviewing the official Liquid documentation to gain a comprehensive understanding of the templating engine’s capabilities.
You can use the following gamification entities in your Liquid templates:
Missions
Store Items
Tournaments
Mini-Games
Levels
Jackpots
Bonuses
Leaderboards
Badges
And user profile data, including the number of points, gems, diamonds, nickname, avatar, number of unread inbox messages, and the user's current level
Important note: Ensure that you apply your brand styles by replacing all default colors, fonts, and visual elements.
How to Create a Liquid Custom Section
1. Create the Section
Go to Custom Sections and select ‘Create Liquid Section’.
The Core Setup works the same as in other section types.

Choose a Template
In the Section Setup, select a predefined template or start with a blank custom template.
In the Entity Data dropdown, choose which data types to include (e.g., missions, store items).
⚠️ If using a predefined template and adding more data types, you'll need to manually update the Liquid code to display the new data. ⚠️


Build the Content
Go to the Page Content tab to preview and edit the layout.
Choose a user to preview how data will appear.

4. Finalize
Once your design is complete, save the section and enable it under Label Settings.
Templates
Overview Template
With the ‘Overview Template’, you can customize the overview screen by selecting which data to display (e.g., Locked Missions, Free-to-Play Mini-Games), adjusting visual elements such as text, colors, and chip shapes, and deciding what content to show or hide. The default data sources for this template are Missions, Store items, and Minigames; however, you can replace any of these with other data types, such as tournaments. For example, you can show Missions, Store items, and Tournaments.
Keep in mind that to expose mini-games in the overview, the mini-game must have a Promo image and promo text set.

Missions Template
Use the ‘Missions Template’ to build and personalize the Missions section by selecting specific missions to display, customizing mission card design (colors, shapes, layout), and modifying and configuring tabs.

Level Map Template
Use this template to design a visual Level Map. You can adjust the positions of the levels as needed, customize the colors, upload background images for both desktop and mobile devices, and tailor the level pop-up display. You can also hide the level name from the map or move the level name of the top, for example.

Keep in mind that when uploading a background image for the map, you need to populate the correct aspect ratio of the uploaded image in the Liquid (for both desktop and mobile).
The desktop image should be 800px wide, and the height is not limited, as end-users can scroll down to see levels. The mobile image should be 800px wide and at least 2000px high.

Puzzle Template
The Puzzle template lets you create a custom puzzle in which each piece is revealed as players complete specific badges. Each puzzle piece is actually a badge image. Once all required badges are completed, the full puzzle image is revealed.
Key details:
The puzzle grid always displays 5 images per row.
For best visual results, we recommend using a 5×5 grid.
All images should be square.
Each badge represents one puzzle piece, so badges and images must be prepared in advance.
Preparing Puzzle Images (Photoshop Guide)
Follow these steps to split your image into puzzle pieces using Photoshop:
Open the image you want to turn into a puzzle.
Go to View → Guides → New Guide Layout.

Set the number of columns and rows (columns must be 5).

Select the Slice Tool.

Click Slice from Guides to automatically create image slices.

Go to File → Export → Save for Web….

Choose the desired format and save the images.


After exporting:
A folder named “images” will be created.
Each image will be named after the original file, followed by _# to indicate its position in the grid.

Setting up the Puzzle
To configure the Puzzle template:
Create badges and assign each one a corresponding puzzle image.
Add a priority to each badge so you can control the image order and ensure the puzzle pieces are arranged correctly.
Create a Custom Section with type Badges.
Add all puzzle-related badges to this Custom Section.
Enable “Show only in Custom section” for these badges.
Create a Liquid Custom Section.
Select the Puzzle template.
Enter the Custom Section ID that contains the puzzle badges.
Activate the Liquid Custom Section.
Note: The Badge Custom Section itself does not need to be active.
Liquid Data Keys
Use these keys to access gamification data in your Liquid code:
For Missions
missions
For Badges
badges
Badge Categories * Badges categories become automatically available when Badges are selected as Liquid entity data.
badgeCategories
Store Items
storeItems
Store Categories * Store categories become automatically available when store items are selected as Liquid entity data.
storeCategories
Tournaments
tournaments
Tournament Instance
singleTournament
Mini-Games
miniGames
Jackpots
jackpots
Raffle Instance
singleRaffle
You can refer to the documentation for each data key to understand what kind of "properties" you have for each object.
For example, for "mission" we have id and name, and they can be used in the following way
User Info Access
User info is always available. Use the following to access balances:
To Access the User info:
Note: userInfo.user_hash is the value passed by the platform on the front-end, as explained in Protecting user identification on the public front-end
Examples
Avatar:
Current level image:
Functions
For each entity's data, you can use targeted functions to open an overlay popup with details of the entity or to be navigated to the page (such as tournaments):
Missions:
openMission({{ mission.id }})
Badges:
openBadge({{ badge.id }})
⚠️For Missions and Badges, you will need to specify the type:
Store:
openStore({{ item.id }})
Levels:
openLevel({{level.id}})
Bonuses:
openBonus({{ bonus.bonus_id }})
Tournaments:
openTournament({{ tournament.instance_id}})
Tournament Instance:
tournamentOptIn({{ tournament.instance_id }})
This allows you to show only one specific tournament and makes it easy to highlight only the tournament leaderboard, prize pool, or related games, or a combination of all of them.
How it works:
Select ‘Tournament Instance’ – Choose the newly added entity data called ‘Tournament instance’.
Select the Tournament – Once a tournament is selected, the system automatically chooses the appropriate run based on the status of the run:
Started: The highest priority run is selected.
Open for registration: If no run is in the 'Started' status, the run with the 'Open for registration' status will be displayed.
Last finished: If there are no Started or Open for registration runs, the last finished run is used.
Both Started and Open for registration exist: The Started run takes priority.
Mini-games:
openMiniGame({{ game.id }})
Jackpots:
openJackpot({{ jackpot.jp_template_id }})
Raffles:
openRaffle({{ raffle.id }})
Raffle Instance:
raffleDrawOptIn({{ draw.id }})
Liquid Params
Liquid Params is a parameter for deep links used in Liquid Custom Sections. This allows you to pass custom parameters via deep links and access them directly inside your Liquid code.
Example of deep-link using liquidParams:
dp:gf_section&id=123&liquidParams={"instance_id":21,"register":true}
This deep link opens the tournament with ID 21 and automatically registers the user.
You can find more deep link examples in the deep link documentation.
The liquidParams object is parsed and exposed inside the Liquid custom section. It is available in raw Liquid data -> ‘Show data source’ and in the liquid code. You can pass different parameters such as "instance_id": 704519, "section": "players" .
Use the following script in your Liquid code to read and apply these parameters:
For newly created Liquid Custom Sections, this script is added automatically, so no action is needed.
For existing Liquid Custom Sections, you’ll need to add the script manually to the Liquid code.
Deep link usage:
You can trigger deep links using the dp() function in HTML elements like buttons:
You can see all deep links here
Client action usage in the Liquid section:
You can configure a 'Client action' event to trigger, for example, an automation rule and give points/games to the players.
Read more about 'Client action' event here
Smartico API usage in the Liquid section:
You can access the Smartico API directly within Liquid Custom Sections. This allows you to build a fully customized UI for gamification features, including mini-games, missions, badges, tournaments, and in-store items. By leveraging the API within your Liquid code, you have complete creative control over how these features are presented and integrated into your site.
API documentation: https://github.com/smarticoai/public-api/blob/main/docs/api/classes/WSAPI.md
Last updated
Was this helpful?