Migrating a ClickFunnels funnel, step by step
There is no ClickFunnels importer. Here is the honest manual path: pages, offer data, checkout, tracking, email and the DNS cutover, in order.
Let me get the disappointing part out of the way in the first paragraph, because you are probably mid-migration and do not have time for a slow reveal.
There is no ClickFunnels importer. No export parser, no migration command, no “connect your ClickFunnels account” button. Our own comparison page says the same thing, and I would rather repeat it here than let you find out three hours in. Moving a funnel to Autonnel is manual work. It is not hard work, and most of it is work any platform change would cost you, but nobody is going to do it for you.
What follows is the order I would do it in.
Step 0: stand it up somewhere nobody can see
Do not touch your live funnel until the new one takes a test payment.
curl -O https://raw.githubusercontent.com/autonnel/autonnel/master/docker-compose.yml
docker compose up
Open http://localhost:4321 and complete the /setup wizard. It boots with no store, no payment provider and no email provider configured, which is exactly what you want for a first pass. Full details are in installation.
Build the whole thing locally or on a staging hostname. The DNS cutover is the last step, not the first.
Step 1: the offer and product data
This is the part people underestimate, so it goes early.
ClickFunnels holds your products for you. Autonnel does not: it has no built-in product catalog. It reads products from an external store and writes completed orders back to it. You pick one adapter per deployment in Settings → Ecommerce: Shopify, WooCommerce, or Picocart.
So before any page work, you need somewhere for the offer to live. If you already sell on Shopify or Woo, paste the credentials and click Test connection. If ClickFunnels was your store, you have a decision to make, and Picocart exists partly because that decision is annoying.
One thing that catches people: Autonnel only reads the catalog and writes the order back. Tax rules, shipping rate display, discount codes and email templates are Autonnel-side settings and are not inherited from the platform, even if you have them configured over there. Coupons live in Settings → Coupons and have to be re-entered.
Step 2: the pages and the copy
Two paths, and I would use both.
Path A, the HTML editor URL import. The HTML editor has an Import from URL button. Give it a publicly reachable URL, and Autonnel fetches the HTML server-side, downloads the referenced images, stylesheets and scripts into your storage bucket, and rewrites the relative URLs to point at your CDN domain. You need S3 and a CDN domain configured in Settings → Storage first, or the button is disabled.
Be clear about what this is: a generic page fetcher, not a ClickFunnels integration. It knows nothing about funnel structure, steps, or products. It gets you the pixels-on-screen version of a page and nothing else. Sites that block server-side requests or sit behind a bot challenge will fail the fetch, in which case you save the page from your browser and paste the markup into code mode.
Path B, rebuild in the visual editor. Create the page from a template (Pages → New page → Template), then reshape it. Once an LLM is configured in Settings → LLM, the in-editor Agent panel takes instructions like “rewrite the hero headline and subheadline to emphasise a 30-day money-back guarantee” against the existing layout. It edits an existing page rather than creating one from nothing, so a template always comes first.
My recommendation: rebuild every page on the money path in the visual editor, and use URL import for the long tail. HTML pages have real limits that matter inside a funnel:
- no funnel-aware CTA links, so every button is a hard-coded URL you maintain by hand
- no island rendering
- no component-level A/B testing
- the tracking script is not injected automatically, you add the tag yourself
- no autosave, you click Save
For an advertorial, a policy page or a sales letter you never intend to restructure, none of that matters and URL import saves you an afternoon. For the checkout, the upsell and the landing page feeding them, take the hour and rebuild.
Step 3: checkout and the payment provider
Checkout is the one page you should not import. Rebuild it: Pages → New page, type Checkout, and the CHECKOUT template arrives with ProductSelector, AddressForm and PaymentForm already wired together. Bind the selector to products from your connected store. Do the same for a Thankyou page and an Error page, both of which funnels expect to exist.
Then reconnect the processor in Settings → Payment. For Stripe that is the publishable key, the secret key, and a webhook endpoint carrying at least payment_intent.succeeded, payment_intent.payment_failed and charge.refunded, with the signing secret pasted back into the Stripe card. Details in the Stripe and PayPal docs.
Two things to check before you celebrate:
- Redirect-based 3DS is not supported. Cards requiring a redirect flow will decline. If your traffic is heavily European, test real card types before you cut over, not after.
- PayPal upsells use two-step authorise-then-capture. Checkout creates an
AUTHORIZEintent and each upsell step captures or voids. Worth confirming with a sandbox order.
Place a test order with 4242 4242 4242 4242 and confirm it lands in Orders as Paid. That is the gate for everything below.
Step 4: wire the steps and collect the new URLs
Create the funnel, attach the checkout step, add landing and upsell steps around it. Every step exposes a funnel URL in the shape /n/{funnelId}/{stepSlug}, and that is the link that goes into your ad creative, not the raw page slug. Hitting a checkout slug directly still takes the payment, but funnel-scoped attribution and A/B buckets may not resolve.
Write the new URLs down now. You need them in the next two steps.
Step 5: tracking and pixels
Split this in your head, because ClickFunnels blurred it.
Client-side pixels go into Settings → Scripts (site-wide) or the funnel’s Scripts tab, injected at HEAD, BODY_START or BODY_END. Direct equivalent of wherever you pasted them in ClickFunnels. Copy them across verbatim.
Server-side conversion postback is separate and better. Create an ad account under Ads, then bind it in the funnel’s Ads tab. Facebook, TikTok and Bing Ads work in token mode with just an access token and pixel or UET tag ID. Google Ads does not support token mode; connect it via OAuth under Settings → Ads instead (built into the core, no plugin needed). Attribution routes by click ID captured on the landing page: fbclid, ttclid, gclid / wbraid / gbraid, msclkid.
Most stores run both. Pixels are easy and lossy, postbacks are more setup and survive ad blockers.
Step 6: email
Configure Settings → Email Provider (SMTP, Resend or AWS SES) before you send anything. SPF, DKIM and DMARC on your sending domain are prerequisites, not polish. If you are moving sending domains along with the funnel, do the DNS records days early and warm up.
Abandoned-cart recovery lives in Settings → Recall, defaulting to 24, 72 and 168 hours after order creation, with an optional coupon bound per interval. That covers the recovery sequence. It does not cover the rest of your email programme, which is the next section.
Step 7: the DNS cutover
Last, deliberately.
Add the hostname in Settings → Domains, no protocol and no trailing slash, then point DNS at your deployment yourself, usually a CNAME. Autonnel does not manage DNS and does not issue TLS certificates, so terminate HTTPS at your infrastructure layer: Cloudflare proxy, your platform’s certificate manager, or Nginx plus Certbot.
Things to know before you flip the record:
- exactly one domain is primary, and every other domain 301s to it, so set primary correctly before traffic arrives
- there is no domain verification step in the open-source edition
- wildcard domains are SaaS-only, each subdomain needs its own row
Cut over during your lowest-traffic hour, keep the ClickFunnels subscription running for one more billing cycle, and watch orders land before you cancel anything. At $97, $197 and $297 a month for Launch, Scale and Optimize (prices checked 2026-08-01), one overlapping month is cheap insurance against a bad cutover.
What does not map cleanly
Autonnel is a funnel and checkout layer. ClickFunnels is a suite. Three things you have today do not have a destination here, and pretending otherwise would waste your week.
The CRM. Autonnel is not a CRM. Contact records, lists and segments have no home. Customer data ends up in your commerce platform, which is where orders are pushed. If you run lifecycle marketing off ClickFunnels contact data, export it before you cancel and land it somewhere deliberate.
Email marketing. Transactional email and abandoned-cart recall are first-class. Broadcasts, drip sequences and campaign builders are not, and are not planned. Budget for a dedicated ESP. This is the line item people forget when computing the savings.
The affiliate platform. Different problem space, not in scope, no equivalent. If your funnel’s economics depend on affiliates, you need a separate affiliate tool before you can move, and that should be resolved first rather than discovered on cutover day.
Courses and community are the same story. The honest framing from our own comparison page: ClickFunnels bundles courses, email and a large template marketplace, and if you want zero operations plus that whole stack, they are the safer choice.
Do not migrate if…
I would rather you stop reading here than resent this in three weeks.
- Your funnel’s economics run on affiliates. There is no affiliate engine. Solve that first or do not start.
- ClickFunnels is also your email marketing platform and you have not budgeted for an ESP. The migration is not finished when the funnel is live, it is finished when the sequences send.
- Nobody on the team owns infrastructure. Self-hosting means Postgres, backups you have actually restored, and an answer to who gets paged at 2am. Cloud removes that, but if neither self-hosting nor a hosted bill is acceptable, stay put.
- You are mid-launch. A cutover during a live campaign is how attribution gets lost. Migrate between launches.
- You need it done this week and the funnel has more than a handful of steps. Rushing the checkout is the one mistake with a revenue number attached.
If none of those land, the sequence above is a weekend for a single offer, and most of it happens before anything faces the internet. Start with the alternative overview if you are still deciding, or with docker compose up if you are not.