⚙ SYSTEME.IO · OPERATIONAL REFERENCE

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.

5
Live funnel steps
$27→$900
Price ladder
3
Nurture emails
4
Legacy Builder tiers
Navigate

Table of Contents

Jump straight to any part of the manual — every tile below is a live link.

Overview
Build
Automate
Ship
Big Picture

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-ticket
$27
Order Form
Front-end
$67
OTO1
One-click upsell
$100
Legacy
Tier 1
$300
Legacy
Tier 2
$600
Legacy
Tier 3
$900
Legacy
Tier 4
L
Lead — 3-Page Playbook
Squeeze page · opt-in form
Visitor submits email → tagged LEAD‑PLAYBOOK → enters the 3‑email nurture sequence.
B
Bridge to Systeme.io In A Box
Info / bridge page
Two exits: push toward the paid offer, or let them take the free playbook and leave softly.
Yes, see system
Step 1 Order Form ($27)
No, get freebie
→ Free Playbook Thank‑You Page
1
Order Form — Systeme.io In A Box
Native 2‑step checkout. Successful payment fires the buyer tag and triggers OTO 1.
2
OTO 1 — PLR & MRR Bundle
/plr-bundle-oto1 · $67 one‑click
One-click upsell. Both accept and decline route to the same next step — the bridge page.
Accepts $67
Tag CUSTOMER‑OTO1‑VAULT + full vault access
Declines
No charge — same forward path
3
Master Bridge — Legacy Builder Overview
Positions the high-ticket ascension. Two clear exits, no dead ends.
Explore programs
Step 4 OTO2 Sales Page
Decline / exit
Step 5 Delivery Hub
4
OTO 2 — Legacy Builder Program
Long-form sales page with 4 tier checkouts. Every tier and the decline link both resolve forward to the Delivery Hub.
5
Complete Delivery Hub
Universal access point — every buyer, at every tier, ends up here. Welcome emails and post-purchase logins all point back to this one page.
Build · Step 1

Order 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

/siob-order-page · Order form
$27

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"
Build · Step 2

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

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.
Build · Step 3

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

Routing to verify in the Custom HTML element

  • Main CTA — "Explore the 4 Legacy Builder Programs":
href="https://hub.gowinfinance.com/legacy-builder-program-sales" target="_top"
Open ↗
  • Decline link — "No thanks, take me to my Delivery Hub":
href="https://hub.gowinfinance.com/sio-box-delivery-page" target="_top"
Open ↗

Checklist

  • Both links carry target="_top" so they break out of the Systeme.io iframe cleanly
  • Save code → Save changes → Exit
Build · Step 4

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

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
Build · Step 5

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

/sio-box-delivery-page · Thank you / info page

Links to verify in the Custom HTML element

  • Systeme.io affiliate tool linktarget="_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
Automate

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 EventResource GrantedContact 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
Automate

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.

Trigger: subscribed to the Playbook opt-in form
Apply tag LEAD‑PLAYBOOK
Wait 1 hour
Then check: tagged BUYER — $27? If yes → exit sequence
Email 1 — "Did you get a chance to open it? (+ quick shortcut)"
Wait 1 day
Recheck buyer tag → exit if bought
Email 2 — "The #1 reason most online funnels fail…"
Wait 1 day
Recheck buyer tag → exit if bought
Email 3 — "Is tech holding you back? (Last call)"
Sequence ends
No more sends unless re-triggered by a new opt-in
Ship

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.

Fixing "Code NOT VALID" on save

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

Document scoping

Never paste <!DOCTYPE>, <html>, <head>, or <body> into a Custom HTML block. Wrap everything in one root: <div class="unique-root-prefix">.

Iframe breakout law

Every internal funnel link needs target="_top" — without it, links get trapped inside Systeme.io's iframe or trigger mobile popup blockers.

External link protocol

Affiliate and legal links use target="_blank" rel="noopener noreferrer" — always both attributes together.

Unicode sanitisation

Strip non-breaking-space entities (\u00a0) left behind by rich-text paste — they cause line clipping and broken media queries on iOS/Android.

Fluid mobile responsiveness

Always enforce root box-sizing:

.root-class { box-sizing: border-box !important; width: 100% !important; overflow-x: hidden !important; padding: clamp(20px, 4vw, 48px) 16px !important; }
Aa Responsive typography

Use clamp() instead of fixed sizes:

font-size: clamp(1.2rem, 3vw, 2rem) !important;
Ship

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

Opt in on the Playbook page
Land on the Bridge page immediately
Instant PDF email arrives
Contact shows LEAD‑PLAYBOOK tag
Enrolled in the nurture workflow

2 Purchase + OTO1 Accepted

Complete $27 test purchase
Auto-redirect to OTO1
$67 one-click charges cleanly
Forwards to the Bridge page
Both buyer tags applied; nurture sequence stops

3 Purchase + OTO1 Declined

Complete another $27 test purchase
Click decline on OTO1
No upsell charge made
Lands directly on the Delivery Hub
$27 access email arrives
Pre-Launch ItemWhat to verify
Payment gatewaySwitched from Test Mode to Live Mode in Systeme.io settings
Custom domain & SSLhub.gowinfinance.com shows the secure padlock (https) on every page
Email linksAll welcome-email links point to the live delivery hub URL
Legal pagesFooter links open the active disclaimer tab on every page
TrackingMeta Pixel / GA4 / TikTok script added to Funnel Settings header code
Lead capture URLPrimary opt-in slug set as the bio link / ad destination
Ship

