Skip to content
PDF

Run a promotion or discount code ​

Use the Promotions page to advertise offers and discount your sessions. go flow offers three kinds of promotion: an announcement banner your clients see on the booking pages, a discount code clients redeem at checkout, and pricing promotions that discount sessions automatically for early or last-minute bookings. All three live on one page, split across tabs. Member offers add a fourth tool, early access, which is set per session. The examples below use an invented yoga studio with a Membership tier client field (Bronze, Silver, Gold).

Before you start ​

  • Modules: Payments and Promotions must be on (Configurations > Organisation, Modules tab). Discount codes also need Vouchers: clients type codes into the voucher field, which is hidden while Vouchers is off.
  • Right: Configuration & settings with Manage. With View only, the page opens read-only.
  • Member offers only: a Group membership field, see Offer member benefits.
  • Decide how discounts combine: see Decide whether discounts combine.

Open the Promotions page ​

From the Configurations menu, open Promotions. The page has three tabs — Announcements, Discounts and Pricing promotions — one per kind of promotion. If Promotions is missing from the menu, the module is off or you lack the right.

Publish an announcement ​

The Announcements tab lists your banner announcements with their name, online state, icon and validity dates. Click Add announcement to open the New announcement dialog.

Give the announcement a Name (required) and use the online switch at the top — Promotion is online / Promotion is offline — to control whether it is published to clients. A new announcement starts offline, so switch it online when it should appear. Set Valid from and Valid until to limit how long it shows; leave a date empty if you do not want a hard boundary on that side. Valid until ends the banner at 00:00 on that date. Then shape how the banner looks: pick an Icon, write the translatable texts for each of your languages, choose the Background color, Border color and Font color, adjust the corner rounding and border width, and optionally add an image. A live Preview at the bottom shows the banner as clients will see it. Save with the save icon in the toolbar. Every field is explained in Announcement banner.

Expected result: after the dashboard has synchronised, the banner appears at the top of the booking calendar, the session picker and the simple session list (reload the booking site to see it).

To remove an existing announcement, open it, click the trash icon in the toolbar (tooltip Mark for deletion); a warning banner appears and the form locks. Click Save while marked for deletion to remove it from the list, or click the icon again to unmark it (no confirmation is needed either way). To take a banner down only for a while, switch it offline instead.

Create a discount code ​

Switch to the Discounts tab. Discount codes are edited directly in the table — each row saves on change, so there is no separate save step. Click Add discount to add a row, then fill it in:

  • Code — what clients type at checkout, for example PARTNER10. It is stored in capitals automatically. Each code text can be used only once in your organisation, even after deletion.
  • Valid from / Valid until — the window in which the code works. Outside it the code is not accepted, so you can prepare codes in advance. Valid until ends the code at 00:00 on that date: for a code that runs through 31 October, choose 1 November.
  • Max uses — how many orders may use the code in total.
  • Max value — a cap on the total amount the code may deduct across all its redemptions; once the total reaches the cap, the code stops applying.
  • Discount type and Discount value — a percentage or a fixed amount. A fixed amount is deducted once per order.
  • Sessions — limits the code to places on the selected session resources; it is accepted only in a cart that holds such a place (see Discount codes). An empty Sessions means the code reduces the whole cart, including treatment appointments and products such as a gift voucher bought in the same cart.
  • Client groups — restrict the code to selected member groups. Leave empty to let every client use it. This column is disabled (but still shown) when your organisation has no group-membership field configured. The restriction is enforced at checkout: a client who is not in one of the selected groups cannot redeem the code, even if they know it.

Use the delete icon at the end of a row to remove a discount code; it is removed at once, without confirmation.

Clients redeem the code by entering it in the Voucher code field of the online booking cart. go flow does not publish the code for you: tell your clients, for example in an announcement or an email. How a code deducts, and what changing it does, is described in Discount codes.

Set up a pricing promotion ​

The Pricing promotions tab automates discounts around when a booking is made. Pricing promotions apply to sessions only, never to treatment appointments or products. At the top sit two text cards — Early-bird and Last-minute — with a Header and a Description; they are saved in your own interface language only and are currently not shown on the booking site, so you can leave them empty.

Below them, pricing rules are edited inline just like discounts — each row saves on change. Click Add rule and configure:

  • Type — Early-bird (rewards booking well in advance) or Last-minute (fills seats shortly before start).
  • Lead — the time window: days before start for early-bird (at least 1), hours before start for last-minute (at least 1; 0 never applies). A new rule starts at 7, so check the number after changing the type.
  • Day and time windows — a button labeled Always by default; click it to open a weekday-by-time grid (seven days across twelve two-hour blocks), toggle the cells the rule should be limited to, and save the grid with the save icon in its toolbar — closing it without saving discards the change. The cells select sessions by their start time, not by when the client books. Once at least one block is selected the button reads Custom; clear all cells and save to go back to applying always.
  • Discount type and Discount value — a percentage or a fixed amount per place. A value of 0 has no effect.
  • Sessions and Client groups — scope the rule; empty means it applies to all. Client groups is disabled (but still shown) when your organisation has no group-membership field configured.

Use the delete icon at the end of a row to remove a pricing rule.

Matching bookings get the reduced price automatically in the online checkout — clients do not need a code. When several rules match, only the largest reduction applies. Two examples:

  • Early-bird ladder for a workshop: one rule Early-bird, lead 30, 20%, Sessions = the workshop; a second rule Early-bird, lead 14, 10%, same session resource. A client booking 40 days ahead pays 20% less, at 20 days 10% less, and from 13 days ahead the full price. The booking site shows "until {date} · then {amount}" so clients see when the price rises.
  • Weekday last-minute: one rule Last-minute, lead 6, 15%, Day and time windows = Monday to Friday 10–16. A weekday class starting at 12:00 costs 15% less when booked from 06:00 that day.

