Promotion

Move everything you built in test to live, in one reviewed step.

A promotion makes live match test. When your new quiz, reward and leaderboard are ready in test, you prepare a promotion, check the list of what will change, and approve it. Your members then see the new version, all at once.

It covers everything that defines your program: quests from code and from Quest Studio, their settings and archive state, quest types, collections, point ledgers, badges, tiered rewards and their archive state, offers, stock items, pickup policy, leaderboards and their exclusion-group binding, referral programs, trackers, engagement rules, images, dashboards, the project calendar and profile settings. When the project hosts an app, it also carries the version of the app on staging. A promotion always takes everything: you can't pick a subset.

Definitions change only in test, and a person approves every promotion. See test and live.

What a promotion holds

PartWhat it is
ChangesEach definition live would change: added, changed, archived or unarchived. Definitions that already match are left out.
WarningsWhat approval leaves as it is: a connection test uses that live hasn't set up, such as Discord or a webhook, and anything live has that test doesn't. A separate list names the groups approval creates in live.
BuildThe hosted app version on staging when the promotion was prepared, or none. Approval puts it live.
SourcePrepared from test, a rollback of an earlier promotion, or prepared by your developer's deploy command.
StatusPending until decided, then applied, rejected (with the reason), or replaced by a newer promotion.

How resources match

Each resource has an authoring key that is the same in test and live: the key declared in code, or the ID a resource created in Console was given. A promotion matches resources by that key. Live keeps its own resource IDs, and every reference inside a definition, such as a quest's reward ledger or a leaderboard's balance, points at live's resource.

Nothing is deleted. A definition that test archived is archived in live; one that live has and test does not stays as it is, with a warning. Text of a definition's own, such as a description, is copied as written.

What never moves

Some settings belong to each environment, and an organization admin sets them up there: connections such as Discord, Telegram and X, webhook endpoints, member sign-in, and hosted-app secrets. A promotion lists the ones live lacks as warnings and approves anyway; until they are set up, live behaves as it would without them. A custom domain exists only in live, with nothing in test to compare, so a promotion neither copies it nor warns about it.

Day-to-day state stays in each environment too. Members, points, attempts, stock quantities, pauses and groups are never copied. When a quest, offer, leaderboard or referral program names a group, such as one that rewards group membership, and live has no group with that key, approval creates it in live with no members. A group archived in live is never unarchived: if a quest rewards membership in it, or a leaderboard binds it as its exclusion group, approval refuses, naming the quest and the group, until you unarchive the group in live.

Approval

A person signed in to Console with publish permission approves or rejects a pending promotion in Live → Deployments, where Promote to live opens it after preparing. Approval applies every change at once, so live never shows half a promotion.

If test or live changed after the promotion was prepared, approval refuses and nothing changes in live. Choose Prepare again in Console and review the new list. Approval also refuses when the project needs a plan to go live; see Going live needs a plan. Preparing a promotion replaces any older pending one, so only the newest can be approved.

Going live needs a plan

Building and testing are free. Serving members in live needs a plan for the project. Where plans apply to your organization, this is how approval and live behave:

WhenWhat happens
The project has a paid planApproval works as described above.
The project has no plan, and the organization hasn't used its live trialApproval starts the trial for this project: 14 days on Launch, no card needed. Console says so beside the promotion before you approve. Preparing a promotion doesn't start it.
The project has no plan, and the trial is running on another project or used upApproval is refused and live doesn't change. Console says where the trial is and shows the plans beside the promotion: an organization administrator who can buy plans subscribes there through Stripe, then approves again.
The trial ended without a planLive keeps serving for a 7-day grace period. Approving another promotion needs a plan.
The grace period endedLive goes offline: the app shows "This app is offline" on its domino.page address and custom domain, and members can't use it.
A paid plan's subscription endsLive goes offline when the paid period ends.
A payment for one of the organization's plans has been overdue 14 daysApproving any of the organization's promotions is refused until it is paid. Live keeps serving.
The payment is 38 days overdueLive keeps serving, and you get a notice that it goes offline a week later.
The payment is 45 days overdueThat project's live goes offline until it is paid.
The project gets a plan, or the payment is madeLive serves again within about a minute, with the same build and no redeploy.

Each organization gets one live trial. It stays used after its project is moved or deleted. Going offline keeps everything: definitions, members, points and history stay, and test is never affected. Projects that served live before plans were introduced keep serving on a plan Domino assigned. Domino support sets a project's plan.

To see where a project stands, open Settings → Plan & usage. Everyone who can open the project sees its plan, the trial, this month's active members against the plan's limit, and the AI builder's balance. Organization administrators who can buy plans also subscribe, change or cancel the plan, buy AI credit and open Manage billing there.

To see every project at once, open Billing under Organization in the sidebar, or from Manage in the organization menu. Everyone in the organization sees the plan, status and renewal date of each project they can open, with a link to its Plan & usage page, how many of the organization's 10 Free projects are used, what's left of the free AI allowance, and where the trial stands. An organization administrator who can buy plans opens Invoices and payment method there for every invoice, the card and the billing details.

The hosted app

When a promotion carries an app version that live doesn't serve yet, it shows as a change. Approval applies the definitions first, then Domino puts that version up as your live app, at <project-slug>.domino.page. This typically takes a couple of minutes. Until then, the version live already serves keeps serving.

If that fails, the previous version keeps serving. The next promotion shows the app as changed again; approving it tries again.

Rollback

To undo a promotion, choose Prepare rollback in Console's promotion history. It prepares a promotion of the definitions and app version an earlier promotion made live, and you review and approve it like any other. It adds to the history rather than rewriting it.

  • Newer definitions are archived, not deleted. Every live definition that promotion did not carry is archived, including one that was already live-only then.
  • Pickup policy resets. A pickup policy the earlier promotion did not have goes back to untracked.
  • The earlier app returns. Approving it puts the earlier app version live, as approval does for any version live does not serve.
  • Test is untouched. The next promotion from test carries its changes again.

On this page