client emails on autopilot

Five sequences. Zero clicks to send.

24-hour class reminders, welcome emails, win-back at three weeks dormant, renewal nudges seven days before period end, and failed-payment recovery with a Stripe one-tap card update link. All five fire automatically on the right product event, with no per-message cost.

Mindbody Marketing charges $80-200 a month to enable similar sequences. Junocal includes all five at $39.

A studio owner working with a client on a tablet at the front desk.
the five sequences

What fires automatically

24-hour class reminder

Fires 24 hours before class start, mode-aware. In-room attendees get the room name, instructor, and pick-a-spot assignment. Online attendees get the meeting URL, passcode, and a one-tap Join button.

Welcome — 24 hours after signup

Fires if the new client signs up and hasn't booked yet. Skips if they've already booked. Configurable copy. Most studios use it to introduce the room, the schedule, and the intro offer.

Win-back at 21 days dormant

Fires when a client with at least one prior booking hasn't booked in 21 days. Rate-limited to once per 90 days per client. The 21-day cutoff is the post-pandemic norm for active boutique-studio attendance.

Renewal nudge — 7 days before period end

For active memberships, fires seven days before the current period ends. Dedupes per period-end-day. Lets the client know the renewal is coming and gives them a clean opportunity to pause or cancel.

Failed-payment recovery

When a membership invoice fails, Junocal emails the client with the Stripe hosted-invoice URL for a one-tap card update. After 3+ failures, also alerts the studio owner. Flips back to active automatically on success.

why this matters

The operator time these save

The four marketing sequences (welcome, win-back, renewal, dunning) are the ones most operators end up writing manually, sporadically, or not at all. The 24-hour reminder is operational and every competitor ships it. What changes when these are automated:

  • The dormant client who hasn't booked in three weeks gets the win-back at the right moment — not a month later when they've already found another studio.

  • The membership renewal nudge gives clients a clean window to pause or update payment, instead of surprising them on the renewal date.

  • Failed-payment recovery lifts membership retention by 6-12 percentage points on average — clients who otherwise churn from a card declining come back when they tap the link and update.

  • The welcome email lands on the right people: new signups who haven't acted yet. Existing bookers don't get it. Skips the noise.

  • No copy-paste from Mindbody Marketing, no Mailchimp segment maintenance for these flows, no $80-200/month add-on for the sequences themselves.

infrastructure underneath

How it actually runs

Scheduled-job queue

Every email lives as a row in the scheduled_job table with a target client, template key, and scheduled-for timestamp. Workers claim jobs with FOR UPDATE SKIP LOCKED so multiple workers run safely in parallel.

Exponential backoff

Failed sends retry on a 2 min → 10 min → 1 hr → 6 hr → 24 hr schedule. If Resend has a hiccup, the email lands eventually, not never. After five failures the job goes to a dead-letter queue and an alert fires.

Resend for delivery

All emails ship through Resend (a modern transactional email provider). Deliverability monitored at the platform level. Open + click tracking available per template if you want it, off by default for privacy.

the things buyers ask

Questions

Which client emails fire automatically?

Five sequences. (1) 24-hour class reminder — fires once per booking 24 hours before class start, mode-aware so in-room attendees get the room and instructor and online attendees get the meeting URL. (2) Welcome — fires 24 hours after a new client signs up if they haven't booked yet. Skips if they've already booked. (3) Win-back — fires when a client hasn't booked in 21+ days but has at least one prior booking in the last 90 days, rate-limited to once per 90 days per client. (4) Renewal nudge — fires seven days before a membership period ends, dedupes per period-end-day. (5) Failed-payment recovery — fires when a membership invoice fails, sends the Stripe hosted-invoice URL for one-tap card update; after 3+ failures, also alerts the studio owner.

What's the cost?

Zero per-message cost. Email is part of the platform — no Mailgun, no per-send tier, no upgrade required to unlock the workflows. Mindbody charges $80-200/month for Mindbody Marketing as an add-on to get equivalent sequences. Junocal includes all five sequences in Starter at $39 and Studio at $99.

Can I customise the copy?

Yes — within the brand. Each template has a configurable subject line, intro paragraph, and CTA copy that you set once in settings. The structural shape (mode-aware reminder, payment-failed link, etc.) is fixed because those bits are wired to product behaviour, but the voice is yours. Branded sender comes from your studio name; replies route to your contact email.

Do these replace Mailchimp or Klaviyo?

No, they're complementary. The five sequences here are operational emails — they fire on specific product events (booking confirmed, payment failed, membership about to renew). Mailchimp and Klaviyo are still the right tool for broader marketing campaigns: monthly newsletters, member-only specials, lead-nurture flows. Junocal's automation handles the operational stuff that the studio shouldn't have to think about; Mailchimp/Klaviyo handle the marketing the studio actively designs. Both work together — client data syncs into Mailchimp and Klaviyo if you've connected them (Studio tier).

Is SMS included?

Not in the standard plan. SMS is an optional package — £15/$20 per month for 500 messages, £45/$58 for 2,000. The email sequences cover the four highest-impact moments today.

How does the failed-payment recovery actually work?

Stripe Connect webhooks notify Junocal when a membership invoice fails. The webhook handler mirrors the state into the client's membership row as past_due. The client receives an email immediately with the Stripe hosted-invoice URL — they tap the URL, update their card on Stripe's checkout page, and the next payment retry succeeds. Stripe retries the payment three times over the following week per its default smart-retry schedule. If all retries fail, the studio owner receives an alert email so they can reach out personally. When the payment eventually succeeds, the membership flips back to active automatically.

Can I see the queue of upcoming automated emails?

Yes. The /app/jobs view shows the scheduled_job queue — every email queued for delivery, with its scheduled-for timestamp, target client, and template. You can cancel individual jobs (rare but useful when, say, you've already personally reached out to a dormant client and the win-back email is about to fire). Most studios leave it alone after the initial setup.

What happens when a client unsubscribes?

Marketing emails (welcome, win-back, renewal nudge) respect unsubscribe and stop firing. Transactional emails (24-hour reminder for a booked class, failed-payment-recovery) keep firing because the client needs them — these are operational, not promotional. The unsubscribe footer on marketing emails is GDPR-compliant. Operational emails skip the unsubscribe footer.