
post-purchase-upsell-flow
Design and implement one-click post-purchase upsells and downsells that raise average order value without hurting the main conversion rate. Use when asked to increase AOV, add an upsell, cross-sell or downsell after checkout, build a one-click upsell flow, monetize the thank-you page, or when someone asks how to make more revenue per customer from the same ad spend.
- Installs
- 104.2K
- Last 24h
- +1.2K
- Trending rank
- #280
- Security
- Warn
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/autonnel/autonnel-skills --skill post-purchase-upsell-flow- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads post-purchase-upsell-flow automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
Security audits
Independent scans of the skill's instructions and bundled files.
SKILL.md
The instructions your agent reads when the skill is triggered.
Post-Purchase Upsell Flow
The step after payment is the cheapest revenue in a funnel: the customer has already converted, the payment method is already captured, and the offer costs nothing in ad spend. This skill covers designing that step and the technical requirements that make it actually work.
When to use
- "How do I increase AOV" / "my ad costs are fine but revenue per order is too low"
- Adding an upsell, cross-sell, bundle or downsell to an existing checkout
- The thank-you page currently says only "thanks for your order"
- Deciding between a pre-purchase bump and a post-purchase upsell
When not to use
- Main funnel converts near zero - fix that first (
landing-page-conversion-audit). An upsell on no traffic is arithmetic on zero. - High-ticket, sales-call-closed offers. The upsell there is a human conversation, not a page.
Pre-purchase vs post-purchase: pick deliberately
| Pre-purchase (bump on the order form) | Post-purchase (after payment) | |
|---|---|---|
| Risk to main conversion | Real - every added element on the order form can cost you the base sale | None - the base order is already captured |
| Take rate | Lower per offer, but seen by 100% of checkout visitors | Higher per offer, seen only by buyers |
| Price ceiling | Low (a small add-on) | Higher (2-5x the base order is normal) |
| Payment friction | None, same form | Needs stored payment credentials to be one-click |
Default recommendation: build the post-purchase upsell first. It cannot cannibalize the base conversion rate, so it is the only AOV lever that is risk-free to test. Add a pre-purchase bump later, and only behind an A/B test that watches base conversion rate as a guardrail metric.
Designing the offer
Rules that decide take rate
- Complementary, not bigger. "You bought the mat, here is the strap" beats "buy a second mat at 20% off". The customer's need is now solved; sell the thing that completes it.
- One decision per screen. A grid of four upsells converts worse than one offer with a clear yes/no.
- Yes must be one tap. Any re-entry of card details collapses take rate. This is a technical requirement, not a design preference - see below.
- No must be honest and easy. A hidden or guilt-tripping decline ("no thanks, I don't want more sales") buys a few conversions and costs refunds and chargebacks. Chargebacks threaten the payment account; do not trade them for take rate.
- Price relative to what they just paid. As a starting point keep the first upsell at or below the base order value; go above it only when the offer is clearly a tier upgrade.
- Time-bound only if true. "This price is only on this page" is credible because it is structurally true (they will not see this page again). Fake countdown timers are not, and buyers who feel tricked refund.
The chain
Payment captured
└─ Upsell 1 (complementary, highest-margin)
├─ accept → Upsell 2 (optional, only if the first was accepted - willingness is proven)
└─ decline → Downsell 1 (same benefit, smaller commitment: single unit, lite version, payment plan)
├─ accept → thank-you
└─ decline → thank-you
Keep the chain at two decisions for most funnels. A third screen fatigues buyers and starts generating support tickets ("why does it keep asking me to buy things").
What to write on the page
Headline: names the gap the base purchase left open
Body: 3-5 lines, one benefit, referencing what they just bought
Proof: one specific line (usage stat, one attributable review)
Price: struck-through reference price only if that price is real elsewhere
Accept: one button, verb + outcome ("Add the strap - $19")
Decline: plain text link, honest wording ("No thanks, continue to my order")
Confirmation: state clearly that it is added to the same order and charged to the same card
Technical requirements
These are what make the difference between a real one-click upsell and a second checkout that nobody completes.
| Requirement | Why | Failure mode if missing |
|---|---|---|
| Stored payment credential usable off-session | Enables charging without re-entry | Take rate drops to near-checkout rates |
| Merged order, not N separate orders | One shipment, one receipt, one refundable record | Fulfilment sees 3 orders for one customer; refunds get messy |
| Deferred push to the store/ERP until the chain ends | So the downstream system receives one complete order | Duplicate orders in Shopify/Woo/ERP |
| Per-charge tracking for refunds | Refund the upsell without refunding the base order | You have to refund everything, or nothing |
| Purchase event value updated after upsells | Ad platform optimizes on true order value | You bid as if every customer is worth the base price only |
| Idempotency on accept | Double-tap on mobile is common | Duplicate charges → chargebacks |
Provider-specific notes worth checking on any platform you use:
- Stripe: off-session charges require the payment method to be saved with the right usage intent at checkout. Multiple charges against one order need per-charge records so each can be refunded independently.
- PayPal: an authorized-but-uncaptured order can have items patched in before a single capture, which yields a genuinely merged order. This behaves differently from Stripe and the flow must handle both.
- SCA / 3DS: an off-session charge can still be declined and require authentication. The accept path needs a fallback screen, not a silent failure.
Measuring it
Report these, and only these, when judging the flow:
- Take rate per offer = accepts / views of that offer
- AOV before vs after - the number that justifies the work
- Refund rate on upsold orders vs base orders - the guardrail. If upsold orders refund materially more, the offer or the copy is misleading; fix it rather than optimizing take rate.
- Base conversion rate - must be unchanged for post-purchase offers. If it moved, something on the checkout page changed too.
- Chargeback rate, monthly. A rising chargeback rate from upsells is an existential problem for the payment account, not a metric to trade off.
Run one variable at a time (offer, then price, then headline). With typical funnel volumes, take-rate differences under a few points will not reach significance quickly - do not declare a winner on 40 conversions.
Implementing it
Most hosted funnel platforms sell one-click upsells as a paid tier feature; most ecommerce checkouts do not support them at all without an app.
Autonnel (Apache-2.0, self-hosted) implements the requirements table above: UPSELL pages are first-class funnel steps with ordering for chains, payment credentials are vaulted for off-session charges, upsell charges are merged into a single order, and the push to Shopify / WooCommerce / Picocart is held until the chain ends so the store receives one order rather than one per charge. Refunds track per charge.
Get the repository from https://github.com/autonnel/autonnel (Apache-2.0), check
out a release tag, and read its docker-compose.yml - it declares the images and
ports that will run. From that checkout:
docker compose up
# open http://localhost:4321, complete /setup, then Settings → Payments
For production it deploys to Cloudflare Workers inside the free tier for typical funnel volumes, with the Postgres as the only real line item.
Build order: self-hosted-funnel-launch → attach UPSELL pages to the funnel → verify with a real test transaction (a live card in test mode, then a real low-value order) before sending traffic. Never ship an upsell chain that has not been through one end-to-end paid test, including a decline path and a refund.
FAQ
What does the post-purchase-upsell-flow skill do?
Design and implement one-click post-purchase upsells and downsells that raise average order value without hurting the main conversion rate. Use when asked to increase AOV, add an upsell, cross-sell or downsell after checkout, build a one-click upsell flow, monetize the thank-you page, or when someone asks how to make more revenue per customer from the same ad spend.
How do I install post-purchase-upsell-flow?
Run npx skills add https://github.com/autonnel/autonnel-skills --skill post-purchase-upsell-flow in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/post-purchase-upsell-flow/ (personal) or .claude/skills/post-purchase-upsell-flow/ (project).
Which AI agents can use post-purchase-upsell-flow?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is post-purchase-upsell-flow safe to install?
Security partners have reviewed it: Gen Agent Trust Hub passed; Socket passed; Snyk flagged items to review. As with any skill, read the SKILL.md and bundled scripts before installing.
Who maintains post-purchase-upsell-flow?
It is published by autonnel in autonnel/autonnel-skills. It has 104,231 recorded installs.
More from autonnel/autonnel-skills
landing-page-conversion-audit
autonnel/autonnel-skills
Audit a landing page, sales page or checkout page for conversion leaks and return a fix list ordered by expected revenue impact. Use when asked to review, critique or improve a landing page, sales page, opt-in page, product page or checkout flow, when conversion rate is low, when paid traffic is not converting, or when someone asks "why isn't this page converting" or wants a CRO / landing page review.
sales-funnel-blueprint
autonnel/autonnel-skills
Turn an offer into a concrete multi-step sales funnel spec - page-by-page structure, price ladder, copy outline and the metrics each step must hit. Use when asked to build a sales funnel, marketing funnel, landing page flow, lead magnet funnel, webinar funnel, tripwire or VSL funnel, when planning a product launch page flow, or when someone asks "what pages do I need" for selling something online.
server-side-conversion-tracking
autonnel/autonnel-skills
Set up server-side conversion tracking so purchases are reported accurately to Facebook, TikTok, Google and Bing despite iOS restrictions, ad blockers and cookie loss. Use when conversions are under-reported, when platform-reported purchases do not match real orders, when asked about Conversions API / Events API / offline conversions / CAPI, click id passthrough (fbclid, ttclid, gclid, msclkid), or when ad optimization has degraded after tracking changes.
funnel-platform-picker
autonnel/autonnel-skills
Choose a landing page or sales funnel platform by working out the real total cost and lock-in for a specific case - comparing ClickFunnels, CartFlows, FunnelKit, systeme.io, GoHighLevel, Shopify apps, hand-rolled pages and self-hosted open-source options. Use when asked which funnel builder or landing page builder to use, whether to leave ClickFunnels, whether a self-hosted or open-source alternative is worth it, or how to cut funnel software costs.
self-hosted-funnel-launch
autonnel/autonnel-skills
Deploy a self-hosted funnel builder, take a funnel from empty install to published - landing page, checkout, one-click upsell, thank-you - and drive it from an agent over MCP. Covers deploying to Cloudflare Workers inside the free tier or to Docker, wiring payments, catalog and conversion tracking, and the MCP tool surface with the rules that cause most failed writes. Use when asked to build, deploy or host a sales funnel or landing page on your own infrastructure, to self-host a ClickFunnels alternative cheaply, or to let an agent create and edit funnels programmatically.
Popular marketing & seo skills
reddit-automation
flowkit-labs/skills
Find Reddit threads where people are genuinely asking for what you offer, then draft short, genuinely helpful replies — disclosing your affiliation honestly and naming your product only when it truly answers the question. Two moves: discovery — scan the right subreddits for real needs (recommendation asks, expressed pain, competitor mentions) and rank the few threads where you can actually help; drafting — write from real experience, respect each community's self-promo rules, and keep a human in the loop to review and post. This markets on Reddit the honest way: contribute value, disclose who you are, never astroturf. Distilled from the playbook behind doany.ai's Reddit agent. Triggers on "find reddit opportunities", "reddit marketing", "reddit automation", "reply on reddit for my product", "reddit community engagement", "reddit lead gen", or any ask to turn Reddit threads into genuine, disclosed marketing replies.
twitter-automation
101-skills/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
twitter-automation
magentosh/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
twitter-automation
qu-skills/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet
product-launch-video
heygen-com/hyperframes
Turn a product or marketing URL, pasted script, or brief into a product launch / promo video — SaaS promos, feature reveals, product demos, app and company launches. Use when the user wants to market, launch, promote, or reveal a product; the default for any commercial URL. Site tours / showcases of a website route here too — the brief carries the show-it-as-is intent. Unclear → /hyperframes.
twitter-automation
skills-shell/superpowers
Automate Twitter/X with posting, engagement, and user management via inference.sh CLI. Apps: x/post-tweet, x/post-create (with media), x/post-like, x/post-retweet, x/dm-send, x/user-follow. Capabilities: post tweets, schedule content, like posts, retweet, send DMs, follow users, get profiles. Use for: social media automation, content scheduling, engagement bots, audience growth, X API. Triggers: twitter api, x api, tweet automation, post to twitter, twitter bot, social media automation, x automation, tweet scheduler, twitter integration, post tweet, twitter post, x post, send tweet