Prompt Kits

Build a Loyalty Card & Book-Again System

Winning a customer costs far more than keeping one, and most small businesses lose people not to a competitor but to nothing in particular — a client who meant to book again, and then a month passed, and then it was awkward. This kit builds the two things that fix that: a visit count with a reward at the end of it, and a scheduled message that arrives at the moment someone would naturally be due back. The second half is the bigger one. A loyalty card mostly rewards people who were already coming; the message that lands three weeks after a nail appointment, or at the start of the next planting season, is the one that changes what would otherwise have happened. Both halves are built here, and so is the arithmetic that tells you whether the reward is worth giving at all.

Project type: Loyalty & re-engagement Difficulty: Intermediate Time: 1-2 days Works with: Base44 / Lovable / v0

What you'll have at the end

  • A visit count per customer, filled automatically from bookings where your setup allows and by hand where it does not
  • A reward you chose, with the numbers in front of you rather than copied from another business
  • A progress view the customer can actually see, which is what makes the card work at all
  • A scheduled "time to book again" message that fires at the interval you set — and does not fire at someone who already rebooked
  • A one-click way out of those messages that works immediately
  • An owner view of who is due, who is lapsing, what the rewards cost you and what the nudges brought back

Before you start

  • Your real repeat interval. How long it actually is between visits for each service you offer. Not the ideal — the real one, from your own book. Every nudge in this kit is timed off this number, and guessing it produces messages that arrive either as nagging or as too late.
  • The reward, and what it costs you. Decide the reward and then work out the discount it represents across the whole cycle. A free eighth visit is about a twelve percent discount on your most loyal customers — people who were coming anyway. That may be worth it; it needs to be a decision rather than a default.
  • What you want the reward to change. More frequent visits, a bigger basket, a referral, or a switch from a booking app to booking with you directly. A reward that buys nothing is just a price cut applied to your best customers.
  • How visits get recorded. Automatically from your own bookings is ideal. If bookings live in another system, decide now that you will mark visits by hand, and be honest about whether you will keep doing it.
  • Your terms. Expiry, whether visits transfer between services, what happens if someone does not show up, and whether the reward can be combined with anything else. Write them before the first customer is halfway to a reward.
  • A proper email delivery service, because the scheduled messages have to arrive.

Which platform suits this

Base44 suits this best: the visit ledger, the customer view, the schedule and the send history live in one managed app, and if your bookings are already there the counting can be automatic rather than manual. Lovable builds the same through Lovable Cloud or an optional Supabase backend. v0 will build it on Vercel with server actions or API routes, but the scheduled part is the wrinkle — something has to run on a timer whether or not anyone is visiting the site, and you will need to set that up and confirm it actually fires. On every platform, if your bookings live in an outside system, the counting is manual here and no kit can change that.

Start with the first prompt on a free plan. Extra usage and some connected services may cost more as you build out the project.

Build it on

How we make money

The steps

1

Count the visits honestly

When to use this

Start here, on the site or app where your customers already exist.

A reliable visit count per customer, and a record you can correct.

The prompt

Add visit tracking to this site for [YOUR BUSINESS AND WHAT COUNTS AS A VISIT, e.g. a nail studio, where a completed appointment counts].

Each customer has a record with their name, contact details, the services they have had, and a dated list of their visits.

[IF MY BOOKINGS ARE ALREADY IN THIS APP: count a visit automatically when an appointment is marked completed — not when it is booked, and not when it is paid for. A booking that did not happen is not a visit.]

Give me a way to add, edit or remove a visit by hand, because reality will not match the system sometimes and I need to fix it in seconds rather than apologise to a customer.

Only count what I define as a visit: [YOUR RULE, e.g. any service over a certain value, or specific services only, or every appointment].

Store nothing beyond what running this needs — name, contact, dates and services. [IF MY FIELD IS REGULATED: nothing clinical, nothing about treatment or condition; this record is administrative only.]

Only I can reach these records. Make sure they are properly protected.

Do not build any reward or message yet.

Check it worked

  • Every customer has a dated visit history you can read at a glance
  • Visits count on completion, not on booking, where counting is automatic
  • You can correct a visit by hand in seconds
  • Only what you defined as a visit is counted
  • Nothing beyond the administrative minimum is stored
  • The records are genuinely protected

You'll know it worked when:

Five real customers whose visit counts match what you know to be true.

Watch out for

Count on completion, not on booking. Counting bookings means a no-show earns progress toward a reward, which teaches exactly the wrong thing and is noticed quickly by the customers you least want to teach it to. If your bookings live in another system, accept now that this is manual: a loyalty scheme you update by hand at the end of the day works fine, and one you intended to update and did not is worse than none, because customers will ask.

