Proposals by Plane · System Map
One CRM holds everything. Around it, a set of automations move each lead from first form through nurture, consultation, invoicing and commission — and a live portal shows every affiliate exactly the leads they sent. This is how the pieces fit together.
Who's involved
The stakeholders here are the affiliates — the people who refer customers to Proposals by Plane — plus two direct channels (Meta ads and the website) that bring leads in without a specific affiliate. Each refers through a form tailored to it, and each is credited a different way.
Refer customers in
The people and businesses who send customers in, each through their own tailored referral form:
?ref=<slug> code
on their link that identifies the lead as theirs.?ref=<slug> on their link ties
each lead back to them.Direct channel · no affiliate
Leads generated by paid social ads. They come in through the Meta form and go straight to the pipeline — they are not registered to any affiliate.
Direct channel · no affiliate
Visitors who fill in the website form enter the pipeline directly, then are routed to pay. Like Meta leads, they carry no referring affiliate.
Run the operation
Harshan and Alex monitor the pipeline in the CRM day to day. Harshan and Alex also set up new affiliates in the CRM — see “Setting up a new affiliate” below.
Alex reviews the monthly payout summary the system prepares, then makes the bank transfers to each affiliate.
The single source of truth
Every contact, deal, payment record, commission rate, tag, form and email lives in GoHighLevel — and nowhere else.
The affiliate portal stores no data of its own. It is simply a reflection of the GoHighLevel data, read live and shown back to affiliates so they can view their own leads.
The big picture
Before the individual automations, here is the journey every customer travels. The flows that follow each power one part of this pipeline.
A customer fills in an affiliate's form and becomes a tracked deal — credited to whoever referred them.
Unpaid leads get nurture SMS; consultation calls are booked, confirmed and reminded automatically.
The customer pays a deposit, drops out of nurture, and receives a single invoice with a payment schedule.
Each payment is logged against the contact; commissions are totalled and paid to the right affiliate.
This is the foundation everything else stands on: credit each lead to the right affiliate once, and the portal and the payout both follow automatically. There is a separate, individual workflow for each inbound form, because each is credited a different way.
Used by barbers and other affiliates. Their link carries a ?ref=<slug> code;
its workflow reads that code and stamps the lead as belonging to that affiliate.
Used by jewellers. Instead of a code in the link, the affiliate is identified by the “Your store” drop-down chosen on the form; its workflow credits the lead to that store.
This workflow must be updated every time a new jeweller affiliate joins — their store has to be added to the routing or their leads won't attribute. See the setup checklist below.
Leads from Meta ads land through the Meta form; its own workflow routes them to the pipeline with no specific referring affiliate.
Visitors who fill in the website form are attributed by that form's own workflow.
Attribution is written into a locked first-touch field that a later form submission can't overwrite — so the original referrer always keeps the credit, even if the same person fills in another form later.
When a form is filled in but no deposit has been paid, the lead needs following up. That happens on its own.
The deal sits in the pipeline with no deposit against it yet.
These leads are enrolled in a nurture sequence that sends reminder SMS messages, prompting them to take the next step.
As soon as a lead pays, they are automatically removed from the nurture sequence — so nobody who has already committed keeps getting chased.
Consultation calls have their own set of workflows so nothing is missed between a booking and the call actually happening.
When a consultation call is booked on the calendar, a workflow sends an automated confirmation to the lead.
If a lead buys a flexi-consult but hasn't picked a date, an automated nurture prompts them to book their call.
A workflow sends a reminder the day before the consultation call, reducing no-shows.
Once a customer commits, the system keeps a running record of what they owe and what they've paid — and rolls that up for Alex each month.
When a GoHighLevel invoice is sent to a customer, a workflow records the figures on that lead's contact in two custom fields: Package Total and Balance Remaining.
Each time the customer makes a deposit or an instalment payment, a ledger workflow updates their contact so Balance Remaining always reflects reality.
Once a month a workflow emails Alex a summary of all client deposits made and the amounts owed to affiliates, from which he makes the bank transfers.
A customer buying a package receives a single invoice. The full schedule of payments (deposit plus instalments) is set up inside that one initial invoice. Never send a second invoice for the same package — the payment plan already lives in the first.
Affiliates only earn when they actually submit leads, so the system nudges them to keep doing it.
Affiliates receive a sequence of emails and SMSs that regularly reminds them to enter leads into their affiliate forms — keeping referrals flowing rather than tailing off after signup.
The affiliate portal
The portal is a private, password-protected page — only for jewellers. It holds no data of its own; each time an affiliate opens it, it reads their leads straight from GoHighLevel and refreshes every two minutes.
The portal link is sent in each affiliate's welcome email, with instructions on how to set up their account:
https://pbp-affiliate-portal-a75.pages.dev/They set a password (stored securely and separately from the CRM, never as plain text), then log in. There's a “Change password” option and a magic-link fallback for anyone who forgets.
For Harshan & Alex
To turn a GoHighLevel contact into a working affiliate, four things are set on their record. Miss one and their attribution, commission or portal access won't work correctly.
Tag the contact so they're recognised as an affiliate and can access the portal.
tag: affiliateTheir unique slug — this is the ?ref code that credits their leads.
Choose one: a percentage of each deal, or a flat amount per deal.
Affiliate Commission PercentWhich referral form(s) they use — this drives which links appear in their portal.
Affiliate Referral ChannelJeweller leads are credited by the “Your store” selection on the Perth Jeweller Affiliate form — so a brand-new store won't attribute until it's been added. Whenever a jeweller joins, Harshan or Alex must add that store to the Perth Jeweller Affiliate attribution workflow (map the new store option to the affiliate's code). Miss this step and their referred leads won't be credited to them. Make it a standing part of setting up any new jeweller affiliate.
Website form: once the GoHighLevel website form is finalised, it must be embedded (or the existing embed updated) into the Squarespace website, so live visitors reach the current form.
Reference
The tags the live automations depend on. Other tags exist in the account (manual labels, plus older test and legacy tags), but these are the ones that drive the flows above.
| Tag | Type | Meaning & what it does |
|---|---|---|
| affiliate | Identity | Marks a contact as an affiliate: grants portal access and makes them eligible to earn commission on their credited leads. |
| house-affiliate | Identity | Marks a “lifer” who earns on every paid deal. Implies affiliate membership on its own — the plain affiliate tag isn't also needed. |
| lead-processed | Attribution guard | Added the first time a lead is routed to the pipeline. Every “to pipeline” workflow checks it first, so each lead gets exactly one opportunity and first-touch attribution can't be overwritten. |
| partner-staff-submission | Source | Marks a lead that came in via the Perth Jeweller Affiliate (staff) form, distinguishing staff-entered referrals. |
| package-paid | Payment state | The package is fully paid / the deal is won. Used for reporting and as a double-count guard in the commission & payout logic. |
Attribution itself doesn't rely on a tag — which affiliate a lead belongs to is held in the locked first-touch code field on the contact, which can't be overwritten.