Abandoned Cart Recovery
Bring back shoppers who left items behind, with a link that restores what they had.
What it adds
A short reminder sequence triggered by an inactive cart with a captured email, carrying a link that rebuilds the cart.
What your agent is told to do
5
What your agent is told to do
5-
1
Define abandonment as a cart with contents, a known email address, and no activity for a set period. Schedule the first reminder from the last activity timestamp, not from when the cart was created.
-
2
Keep the sequence short and stop it at the first sign of return. Two messages is usually the whole feature; the third mostly generates unsubscribes.
-
3
Give each reminder a signed, single-cart, expiring link that reconstructs the cart from the stored line items and drops the shopper onto the cart page, not the homepage.
-
4
Send through the app's existing transactional email path and honour the Email Preference Center. A recovery reminder is marketing, so it belongs to the marketing preference and the existing unsubscribe, not to a new one.
-
5
Do not send to an address the shopper merely typed into a checkout field and abandoned without a consent basis. Capture consent explicitly and record where and when it was given, because an unconsented reminder is a legal problem, not a growth tactic.
Edge cases it handles
8
Edge cases it handles
8- The sequence must stop the moment the order is placed by any route, including a different device, a phone order, or a second cart. Check order state at send time as well as at schedule time, because a reminder queued an hour ago may already be wrong.
- An address with no captured consent basis must never be emailed. Store the consent record alongside the address, and treat a missing record as a refusal rather than a default yes.
- Restore links must expire and must refuse to load if the cart has since been claimed by a different account. A forwarded link that hands over someone else's cart exposes what they were buying and where they were shipping it.
- A shopper who abandons carts every week is browsing, not hesitating. Suppress the sequence for repeat abandoners and enforce a frequency cap so nobody receives more than one recovery message in a defined window.
- By the time the link is opened, items may be unavailable or repriced. Rebuild what is still purchasable, show clearly what changed or dropped out, and never restore a cart at the old price.
- A cart abandoned at the payment step and one abandoned after adding a single item are different situations, and sending the same message to both wastes the more valuable one.
- Every message needs a working unsubscribe that suppresses future recovery sends immediately, and unsubscribing must not also stop order confirmations.
- Sends must be idempotent. A retried background job must not produce a second copy of the same reminder.
Definition of done
9
Definition of done
9- Reminders send only to addresses with a recorded consent basis.
- The sequence stops immediately once an order is placed by any route, checked at send time.
- Restore links are signed, expiring, and refused when the cart has changed owner.
- A restored cart reflects current prices and availability and names what changed.
- A frequency cap and repeat-abandoner suppression are enforced.
- Messages go through the existing email path and honour the existing preference center and unsubscribe.
- Retried jobs do not produce duplicate sends.
- The feature matches the existing design system.
- No existing functionality is broken.
Related features
Quote Calculator
Quote Calculator
Let a visitor answer a few questions and get an honest price estimate on the spot.
What it does
A guided question flow that produces a priced estimate from server-held rules, with a saved copy for follow-up.
How it works
- 1 Build the question flow on the app's existing Multi-Step Form and Conditional Form Fields rather than a new one-off wizard. Showing and hiding questions based on earlier answers is exactly what conditional fields already do.
- 2 Keep every rate, multiplier, minimum, and discount on the server. The browser sends answers and receives a priced breakdown; it never holds the price list and never does the arithmetic that produces the total.
- 3 Show the estimate as itemised lines with a total, not a single number. A visitor who can see which answer added which cost will trust the figure and will adjust an answer instead of leaving.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/quote-calculator
Link Shortener
Link Shortener
Turn long URLs into short branded links and see how many people actually clicked.
What it does
A short-link service with custom or generated slugs, a redirect endpoint, and per-link click counts.
How it works
- 1 The app already has Shareable Deep Links and Signed Share Links. Extend that machinery with a short-slug alias rather than standing up a second, parallel link table that will drift out of sync with it.
- 2 Let a user accept a generated slug or type their own. Validate a custom slug on the server against reserved application routes, existing slugs, and profanity, and say which rule failed rather than silently generating a different one.
- 3 Record a click on the redirect itself: timestamp, referrer, coarse device type, and coarse location. Feed those into the app's existing Event Tracking so the numbers appear beside the rest of the analytics instead of in an isolated counter.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/link-shortener
Social Proof Notifications
Social Proof Notifications
Show visitors that other people are genuinely signing up and buying, without inventing it.
What it does
A small recurring toast on public pages announcing recent, real signup or purchase activity.
How it works
- 1 Draw every message from real records the app already stores. Never seed the queue with sample or placeholder activity, and never fabricate a purchase that did not happen.
- 2 Render the toast through the app's existing Toast Notifications region rather than adding a second floating layer, so stacking, dismissal, and screen reader announcement already behave correctly.
- 3 Reduce each event to the least identifying form that still reads as real: a first name or initial, a region no finer than country or state, and a relative time.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/social-proof-notifications
How it works
-
1
Copy the link
Grab the Markdown instruction URL for this feature.
-
2
Give it to your AI
Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.
-
3
It inspects, then implements
Your agent reads your existing app first, then adds the feature to fit it.
Works with your stack
These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.
Need it tighter than that? Customize the feature and tell it exactly what you're running.