Skip to content
Gamification studio

Give every user a quest worth finishing

Luk Quest is a gamification studio for any company. Design quests, tasks and rewards in a visual editor. Your site sends events, and shows each user what they're working toward and what they've earned.

What your user sees

Welcome to the shop

2 of 3 tasks done

Active
  • Complete your profile
  • Add something to your wishlist
  • Make your first purchase

Rewards

+50 coinsEarly bird badgeFree shipping, 30 days

Your look, or ready-made

Show quests and rewards in your own design, or add a ready-made widget in your colours.

Rewards pay once

Every event and every reward has an id, so retries never pay twice.

Change without breaking

Published quests are frozen versions. Players finish what they started.

How it works

From one event to a reward, in four steps

Your site tells Luk Quest what users do. Luk Quest keeps score, decides who finished what, and pays the rewards. Your site reads it back and shows it.

  1. 01

    Report what users do

    Your server sends an event whenever something happens: a purchase, a lesson finished, a workout logged. Each event is one metric for one player, like purchase.amount = 42.50.

  2. 02

    Design quests in the studio

    Turn metrics into tasks players understand ("Make your first purchase"), then put tasks into quests with an audience, a window and rewards. Try them with a simulation before you publish.

  3. 03

    Luk Quest keeps score

    As events arrive, Luk Quest works out progress, completes quests and pays points, badges and perks, exactly once. Award rules pay points straight from events, like 1 XP per dollar.

  4. 04

    Show it your way

    Read a player's quests, progress, balances and badges from the API, or in the browser with the snippet. Draw it in your own design, or add a ready-made widget: a rewards button with a popover, a box, or a full page, in your colours and words.

The quest circuit

Every quest answers six questions

You build a quest as a circuit in the studio. A player moves through it from left to right; each step is a gate they pass.

  1. 1

    Who

    Which players can join, by their traits: plan, country, anything you send.

  2. 2

    Appearance

    What must be true first, and whether players join automatically or press Start.

  3. 3

    When

    Dates, chosen weekdays, or rounds that repeat, like every week.

  4. 4

    What

    The tasks: all of them, any one, at least N, or one by one.

  5. 5

    Completion

    Finished automatically, or when the player claims it.

  6. 6

    Rewards

    Points, badges and perks: for every finisher, the first N, or the top of a leaderboard.

Core concepts

The ideas to know

Luk Quest uses a small set of words, and each one means one thing. Learn them once and the studio and the API both make sense.

Industries

Made for any product with users

Anywhere people come back, there's something worth working toward. A few places to start.

For developers

An API link, like analytics

Each project gets one API link. Your server sends events and reads player state with a secret key. In the browser, a snippet like Google Analytics shows the signed-in user's quests with a short-lived player token.

  • A REST API, with examples in cURL, Node, PHP and Python
  • A browser SDK that queues calls until it loads, like analytics snippets
  • Ready-made widgets (a rewards button, a box or a full page), signed in like Intercom
  • Events that are safe to retry, and corrections that take back what was paid
  • A log of every API call, with failures explained

From your server: send an event

curl -X POST "https://YOUR-LUKQUEST-HOST/api/v1/p/qp_YOUR_PROJECT_KEY/events" \
  -H "Authorization: Bearer qs_YOUR_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"player":"user-42","metric":"purchase","id":"order-1001"}'

In the browser: the snippet

<!-- Luk Quest: in <head>, on every page -->
<script async src="https://YOUR-LUKQUEST-HOST/sdk/v1.js"></script>
<script>
  window.lukquest = window.lukquest || function () { (lukquest.q = lukquest.q || []).push(arguments); };
  lukquest("init", "https://YOUR-LUKQUEST-HOST/api/v1/p/qp_YOUR_PROJECT_KEY");
  // After sign-in: a player token your server got from POST /player-tokens
  lukquest("identify", "PLAYER_TOKEN_FROM_YOUR_SERVER");
</script>

Your first quest takes minutes

Create an account and a project, add the example setup, and send a test event. No credit card, no SDK to install first.

Start free