← Back to Blog

The Coaching Program That Onboarded Its First Member Before I'd Finished My Coffee

A real build from this week: a payment triggers a CRM tag, a Zoom registration, a welcome email, and a Slack ping, with zero manual steps and three real bugs along the way.

By · · blog

The Coaching Program That Onboarded Its First Member Before I'd Finished My Coffee

Quick one before we start: Build Night is on tonight, 6pm London. Details here.

The Coaching Program That Onboarded Its First Member Before I'd Finished My Coffee

Last Monday I said yes to a new group coaching offer. By Tuesday afternoon someone could pay for it, get tagged in the CRM, get auto-registered for Zoom, get a welcome email with an add-to-calendar link, and I'd get a ping in Slack telling me it happened. I didn't touch a single one of those steps by hand.

That's not a brag about speed. It's proof of a point I keep making on this blog: the automation is never the hard part. The plumbing between systems is.

What actually got built

Here's the chain, in order:

  1. Stripe payment link with two promo codes baked in, one for a set number of founding seats, one for a private referral.
  2. A webhook that fires the second someone pays, tags them in the CRM (customer, member, founding-seat, or referral, depending on which code they used), and switches off any pitch emails they were still getting.
  3. Auto-registration for the recurring Zoom call, using their own personal join link rather than a shared registration meeting.
  4. A branded welcome email, sent through Resend, with the join link, an add-to-calendar file, their receipt, and a note about the founding members' panel.
  5. A Slack ping back to me the moment the whole chain completes, so I know a real human just joined without checking three different dashboards.

None of that is clever. Any of it, on its own, is a Tuesday afternoon job. The reason it took a full day instead of an hour is that every join between those five steps is where things actually break.

What broke, and what that taught me

Three things went wrong building this, and all three are worth writing down because you'll hit versions of them too.

The pull request got merged too early. I'd committed the webhook, then kept working on the landing page, the logo, a credibility block, and a daylight-saving fix for the calendar invite. Someone (fairly, given the instruction at the time) merged the first commit before the later ones landed. The live page served the very first draft for hours while I thought the finished version was up. Nothing was broken in a way that threw an error. It just wasn't the thing I meant to ship, sitting there looking fine. So the fix was a second pull request, and a new habit: don't call a feature "live" until you've reloaded the actual production URL and looked at it, not the code.

The promo codes couldn't be tested by a machine. I use a browser automation step to sanity check checkout flows before they go live. But Stripe's fraud detection doesn't like that, and it returned the same generic error whether the promo code was valid or completely made up. So an automated test that should have confirmed the codes worked instead confirmed nothing at all. The only way to know the discount actually applied was for me to click it myself. Worth remembering: bot detection doesn't just block bad actors, it blocks your own QA as well. Sort of an annoying reminder that some things need a human hand on the mouse, and payment flows are usually one of them.

The calendar invite would have drifted an hour after the clocks change. The add-to-calendar link was built without a timezone anchor, so it would have shown the right time now and the wrong time the first Monday after the UK's clocks go back. That's the kind of bug that doesn't show up in testing because you're testing today, not in October. Anything that generates a recurring date needs to carry its timezone explicitly, not infer it from whatever server happens to be running the code that day.

None of these are exotic problems. They're the ordinary friction of connecting five systems that were never built to talk to each other. That friction is exactly what eats a business owner's week when nobody's automating it, and exactly what disappears once someone has.

Why I'm telling you this instead of just the sales pitch

I could have written this post as "look at the shiny new coaching program." Nobody needs another one of those. What's actually useful to you is the shape of the problem, because you've got your own version of it. Maybe it's a course platform that doesn't talk to your CRM. Maybe it's a booking form that doesn't tell your accounting software anything happened. Maybe it's a client onboarding process that lives entirely in someone's head.

The pattern is always the same: find where money changes hands or a commitment gets made, and build the chain forward from there. Payment or signup triggers the tag. The tag triggers the access. The access triggers the welcome. The welcome triggers the notification back to you. Each link is simple. The value is in nobody forgetting to do the next one.

And when it breaks, and it will, you want to know within minutes, not when a member emails you asking where their Zoom link is.

The bit that still needs a human

Worth being straight about what didn't get automated. I still show up to the calls myself. I still wrote the actual welcome copy, because a form letter reads like a form letter. And the promo codes still needed my own eyeballs and my own click to confirm they worked, because the automation that was meant to check that got mistaken for an attacker.

Automate the plumbing. Keep the parts that need a person doing the parts that need a person. That's the whole game.

If you want to see this kind of build happen live, with the bugs included, that's what tonight's about. Build Night, 6pm London, me building one of these systems from scratch while you watch. No slides, no rehearsed demo, and when it breaks on camera you get to see how I unbreak it. That's usually the useful bit. Grab a seat.

Brewed by Steven, poured by Viktor

About Steven Tann: Steven helps business owners build systems that run themselves using AI. After 10+ years helping 7,000+ businesses and building his own autonomous operations, he's the bloke who actually does it, not just talks about it. Find out more at steventann.com.

Tags: Small Business Automation, AI for Small Business, Practical AI, Business Systems, CRM Automation