Troubleshooting Matrix

The recurring failure modes, in the order you're likely to hit them.

"Decline / Refuse step" error when saving OTO1
CauseUpsell steps require an active native Decline link on the canvas to validate FixAdd a native text link/button, action = Refuse upsell; hide with display:none if using Custom HTML instead
Button only opens color/font settings, no Action dropdown
CauseYou're clicking a sub-element inside a 2-step Order Form block FixThe payment button inherits its action from the parent form — check the step is positioned correctly in the funnel dashboard
Links open in a small inner box or don't load
CauseMissing target="_top" on an anchor tag FixAdd target="_top" to every funnel progression link
Customer bought OTO1 but got no login email
CauseResources weren't attached under Digital Product / Resources on the step dashboard FixFunnel Dashboard → Step → + Resources → attach course with Full Access + tag
Custom HTML layout breaks on mobile
CauseFixed px widths, or unstripped \u00a0 unicode characters FixReplace fixed widths with max-width + width:100%; sanitize pasted text
OTO1 charges twice or bypasses checkout
CauseButton configured as a plain external redirect instead of the native upsell submission FixEnsure the primary OTO1 button triggers the native 1-click upsell token (Submit form / native upsell action)
Ship

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.

1

Layer 1 — Custom HTML & Code Validity

Does the block save at all?
SymptomTestFix
"Code NOT VALID" on saveIsolate with the halving method above — save a single wrapping div first, then reintroduce content in halvesStrip DOCTYPE/html/head/body, straighten smart quotes, close every tag
Block saves but renders blank on the live pageRight-click the empty area on the live page → View Page Source → search for your root div classIf 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 liveOpen browser DevTools (F12) → Console tab on the live page, look for CSS/JS errorsMove any <style> tag inside the same block as its markup — separate blocks on the same page don't share scope reliably
2

Layer 2 — Page Routing & Redirects

Does every click land where it should?
SymptomTestFix
Link opens inside a tiny inner frameClick the link on mobile Safari/Chrome specifically — iframe trapping shows worst thereAdd target="_top" to that anchor tag
Button click does nothingDevTools → Console, click the button, watch for a JS error at the moment of clickConfirm 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 stepCompare 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 unintentionallyTest both paths back to back with the browser's URL bar visibleCheck the native Refuse/Accept upsell actions weren't both pointed at the same custom URL in Step 2's settings
3

Layer 3 — Checkout & Payment Processing

Does money move and is it recorded?
SymptomTestFix
Order Form button only opens color/font settingsConfirm you're clicking the actual payment button inside the 2-step block, not a nested text/image sub-elementClick 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 entirelyRun 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.ioCheck Systeme.io → Sales / Orders dashboard immediately after a live test purchaseConfirm payment gateway is in Live Mode, not still in Test Mode, before real traffic arrives
Tier checkout ($100–$900) opens the wrong priceTest each of the 4 tier buttons individually, confirm the checkout page price matches the button clickedCross-check each tier's slug against the Price Plan attached to that specific checkout step
4

Layer 4 — Tags & Resource Grants

Does a purchase actually unlock the right access?
SymptomTestFix
Buyer reports no login/access emailSysteme.io → Contacts → search the test email → check the Tags panel and the Courses/Access panel separatelyIf 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 manualRe-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 purchaseCheck 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
5

Layer 5 — Email & Nurture Automation

Do the right emails fire, and only to the right people?
SymptomTestFix
Nurture emails keep sending after purchaseBuy the $27 offer with a test contact, then wait through the next scheduled send windowConfirm 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 allCheck Systeme.io → Automations → workflow's run log for that contact; also check spam folderIf 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 pageOpen the actual sent email (not just the template) and click every linkUpdate the link inside the email template, not just the corresponding page — the two are edited separately
Contact enrolled in nurture sequence twiceContacts → the test contact's Automations tab, look for two active runs of the same workflowAdd a "already in workflow" exclusion condition on the trigger, or set the workflow to allow only one active run per contact
6

Layer 6 — Domain, SSL & Tracking

Is the infrastructure underneath the funnel solid?
SymptomTestFix
No padlock / "not secure" warningLoad every step's URL directly (not just the funnel entry point) and check the address barSSL 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 purchasesUse Meta Pixel Helper or GA4 DebugView while stepping through a full test purchaseConfirm the tracking script is in Funnel Settings → header code, not just one individual page's Custom HTML
Purchase events fire but with $0 valueCheck the pixel's Purchase event parameters in Events Manager against the actual price planValue 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
7

Layer 7 — Mobile & Cross-Device Rendering

Does the funnel actually work on the devices your traffic uses?
SymptomTestFix
Layout breaks or overflows sideways on phoneTest on an actual phone, not just desktop browser resized — resize doesn't reproduce mobile viewport quirksEnforce box-sizing:border-box and width:100% on the root container per the Hardening Rules above
Text clips or wraps oddly mid-word on iOSInspect the element on an iPhone Safari session specificallyStrip non-breaking space unicode characters left over from pasted rich text
Buttons don't respond to tap on mobilePhysically tap-test every CTA on both iOS and AndroidPopup-blocked links usually trace back to a missing target="_top", which some mobile browsers treat more strictly than desktop
🔍 Running the full sweep

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.

GoWin Finance · Systeme.io Funnel Operations Manual · hub.gowinfinance.com