Haruno Knowledge base

Redeem a code

A promo code gives a customer a plan or bonus credit. This page covers typing a code on the Account page, the promo link that fills it in, and the answers a customer can get.

  • DashboardAvailable

A promo code is made by our team. It does one of two things:

  • A plan code puts the customer on a plan, sometimes for a limited time.
  • A credit code adds bonus credit. It stacks on top of any plan.

A customer redeems a code in the Redeem a code card on the Account page, or by following a promo link.

The Redeem a code card on the Account page.
The Redeem a code card. The line Enter a promo code to add credit or unlock a plan, an empty Enter code box and a Redeem button.

Typing a code

  1. Open Account

    Choose Account in the sidebar and find Redeem a code.

  2. Type the code

    Capital letters are filled in for you. Spaces around the code do not matter.

  3. Press Redeem

    The button stays grey until something is typed. On success the card says "Code redeemed — your plan is updated." The plan badge and the meters on Usage update at once.

After a code is accepted.
The Redeem a code card with the code box empty again and a green line: Code redeemed, your plan is updated.

Our team can send a customer one link that fills the code in for them:

haruno.ai/dashboard/redeem?promo= followed by the code.

  1. The link opens

    It opens in the language of the customer's browser. A link that names no language is on purpose.

  2. Sign in if needed

    A customer who is not signed in is sent to sign in first. The code is kept and comes back with them. A first-time customer can create their account on the way.

  3. Press Redeem

    They land on the Account page with the code already typed, and the line "Your code is filled in — press Redeem to activate it." The code is never redeemed by itself. The customer presses the button.

What a customer sees after following a promo link.
The Redeem a code card with a code already in the box and the line Your code is filled in, press Redeem to activate it.

The code is removed from the web address as soon as the page has read it, so reloading the page does not fill it in again. A link whose code is longer than 64 characters is ignored.

When a code is refused

The card shows the reason in a red box.

A refused code.
The Redeem a code card with a red box under the code: Invalid promo code.
What the customer seesWhat it means
Invalid promo codeThe code does not exist, was switched off or has expired. The message is the same for all three, so nobody can tell which codes were ever made.
You have already redeemed this codeEach person can use a code once.
This code has been fully redeemedThe code has a limit on how many people can use it, and it is used up.
Cannot redeem a plan code while a paid subscription is activeA plan code cannot sit on top of a paid subscription. A credit code can.
Cannot redeem a plan code while your organization manages your planA member on an organization's plan cannot take a different plan. A credit code can still be used.
A credit code is the easy one

A credit code stacks on any plan. It is never refused because the customer already has a paid subscription or an organization plan. Use a plan code only for a customer who has neither.

Last updated · PR #2944 · View this version on GitHub

History (1 version)
  1. Internal knowledge base for staff: site, reader keys, assistant, 197 pages and the PR rule (#2944)
    What changed
    @@ -0,0 +1,76 @@
    +---
    +title: Redeem a code
    +summary: A promo code gives a customer a plan or bonus credit. This page covers typing a code on the Account page, the promo link that fills it in, and the answers a customer can get.
    +feature: dashboard-promo
    +covers:
    +  - web/dashboard/app/[lang]/account/page.tsx
    +  - web/dashboard/app/redeem/page.tsx
    +  - web/dashboard/app/redeem/layout.tsx
    +  - web/dashboard/e2e/promo-deep-link.spec.ts
    +  - server-dotnet/src/Haruno.Server/Services/PromoService.cs
    +---
    +
    +A promo code is made by our team. It does one of two things:
    +
    +- A **plan code** puts the customer on a plan, sometimes for a limited time.
    +- A **credit code** adds bonus credit. It stacks on top of any plan.
    +
    +A customer redeems a code in the **Redeem a code** card on the Account page, or by following a promo link.
    +
    +<Shot src="/m/067a9091831c-dashboard-redeem-light.webp" alt="The Redeem a code card. The line Enter a promo code to add credit or unlock a plan, an empty Enter code box and a Redeem button." caption="The Redeem a code card on the Account page." />
    +
    +## Typing a code
    +
    +<Steps>
    +<Step title="Open Account">
    +Choose **Account** in the sidebar and find **Redeem a code**.
    +</Step>
    +<Step title="Type the code">
    +Capital letters are filled in for you. Spaces around the code do not matter.
    +</Step>
    +<Step title="Press Redeem">
    +The button stays grey until something is typed. On success the card says "Code redeemed — your plan is updated." The plan badge and the meters on [Usage](/dashboard/my-usage/usage-limits/) update at once.
    +</Step>
    +</Steps>
    +
    +<Shot src="/m/e1a6ea5d3949-dashboard-redeem-success-light.webp" alt="The Redeem a code card with the code box empty again and a green line: Code redeemed, your plan is updated." caption="After a code is accepted." />
    +
    +## The promo link
    +
    +Our team can send a customer one link that fills the code in for them:
    +
    +**haruno.ai/dashboard/redeem?promo=** followed by the code.
    +
    +<Steps>
    +<Step title="The link opens">
    +It opens in the language of the customer's browser. A link that names no language is on purpose.
    +</Step>
    +<Step title="Sign in if needed">
    +A customer who is not signed in is sent to [sign in](/dashboard/getting-started/sign-in/) first. The code is kept and comes back with them. A first-time customer can create their account on the way.
    +</Step>
    +<Step title="Press Redeem">
    +They land on the Account page with the code already typed, and the line "Your code is filled in — press Redeem to activate it." The code is never redeemed by itself. The customer presses the button.
    +</Step>
    +</Steps>
    +
    +<Shot src="/m/f43cad66bded-dashboard-redeem-from-link-light.webp" alt="The Redeem a code card with a code already in the box and the line Your code is filled in, press Redeem to activate it." caption="What a customer sees after following a promo link." />
    +
    +The code is removed from the web address as soon as the page has read it, so reloading the page does not fill it in again. A link whose code is longer than 64 characters is ignored.
    +
    +## When a code is refused
    +
    +The card shows the reason in a red box.
    +
    +<Shot src="/m/628981438298-dashboard-redeem-error-light.webp" alt="The Redeem a code card with a red box under the code: Invalid promo code." caption="A refused code." />
    +
    +| What the customer sees | What it means |
    +|---|---|
    +| Invalid promo code | The code does not exist, was switched off or has expired. The message is the same for all three, so nobody can tell which codes were ever made. |
    +| You have already redeemed this code | Each person can use a code once. |
    +| This code has been fully redeemed | The code has a limit on how many people can use it, and it is used up. |
    +| Cannot redeem a plan code while a paid subscription is active | A plan code cannot sit on top of a paid subscription. A credit code can. |
    +| Cannot redeem a plan code while your organization manages your plan | A member on an organization's plan cannot take a different plan. A credit code can still be used. |
    +
    +<Callout variant="tip" title="A credit code is the easy one">
    +A credit code stacks on any plan. It is never refused because the customer already has a paid subscription or an organization plan. Use a plan code only for a customer who has neither.
    +</Callout>