The GoWin Finance Funnel — built, wired, and ready to run.
One route from a free playbook opt-in through to a $27 front-end, a $67 one-click upsell, and a $100–$900 Legacy Builder ascension — with every tag, redirect, and email trigger mapped so nothing runs on guesswork.
Table of Contents
Jump straight to any part of the manual — every tile below is a live link.
The Funnel Map
Every visitor enters through one of two doors — the free Playbook or a direct link to the paid offer — and every decision point below is a real branch inside Systeme.io, not just a diagram. Follow the arrows top to bottom.
Price Ladder — Ascension Path
Front-end → upsell → high-ticketOrder Form — Systeme.io In A Box
The front-end offer. This is where a lead becomes a buyer — get the tag and the redirect right here and the rest of the funnel takes care of itself.
1
Front-End Order Form
$27
▸
Front-End Order Form
Dashboard settings
- Funnels → your funnel → Step 1: Order Form → Step Type = Order form
- Add Resource → Course → (Copy) Systeme.io PLR package + templates → Access: Full access
- Add Resource → Tag → BUYER — $27 Front-End SIO In A Box
- Add Price Plan → Systeme.io In A Box ($27) → Save step
Page builder
- Edit page → click the Payment / Complete Order button inside the 2-step checkout widget
- Action when clicked: Submit form (native — don't override)
- Redirect after purchase: To the next step (auto-forwards to OTO 1)
Automation to check
- New sale → send email "Your Systeme.io In A Box Access & Deliverables"
OTO 1 — PLR & MRR Bundle Upsell
The only step with a hybrid button system — a hidden native button for Systeme.io's own validation, and your custom HTML for the visible, high-converting call-to-action.
2
One-Click Upsell Offer
$67
▸
One-Click Upsell Offer
Dashboard settings
- Step Type = Upsell
- Add Resource → Course → PLR package + templates → Access: Full access
- Add Resource → Tag → BUYER — $67 SIO PLR+MRR Bundle Vault
- Add Price Plan → Systeme.io PLR & MRR Bundle Vault ($67) → Save step
Hybrid button system — read carefully
- Keep one native accept button on the canvas, action = Accept upsell → redirect to a custom URL:
- Keep one native decline link, action = Refuse upsell → same URL above.
- Insert your Custom HTML block with the glowing CTA buttons on top — accept triggers form submission, decline points to the same bridge URL with target="_top".
Why the native buttons still matter
- Systeme.io requires an active native Accept and Decline element to validate and save an upsell step — hide them with CSS if your custom HTML is doing the visible work.
Master Bridge Page
One page, two honest exits. It sells the idea of the Legacy Builder ascension without forcing anyone into it.
3
Legacy Builder Bridge / Overview
▸
Legacy Builder Bridge / Overview
Routing to verify in the Custom HTML element
- Main CTA — "Explore the 4 Legacy Builder Programs":
- Decline link — "No thanks, take me to my Delivery Hub":
Checklist
- Both links carry target="_top" so they break out of the Systeme.io iframe cleanly
- Save code → Save changes → Exit
OTO 2 — Legacy Builder Program
Your highest-ticket page, carrying four separate checkout destinations plus one graceful way out.
4
Long-Form Sales Page
$100–$900
▸
Long-Form Sales Page
Tier checkout links to verify
- Master bottom CTA defaults to the $900 tier link
- Bottom decline link → /sio-box-delivery-page target="_top"
Tag on purchase (any tier)
- BUYER — Legacy Builder Member + external program access / custom portal grant
Complete Delivery Hub
Every road in this funnel eventually leads here. Treat it as the one page every buyer — at any spend level — can always find their way back to.
5
All-In-One Delivery Hub
▸
All-In-One Delivery Hub
Links to verify in the Custom HTML element
- Systeme.io affiliate tool link — target="_blank" rel="noopener noreferrer"
- Hostinger domain/email affiliate link — same target rules
- $27 core product downloads → self-links back to the hub, target="_top"
- $67 vault → links straight into the course/lecture URL, target="_top"
- Legacy Builder bridge link → back to Step 3, in case a buyer wants to revisit the ascension offer
Automation & Tagging Matrix
Every purchase event should fire exactly one resource grant and one tag. This is the source of truth — if a buyer reports missing access, check this table first.
| Trigger Event | Resource Granted | Contact Tag |
|---|---|---|
| Free Playbook opt-in | Instant PDF download | LEAD‑PLAYBOOK |
| Step 1 — Order Page ($27 sale) | PLR package + templates (Full access) | BUYER — $27 Front-End SIO In A Box |
| Step 2 — OTO1 Upsell ($67 sale) | PLR package + templates (Full access) | BUYER — $67 SIO PLR+MRR Bundle Vault |
| Hostinger domain lead action | External registration (optional webhook) | TAG — Hostinger Affiliate |
| OTO2 Legacy purchase ($100–$900, any tier) | External program access / custom portal | BUYER — Legacy Builder Member |
Lead Nurture Sequence
Runs automatically on anyone tagged LEAD‑PLAYBOOK who hasn't yet bought the $27 offer. It checks the buyer tag before every send, so a purchase mid-sequence silences the rest instantly.
HTML/CSS Hardening Rules
Standards for every Custom HTML block you drop into a Systeme.io page — break one of these and a page will look fine on desktop and quietly fail on mobile.
Systeme.io's Custom HTML element runs your paste through a strict fragment validator before it lets you save. It rejects the block, not the whole page — so this always means something inside that one paste, not your funnel setup. Work through these in order:
- You pasted a full page, not a fragment. The single most common cause. Systeme.io's Custom HTML block only accepts inner content — if your paste contains <!DOCTYPE>, <html>, <head>, or <body> anywhere, it's rejected outright. Strip everything down to a single wrapping <div> containing just your content, styles as an inline <style> block, and any script.
- Curly/smart quotes from copy-paste. Pasting from Word, Google Docs, or certain design tools silently swaps straight quotes " for curly ones " " inside attributes like href="..." — this breaks the parser instantly. Retype quote marks manually or paste into a plain-text editor first to strip formatting.
- Unclosed or mismatched tags. A missing </div> or an unclosed <a> fails validation with no line number given. Run the exact snippet through a free HTML validator (e.g. validator.w3.org) before pasting again.
- Non-breaking space characters (\u00a0). Same culprit that breaks mobile layouts — also breaks the validator if it lands inside a tag or attribute rather than plain text. Paste through a plain-text stripper first.
- Blocked elements/attributes. Some editors strip or reject raw <script> tags with inline event handlers (onclick="...") or javascript: URIs as a security measure. Move logic into a proper <script>...</script> block instead of inline handlers.
- Paste is too large. Very long blocks (a full page of copy + heavy inline CSS) can exceed the element's character limit. Split it into two Custom HTML blocks stacked on the page.
Isolation method: if none of the above is obvious, delete everything except one wrapping <div> with a single line of text inside, save it — confirm that saves cleanly — then paste your real content back in halves, saving after each half, until the failing half is found.
Never paste <!DOCTYPE>, <html>, <head>, or <body> into a Custom HTML block. Wrap everything in one root: <div class="unique-root-prefix">.
Every internal funnel link needs target="_top" — without it, links get trapped inside Systeme.io's iframe or trigger mobile popup blockers.
Affiliate and legal links use target="_blank" rel="noopener noreferrer" — always both attributes together.
Strip non-breaking-space entities (\u00a0) left behind by rich-text paste — they cause line clipping and broken media queries on iOS/Android.
Always enforce root box-sizing:
Use clamp() instead of fixed sizes:
Test & Launch Protocol
Run all three buyer journeys in a private/incognito window before sending a single dollar of traffic.
1 Free Lead Magnet Flow
2 Purchase + OTO1 Accepted
3 Purchase + OTO1 Declined
| Pre-Launch Item | What to verify |
|---|---|
| Payment gateway | Switched from Test Mode to Live Mode in Systeme.io settings |
| Custom domain & SSL | hub.gowinfinance.com shows the secure padlock (https) on every page |
| Email links | All welcome-email links point to the live delivery hub URL |
| Legal pages | Footer links open the active disclaimer tab on every page |
| Tracking | Meta Pixel / GA4 / TikTok script added to Funnel Settings header code |
| Lead capture URL | Primary opt-in slug set as the bio link / ad destination |
Troubleshooting Matrix
The recurring failure modes, in the order you're likely to hit them.
Surgical Diagnostic Protocol
A layer-by-layer investigation method for the whole funnel — not just "something's broken," but exactly which of the seven systems it's broken in, and the precise test that proves it. Work top to bottom; each layer assumes the one above it already passed.
Layer 1 — Custom HTML & Code Validity
▸
Layer 1 — Custom HTML & Code Validity
| Symptom | Test | Fix |
|---|---|---|
| "Code NOT VALID" on save | Isolate with the halving method above — save a single wrapping div first, then reintroduce content in halves | Strip DOCTYPE/html/head/body, straighten smart quotes, close every tag |
| Block saves but renders blank on the live page | Right-click the empty area on the live page → View Page Source → search for your root div class | If the div is missing entirely, the block silently failed to publish — re-save and hard-refresh (Ctrl/Cmd+Shift+R) |
| Block saves in editor but styling is missing live | Open browser DevTools (F12) → Console tab on the live page, look for CSS/JS errors | Move any <style> tag inside the same block as its markup — separate blocks on the same page don't share scope reliably |
Layer 2 — Page Routing & Redirects
▸
Layer 2 — Page Routing & Redirects
| Symptom | Test | Fix |
|---|---|---|
| Link opens inside a tiny inner frame | Click the link on mobile Safari/Chrome specifically — iframe trapping shows worst there | Add target="_top" to that anchor tag |
| Button click does nothing | DevTools → Console, click the button, watch for a JS error at the moment of click | Confirm the button's parent form/native action wasn't overridden by your custom HTML competing for the same click event |
| Redirect goes to the wrong step | Compare the exact slug in the button's href against the funnel dashboard's step order — slugs are easy to mistype (e.g. 100launchpad vs launchpad100) | Correct the href, re-save, re-test in an incognito window |
| Decline link and accept link both lead to the same place unintentionally | Test both paths back to back with the browser's URL bar visible | Check the native Refuse/Accept upsell actions weren't both pointed at the same custom URL in Step 2's settings |
Layer 3 — Checkout & Payment Processing
▸
Layer 3 — Checkout & Payment Processing
| Symptom | Test | Fix |
|---|---|---|
| Order Form button only opens color/font settings | Confirm you're clicking the actual payment button inside the 2-step block, not a nested text/image sub-element | Click precisely on the button element; its action is inherited from the parent Order Form, not editable per sub-element |
| OTO1 charges twice, or skips the 1-click flow entirely | Run a test purchase with test-mode card, watch whether a second card-entry screen appears (it shouldn't for a true 1-click upsell) | Button must trigger the native "Submit form" / upsell token action — not a plain external URL redirect |
| Payment succeeds but no order shows in Systeme.io | Check Systeme.io → Sales / Orders dashboard immediately after a live test purchase | Confirm payment gateway is in Live Mode, not still in Test Mode, before real traffic arrives |
| Tier checkout ($100–$900) opens the wrong price | Test each of the 4 tier buttons individually, confirm the checkout page price matches the button clicked | Cross-check each tier's slug against the Price Plan attached to that specific checkout step |
Layer 4 — Tags & Resource Grants
▸
Layer 4 — Tags & Resource Grants
| Symptom | Test | Fix |
|---|---|---|
| Buyer reports no login/access email | Systeme.io → Contacts → search the test email → check the Tags panel and the Courses/Access panel separately | If the tag is present but access isn't, the Resource wasn't attached under that step's Digital Product settings — re-attach with Full Access |
| Wrong tag applied (or none at all) | Same Contacts lookup — compare against the Tagging Matrix table in this manual | Re-open the step → Resources → confirm the correct tag is listed as a resource, not just mentioned in an email |
| Contact tagged twice for the same purchase | Check Contacts → Tags for duplicate near-identical tags (e.g. trailing space, different casing) | Merge/delete the duplicate tag globally in Settings → Tags, then re-point the step's resource to the single correct one |
Layer 5 — Email & Nurture Automation
▸
Layer 5 — Email & Nurture Automation
| Symptom | Test | Fix |
|---|---|---|
| Nurture emails keep sending after purchase | Buy the $27 offer with a test contact, then wait through the next scheduled send window | Confirm the workflow's decision step checks the exact buyer tag name — a typo'd tag name means the check always evaluates "No" |
| Emails not arriving at all | Check Systeme.io → Automations → workflow's run log for that contact; also check spam folder | If the workflow log shows the email as sent, it's a deliverability/DNS issue — verify SPF/DKIM records; if the log shows it never triggered, the trigger condition or delay step is misconfigured |
| Delivery email content links to the wrong page | Open the actual sent email (not just the template) and click every link | Update the link inside the email template, not just the corresponding page — the two are edited separately |
| Contact enrolled in nurture sequence twice | Contacts → the test contact's Automations tab, look for two active runs of the same workflow | Add a "already in workflow" exclusion condition on the trigger, or set the workflow to allow only one active run per contact |
Layer 6 — Domain, SSL & Tracking
▸
Layer 6 — Domain, SSL & Tracking
| Symptom | Test | Fix |
|---|---|---|
| No padlock / "not secure" warning | Load every step's URL directly (not just the funnel entry point) and check the address bar | SSL sometimes only auto-provisions for the primary domain — re-issue or re-verify SSL for hub.gowinfinance.com in domain settings |
| Pixel/GA4 not recording page views or purchases | Use Meta Pixel Helper or GA4 DebugView while stepping through a full test purchase | Confirm the tracking script is in Funnel Settings → header code, not just one individual page's Custom HTML |
| Purchase events fire but with $0 value | Check the pixel's Purchase event parameters in Events Manager against the actual price plan | Value tracking usually needs to reference the price plan's dynamic value — check the pixel snippet isn't hardcoded to $0 or missing the value parameter |
Layer 7 — Mobile & Cross-Device Rendering
▸
Layer 7 — Mobile & Cross-Device Rendering
| Symptom | Test | Fix |
|---|---|---|
| Layout breaks or overflows sideways on phone | Test on an actual phone, not just desktop browser resized — resize doesn't reproduce mobile viewport quirks | Enforce box-sizing:border-box and width:100% on the root container per the Hardening Rules above |
| Text clips or wraps oddly mid-word on iOS | Inspect the element on an iPhone Safari session specifically | Strip non-breaking space unicode characters left over from pasted rich text |
| Buttons don't respond to tap on mobile | Physically tap-test every CTA on both iOS and Android | Popup-blocked links usually trace back to a missing target="_top", which some mobile browsers treat more strictly than desktop |
When something's wrong and you don't know where: run Layers 1→3 first with one real test purchase (that catches most breakages), then check Layer 4 in Contacts immediately after. Only move to Layers 5–7 if the purchase-and-tag path came back clean but a specific complaint (no email, broken mobile view, missing tracking) points there directly.