Funnel validation
What the validator checks, how to fix common errors.
The funnel validator inspects a funnel’s configuration and reports problems that would prevent visitors from moving through the funnel correctly. It runs automatically and displays results as a banner at the top of the funnel detail page.
Validation is advisory — errors do not block saving the funnel or serving traffic. Fix errors before sending real visitors to the funnel.
What the validator checks
Landing page CTA links
For each landing step, the validator computes the expected redirect URL and checks whether that URL string appears in the landing page’s published content.
The expected URL format is:
/n/{funnelId}/{stepSlug}
Where {stepSlug} is the step slug of the next step — either the next landing page or the checkout step if this is the last landing page.
If the URL is absent from the page’s published data, the validator reports: Landing page does not contain expected redirect link.
This manual URL format is only required when you hand-write a link’s href directly in a custom component or a raw HTML page. Most built-in components (HeroBanner, SaleCta, AddToOrderButton, TextCtaBanner, etc.) provide a “Funnel CTA” link type in the property panel that auto-renders the correct URL based on the funnel step. Use the Funnel CTA link type whenever possible — it lets you reorder funnel steps without editing every page.
Step slug configuration
If the next step does not have a step slug set, the validator reports that the slug is missing before it can even check the page content:
Next landing page does not have a stepSlug configuredCheckout page does not have a stepSlug configured
Page type matching
Each step must reference a page whose type matches the step type. Assigning a custom page to a checkout step, for example, produces a type mismatch error.
Required steps
A funnel must have exactly one checkout step. The validator reports an error if the checkout step is absent.
Required snapshots
The validator checks that both the thank-you and error steps are bound to existing pages. If either page was deleted after the snapshot was taken, the step shows a broken reference.
How to fix common errors
“Landing page does not contain expected redirect link”
Open the landing page in the editor and add or correct the CTA link. Set it to /n/{funnelId}/{stepSlug} where {stepSlug} is the step slug of the next step. Publish the page. The validator re-runs when you reload the funnel detail.
“Checkout page does not have a stepSlug configured” / “Next landing page does not have a stepSlug configured”
Open the funnel detail, locate the step in the step list, and set a step slug in the slug field on that row. Slugs must be unique, letters only, maximum 20 characters.
“Page not found”
The page referenced by the step was deleted. Open the step row, open the page selector, and choose a replacement page. If no suitable page exists, create one first from /pages.
Missing checkout step
Add a checkout step to the funnel and assign a checkout page to it.
Missing thank-you or error snapshot
Go to /pages, create a page of the required type, then return to the funnel detail and bind it from the step row dropdown.
What the validator does not check
- Live HTTP requests. The validator does not fetch the live URL of any page. It works entirely from stored content.
- Payment flow simulation. The validator does not attempt to place a test order or verify that the payment provider is configured correctly.
- Upsell order correctness. The validator does not check whether upsell pages are sequenced in a commercially sensible order.
Caveats
- A funnel with no validation errors is not guaranteed to work end-to-end. The validator checks configuration structure, not runtime behavior. Always run a manual test in a private browser before sending real traffic (see Building a funnel).
- The validator checks the published page content. Changes you have made in the editor but not yet published are invisible to the validator.