2

Set a reward you can afford

When to use this

Once counts are reliable.

The reward, its rules, and the arithmetic in front of you.

The prompt

Add a loyalty reward to the visit tracking.

My reward: after [YOUR NUMBER] qualifying visits, the customer gets [YOUR REWARD]. Use exactly this — do not choose a number or a reward for me, and do not copy a scheme from another business.

Before I save it, show me what it costs: the effective discount across the full cycle at my typical service price of [YOUR TYPICAL PRICE], and what the whole cycle is worth to me with and without the reward. I want to see the arithmetic, not a reassurance.

Let me set the rules and show them wherever the card appears: [YOUR TERMS — expiry, whether visits transfer between services, what happens on a no-show, whether it combines with other offers].

When a customer reaches the threshold, notify me and mark the reward as available. I redeem it myself and mark it used — nothing is applied automatically, because I need to see who is in front of me.

Keep a record of every reward earned and redeemed, with dates.

Let me change the threshold or the reward later without disturbing progress customers have already earned.

Check it worked

  • The threshold and reward are exactly the ones you set
  • You saw the effective discount before committing to it
  • The rules are visible wherever the card shows
  • Reaching the threshold notifies you and waits for you to redeem
  • Earned and redeemed rewards are recorded with dates
  • Changing the scheme later does not erase existing progress

You'll know it worked when:

You looked at the real discount your scheme represents and decided it was worth it — or changed the number until it was.

Watch out for

Do the arithmetic before your customers do. The reward is paid almost entirely to people who were already loyal, so its job is to change something — how often they come, what they spend, whether they book with you instead of through an app that charges you commission. If you cannot say what it is buying, you have written a discount for your best customers and called it a strategy. And never let the AI pick the threshold: it will produce a plausible-sounding number with no knowledge of your margins.

3

Let the customer see where they are

When to use this

Once the reward and its rules are set.

Visible progress, because an invisible loyalty card changes nothing.

The prompt

Show customers their own loyalty progress.

[YOUR CHOICE: a private page they reach by logging in, or a personal link I can send them.] Either way, a customer must only ever see their own record and never anyone else's.

Show: how many qualifying visits they have, how many remain, their reward, the rules, and whether a reward is currently waiting for them.

Keep it to one simple screen that reads clearly on a phone. No accounts to manage, no points system, no tiers, no currency to convert — a count and a goal.

When someone earns a reward, tell them — by email if they have agreed to hear from me, and on their progress screen either way.

Do not show any customer anything about other customers, including counts, rankings or leaderboards.

Keep everything from the previous steps working exactly as it is.

Check it worked

  • A customer can see their own count, their remaining visits and the rules
  • Nobody can reach anyone else's record
  • It reads clearly on a phone in one screen
  • Earning a reward is communicated, not left to be discovered
  • No points, tiers or rankings appeared

You'll know it worked when:

You opened a customer's own view on a phone and it was immediately obvious how close they were.

Watch out for

Progress you cannot see is not a loyalty scheme, it is a discount you occasionally remember to give. But resist the urge to build points and tiers on top of it: a count and a goal is understood instantly, and every layer of abstraction between a visit and a reward costs you comprehension without buying loyalty. Test the access properly — one customer seeing another's visit history is a real privacy failure, not a rough edge.

4

Send the message that actually brings them back

When to use this

Once the card works. This is the half that changes revenue.

A scheduled message at the natural moment someone is due, that never fires at the wrong person.

The prompt

Add scheduled book-again messages.

For each service, I set how long after a visit the message goes out: [YOUR INTERVALS, e.g. three weeks after a fill, three weeks after a one-off clean, at the start of the next season, eleven months after an annual review]. Use my intervals exactly.

Let me write the message myself for each service — warm, short, one clear way to book. Do not generate the wording for me and do not send anything I have not written and approved.

Before any message goes out, check it is still appropriate: do not send if the customer has already booked again, has a booking coming up, has asked not to receive these, has unsubscribed, or has been sent one of these recently. A "time to book again?" reaching someone sitting in my chair is worse than sending nothing.

Every message carries a one-click way to stop receiving them, which works immediately and needs no login. Honour it permanently.

Send through a proper email delivery service so these arrive, and tell me what to set up.

Show me what is scheduled to go out before it goes, and let me cancel or postpone any of it. Let me pause the whole thing in one action.

Record every message sent, and whether a booking followed within [YOUR WINDOW, e.g. two weeks].