Expected result: on the booking calendar a matching session shows the tag badge, the struck-through standard price and the reduced price; see Promotions in online booking.

Offer member benefits ​

Member offers — a members-only code, a member price or early booking for members — all depend on one client field.

  1. In Configurations > Templates, Fields tab, entity Client, create a field with one option per group, for example Membership tier of type dropdown with Bronze, Silver and Gold (Template fields). Leave Self managed and Show in profile off and do not select the field as a checkout field, so that only your staff can set it.
  2. In Configurations > Organisation, Profile tab, set Group membership field to that field and save (Organisation).
  3. Open each member in Clients and set their tier on the client record (Client details).
  4. Use the groups:
    • Members-only code: select the groups under Client groups on the Discounts tab, for example GOLD15 for Gold.
    • Member price: add a pricing rule with Client groups set. Rules do not add up, so a member rule only helps when it gives more than the public rule for the same session.
    • Early access: in the Generate sessions or Edit a session dialog, set the session to Restricted, choose a booking opening date, and add an early-access tier with Add early-access tier — for example Gold 7 days and Silver 1 day before the public. Leave Eligible groups empty when everyone may book from the opening date and members only get a head start. See Session visibility & bookability.

A client in any one of the selected groups qualifies. The group is read from the client record when the client books. Do not change Group membership field later: groups selected on codes, rules and sessions belong to the old field and then match nobody.

Decide whether discounts combine ​

In Configurations > Organisation, Modules tab, under Promotions, the setting Allow discount stacking decides what happens when a cart has both an automatic early-bird or last-minute price and a discount code.

  • Off (default): go flow compares, for the whole cart, the total saved by automatic prices with the code's reduction, and applies only the larger one. A partner code and an early-bird price therefore never combine.
  • On: the automatic prices apply first and the code is deducted from the reduced total.

The cart shows both reductions in either case; with stacking off, the payment page shows the amount actually charged. Pricing rules never combine with each other, and several different codes in one cart always do. Details: Combining discounts.

Test an eligible and an ineligible client ​

Test every member offer before you announce it, with two test clients instead of real customers.

  1. Prepare two test clients in Clients, each with an email address you can read (for example two staff mailboxes): Test Gold with Membership tier = Gold, and Test Public with no tier.
  2. Pick a session to test on: any upcoming bookable session with free places and a price, for an early-bird rule far enough ahead. You will not pay, so the held place is released when the reservation expires. Hidden and Private sessions cannot be booked through the booking site and are not suitable; if you prefer a dedicated session, create a public one at a time no customer will book and delete it after the test.
  3. Member price: open the booking site, sign in as Test Gold (for example through the profile, with the one-time code sent by email) and find the session: it shows the tag badge and the member price. Sign out, or use a private browser window, and sign in as Test Public: the same session shows the standard price, or the public price if a public rule also applies.
  4. Members-only code: as Test Gold, add the session to the cart, enter the code in Voucher code, continue through the details and the order summary, and select Proceed to Payment. The payment page must show the reduced amount. Leave it without paying.
  5. Repeat step 4 as Test Public. The cart also accepts the code and shows a reduction — the cart does not check groups — but the payment page must show the full price. Leave it without paying.
  6. Early access: during the tier's head start before the public opening date, Test Gold sees the session as bookable with the "Early access" star, while Test Public cannot book it yet.

If you complete a test booking instead, check it in Finance > Orders: a code's reduction appears in Discount total, while an early-bird or last-minute price shows as a lower Gross total. Cancel the test booking afterwards.

Change or end an offer ​

What you doEffect on existing bookingsEffect on carts in progress
Edit a code or pricing ruleNone — paid and confirmed orders keep their priceCheckout uses the new values
Set a code's Valid until to todayNoneThe code stops applying immediately
Delete a code or ruleNone — orders keep their discountNo reduction at checkout
Switch an announcement offline or delete itNoneThe banner disappears on the next page load
Change a client's tierNoneThe next booking uses the new tier

Codes you have already handed out stop working as soon as they are ended or deleted; there is nothing to recall. A client who added a code to the cart before you ended it sees the reduction in the cart but is charged without it.

If the result is not what you expected ​

  • Promotions is missing from the menu: switch on Payments and Promotions, and check your Configuration & settings right.
  • Clients see no code field in the cart: switch on Vouchers. The field also hides when the cart holds only products or nothing is left to pay.
  • "This code is not valid for the sessions in your cart": the code has Sessions set and the cart holds no place on one of those sessions. The code works once such a place is in the cart; for it to cover other sessions too, add them to Sessions on the code, or leave Sessions empty to cover the whole cart.
  • "Invalid voucher code": check the spelling, Valid from / Valid until (the end date is not included) and Max uses.
  • The cart shows the reduction but the payment page does not: the client is not in the code's Client groups, the code's Max value is used up, or Allow discount stacking is off and an early-bird price was larger.
  • No early-bird badge: check that the session starts at least the lead days ahead, matches the Sessions and Day and time windows, has a price, and that the discount value is above 0. For a member rule, sign in as a member. Treatment appointments never show one.
  • Client groups is disabled: set the Group membership field first.
  • The banner does not appear: check that it is online and within its dates, then reload the booking site. A visitor who closed it earlier does not see it again in that browser.