◼️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.

circle-check

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

circle-check

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.

  1. 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. ⚠️

  1. 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.

circle-check

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.

circle-check

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.

chevron-rightPreparing Puzzle Images (Photoshop Guide)hashtag

Follow these steps to split your image into puzzle pieces using Photoshop:

  1. Open the image you want to turn into a puzzle.

  2. Go to View → Guides → New Guide Layout.

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

  1. Select the Slice Tool.

  1. Click Slice from Guides to automatically create image slices.

  1. Go to File → Export → Save for Web….

  1. 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:

  1. Create badges and assign each one a corresponding puzzle image.

  2. Add a priority to each badge so you can control the image order and ensure the puzzle pieces are arranged correctly.

  3. Create a Custom Section with type Badges.

  4. Add all puzzle-related badges to this Custom Section.

  5. Enable “Show only in Custom section” for these badges.

  6. Create a Liquid Custom Section.

  7. Select the Puzzle template.

    1. Enter the Custom Section ID that contains the puzzle badges.

  1. 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:

Data Type
Name of object/array variable
Documentation about structure

Badge Categories * Badges categories become automatically available when Badges are selected as Liquid entity data.

badgeCategories

Store Categories * Store categories become automatically available when store items are selected as Liquid entity data.

storeCategories

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.arrow-up-right

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:

circle-info
  • 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.

You can trigger deep links using the dp() function in HTML elements like buttons:

You can see all deep links herearrow-up-right

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 herearrow-up-right

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.mdarrow-up-right

Last updated

Was this helpful?