[IF I ALSO WANT A LAPSED-CUSTOMER MESSAGE: one message, once, to someone who has not visited for [YOUR PERIOD], and never again after that. One is a reminder; more is pestering.]

Check it worked

  • Each service has its own interval and its own wording, written by you
  • A customer who already rebooked does not receive one
  • Every message has a one-click stop that works immediately and permanently
  • You can see what is queued and cancel, postpone or pause it
  • Sends are recorded alongside whether a booking followed
  • Nobody gets the same nudge twice in quick succession

You'll know it worked when:

A real book-again message that went out on schedule to a customer who was genuinely due, with the queue visible to you beforehand.

Watch out for

The suppression rules matter more than the message. One badly timed nudge — to someone with an appointment tomorrow, or someone who told you they had moved away, or the same person twice in a fortnight — undoes more goodwill than a good message builds, and these are the checks people leave out because nothing visibly breaks without them. Test the schedule actually fires on its own: a timed job that only runs when someone happens to visit the site is a common and silent failure, and you will not notice until you wonder why nobody is booking.

5

See what it is worth

When to use this

Once rewards and nudges have been running for a full cycle.

The numbers that say whether to keep it, change it or stop.

The prompt

Add a private summary screen for loyalty and book-again.

Show me who is due back soon, who is close to a reward, and who has lapsed past their usual interval — the three lists I would actually act on.

For the reward: how many are in progress, how many earned and redeemed this period, and what the redeemed rewards cost me at my typical price.

For the nudges: how many were sent, how many were followed by a booking within [YOUR WINDOW], and how many people opted out. Put the opt-outs beside the bookings, because that comparison is the honest measure.

Show me average visits per customer over time, so I can see whether frequency is actually changing rather than assuming it is.

Let me export my customer list and their visit history, so it is always mine.

Keep everything from the previous steps working exactly as it is.

Check it worked

  • Three actionable lists: due soon, close to a reward, lapsed
  • Reward cost for the period, in money
  • Nudges sent, bookings that followed, and opt-outs side by side
  • Visit frequency over time, so a change is visible rather than assumed
  • You can export everything

You'll know it worked when:

You compared what the rewards cost against what the nudges brought back, and knew whether to keep the scheme as it is.

Watch out for

Judge the two halves separately. The nudges usually pay for themselves quickly and visibly; the loyalty card often does not, because much of its cost goes to behaviour that would have happened anyway. That is not a reason to drop the card — it can be worth it for how it feels to a regular, or for moving people off a commission-charging booking app — but it should be a choice you make with the number in front of you rather than an assumption you never tested.

Going live

  • Check five real customers' visit counts against what you know to be true
  • Confirm a no-show does not earn a visit
  • Read your own reward terms as a customer would, especially expiry and what happens on a missed appointment
  • Send yourself a book-again message and confirm it arrives in an inbox, not spam
  • Book an appointment for a test customer and confirm their queued nudge is suppressed
  • Click your own opt-out link and confirm it works with no login and holds permanently
  • Open a customer's progress view while signed in as a different customer and confirm you cannot
  • Confirm the scheduled job actually runs on its own, with nobody visiting the site
  • Add a privacy note covering the visit history you keep (see the legal pages prompt)

Spend fewer credits

Every builder charges you for the work its AI does — so the cheapest habit is thinking before you build. These six rules cut most of the waste, whichever platform you choose.

  1. Plan in a free chat first. Sketch the whole thing in ChatGPT, Claude or Gemini — pages, features, what each form collects, what it should look like. Thinking there is free; thinking inside a builder is billed.
  2. Start from a written prompt, not a sentence. "Make me a website" is the most expensive sentence in AI building. A complete first prompt — like the ones on this site — saves dozens of correction rounds.
  3. Don't be lazy with the details. Every detail you leave out comes back as a correction you pay for. Business name, colors, every page, every form field, what happens after someone submits — put it all in the first prompt.
  4. One change per message afterwards. "Fix the header, and the form, and the colors" produces a tangle that costs more to unpick than it saved.
  5. Stuck? Stop patching. If the same fix fails about three times, don't send a fourth correction — describe the whole section's desired end state in one fresh message instead.
  6. Start free. Upgrade when you need more. Use the free allowance to build and explore your first version. Upgrade when you need more usage or paid features, and check any connected service costs before launch.

The prompts on this page are written to do most of this work for you — that's the point of them.

Read the full guide

Last reviewed: 2026-09-14

FAQ

We use cookies to analyze traffic and track affiliate clicks. By continuing, you agree to our Privacy Policy.