▸ The full walkthrough: 6 minutes, from a test payment to the welcome email
What this does
A client pays on Whop for a product with "onboarding" in its name. LeadLift's server makes the client record and lays out 17 onboarding steps. Then three jobs start at the same time: Slack, Drive, and Skool with the welcome email. Each job reports in one Slack thread.
The one thing to remember: only a payment for a product with "onboarding" in its name starts this. Every other payment posts one line in #payments, and nothing more happens.
The server answers Whop at once. The slow work then runs in the background. Each part writes its result in the client's thread.
A client pays on Whop. Whop sends the payment to LeadLift's server.
The server checks Whop's signature and keeps a copy of the event. It refuses a payment with a wrong signature.
The server posts one line in #payments for each successful payment.
The server reads the product name and the price name. If neither has the word "onboarding", it stops here.
The server finds the client, in this order:
The same payment, the same membership or the same Whop user.
Exactly one client with the same email. The server looks at the paying email and the form email.
No match → make a new client at 0 - Paid. The contract starts today, on a 3-month window.
A new client → check for a duplicate: the same phone, the same name, or a close spelling.
A possible duplicate → add one ✗ line to the thread for a person. The server never merges two clients.
Already onboarded → record the payment only. A renewal never starts onboarding either.
The client shows in the app at once, on the Clients page and the Onboarding queue.
The server lays out the 17 onboarding steps. It posts the launch message in #onboarding.
The thread under that message is the client's run log.
The server starts three jobs. Each runs on its own, so one failure does not stop the others:
Slack: make a private channel with the client's name. Invite each Active team member who has a Slack id.
Then invite the onboarding alerts person and Viktor. Set the topic. Send the client a Slack Connect invite.
Drive: after the Slack job, Make makes the client folder with 5 folders in it.
Skool and email: add the client's email to the Skool group. Then send the welcome email.
The welcome email has three buttons: the client's own form link, the call booking link and Skool.
When Make reports the folder, the bot bookmarks Raw Footage in the client channel.
Then Make posts Fidel's welcome message in the channel, as Fidel himself.
Make also shares the client folder with the team, Icarus Growth and the client.
Each step adds one ✓ or ✗ line to the thread. A ✗ line tells a person what to do by hand.
The moving parts
These are the parts that this step uses. The code runs on LeadLift's server. The Drive work and Fidel's welcome run in Make.
Starts from
A successful Whop payment for an onboarding product. A developer can also send a test payment.
Runs on
LeadLift's server on Modal, in Fidel's workspace
Keeps its data in
The client record and the 17 onboarding steps. The server also keeps each raw Whop event.
Posts to
#payments · #onboarding, in the client's thread · the new client channel
Shows in the app
Clients, the Onboarding queue, and the client page
Timer
None. This part runs when Whop sends a payment.
Talks to
Whop (payments) · Slack (channel, invites, bookmark) · Skool (adds the member) · Resend (the welcome email) · the onboarding form's server (the client's own link) · Make (below)
Good to know (as of 12 Oct)
• No real payment has gone through yet. Every run since 10 Oct was a test.
• 19 real clients have no email. A payment from one of them finds no client. It makes a duplicate client with a second channel, Skool invite and welcome email.
• Fill in those emails on the client page before those clients pay again.
• The 50 clients added on 11 Oct are at 100 - Onboarded. A new payment from them never starts onboarding again.
• A person drafts and sends the contract by hand. Sheni makes the template first.
• A new client gets the first Active media buyer by default. Today that is Chris Brown.
• A failed or late Whop payment changes nothing yet. Set the paid status by hand on the client page.
What you can safely change
Green: change it in the app. Amber: ask Claude in the LeadLift code folder, then check the result. Red: do not change it. Call us.
Green
The client's names, email and phone. Change them on the client page. Fill in a missing email, so that a repeat payment finds the right client.
Green
The paid status, contract value, start date and management window. Change them in the Contract section of the client page.
Green
The media buyer and the client manager. Choose them in the Delivery section. Choose the client manager early: the editing pipeline uses that person.
Green
Who is on the team. On the Team page, each Active person with a Slack id joins each new client channel. Make shares each new client folder with them.
Amber
The word "onboarding" in the product name. Sheni set this rule on 10 Oct. Claude changes the rule and its test together. Then send one test payment and check #onboarding.
Amber
Which payment counts as a first payment. Today it is a one-time payment or a new subscription. Sheni set this on 10 Oct. A renewal never starts onboarding.
Amber
The 3-month management window on a new client. Sheni set this on 10 Oct. After a change, check the dates on the next test client.
Amber
The words of the welcome email and of Fidel's welcome message. Sheni wrote them on 10 Oct. Claude changes the text and its test together. Then read both after a test payment.
Red
The web address that Whop sends payments to. If it changes, no payment reaches the server. No onboarding starts, and Whop shows failed deliveries.
Red
Whop's signing secret. Change it in Whop and on the server at the same time. If the two differ, the server refuses every payment.
Red
The three Make automations and their web addresses. Leave them alone. Prerequisites tells you why.
Red
The password that the server, the form and Make share. It is set in three places. If one place changes alone, the server refuses Make and the form.
Red
The tables, their fields and the 17 step names. The app, the call code and the database read them. A changed name stops those parts.
Red
Who the ✗ lines and the duplicate line tag. Today they tag Icarus Growth, and that person joins each new client channel. Ask us to change this to a person at LeadLift before handover.
What connects to this
This tab shows what starts this step and what uses its results.
◀ Comes in from
Prerequisites: Whop products and Make The product name decides if a payment starts this. The three Make automations do the Drive work and Fidel's welcome.
Contract A person drafts and sends it by hand. It has no page yet.
#payments, #onboarding and the new client channel in Slack
The client record in the app
The Contract gets its own page when Sheni has made the template. The Editing Pipeline uses the Raw Footage folder that this part makes.
If something looks wrong
A client paid, but no launch message came in #onboarding. Look in #payments. If the payment line is there, the product name has no "onboarding". If no line is there, look at the delivery log in Whop.
The client's thread has a ✗ line. The line names the step and the fix. Do the fix by hand.
The thread says "Possible duplicate". Open both client records. If they are the same client, merge them by hand.
A client paid again and got a second channel. Their record had no email, so the server made a new client. Merge the two by hand. Then fill in the email.
No line for the Drive folder comes. Open Create Drive Folder in Make and look at its runs. When Make cannot report back, it also posts in #sentry.
The client says that the Slack invite did not come. Invite them again from the channel. A Slack Connect invite runs out after 14 days.
You cannot break this for good. Each change to the code is a saved version. A developer can put back the last working version of the server with one command. We also keep a copy of each Make automation with these pages.
Call us if a real payment does not start onboarding, or the same step fails for two clients.
Jargon buster
Server
The program that runs LeadLift's automations. It runs on Modal.
Run log thread
The thread under the client's launch message in #onboarding. Each step adds one line to it.
Job
One part of the work that runs on its own: Slack, Drive, or Skool and the email.
Signature
A code that Whop adds to each payment. It tells the server that Whop sent it.
Slack Connect invite
An invitation to one channel in LeadLift's Slack. The client keeps their own Slack.
Make automation
A scenario in LeadLift's Make account. Each one does one job.