This is a smash story about bugs that never reached a customer, because the thing that wrote them also read them back to me.
I run a small e-commerce store. Its abandoned-cart recovery emails were quietly leaking revenue, so I rebuilt the flow. But I never opened the dashboard. I pointed an AI coding agent at the email platform's REST API and asked it to get the sequence production-ready. Reading the flow, editing the emails, inserting steps, all of it was API calls.
Then it read the generated emails back, and three bugs fell out. None dramatic. All the quiet kind that kill conversion or land you in legal trouble.
Bug 1: the button to nowhere.
The "Complete your order" button linked to a generic /cart page, not the customer's actual saved checkout. The trigger event carried the real checkout URL; the template ignored it. Every recovery email would have sent buyers to an empty cart. Fix: point the button at the event's real checkout URL, with /cart only as a fallback:
href="{{ event.abandonedCheckoutUrl | default: '/cart' }}"
Bug 2: one product shown to everyone.
The email hardcoded a single product, its name, price, and photo. Every abandoner would have seen that same item no matter what they actually left in their cart. That is worse than showing nothing: it is confidently wrong. Here is the human call in the loop: the agent surfaced it, I decided the fix. Generic-but-accurate beats specific-but-wrong, so I cut the hardcoded product rather than guess.
Bug 3: the silent compliance bug.
When the agent inserted the follow-up emails as raw HTML, the platform's branded footer, and with it the unsubscribe link, silently did not attach. An email with no unsubscribe is not just ugly, it is a GDPR and CAN-SPAM problem. Fix: re-send the emails as native blocks so the compliant footer attaches, then verify the unsubscribe actually renders.
The lesson.
I would have skimmed past all three in a nice-looking template. The difference was that the agent read every line back out loud. That is the real defense layer: not that AI writes the thing, but that it shows its work, so the expensive mistakes surface before a user ever hits them. Assume you will slip at 3am, and build the layer that catches it.
The flow is live now. It has not recovered a cart yet, and I am not going to pretend otherwise: the store is new and low-traffic, so nothing real has abandoned through it since cutover. The bugs are the story here, not the revenue. I wrote the whole thing up, rough edges and all, here: https://devaland.com/blog/sequenzy-review-agent-first-email
Disclosure: the email platform in this story is one I reviewed independently. I was given a free account; the write-up was not paid for or approved by them.
Top comments (0)