Inspiration

In October 2026 a seller in Nigeria replied to a thread about selling online: her ads were "doing amazingly well", buyers kept reaching payment and leaving, so she had "just put off all my campaigns". Another seller counted five abandoned payments in one day and asked why anyone changes their mind at the last step. Others chase those buyers by hand, one WhatsApp message at a time. Worldwide, about 70% of online carts are abandoned (Baymard Institute), and the usual fix, a reminder email, turns about 1.5% of sends into sales (Omnisend). Sources: docs/sources.md.

What it does

A merchant adds one script tag to a PayPal checkout. When a shopper opens PayPal and walks away, Hollaback:

  1. Notices the walk-away (popup closed, tab idle, page left) and waits 30 seconds.
  2. Asks PayPal (Orders v2) whether the order is still unpaid, so nobody who already paid is ever nagged.
  3. Messages the shopper on WhatsApp (only if they opted in at checkout) with an AI agent that knows the cart.
  4. Answers the actual objection with a PayPal way to finish: "bit pricey" gets PayPal Pay Later (Pay in 4); still too pricey gets a discount capped at 10% applied to the same PayPal order; "just email me" gets a PayPal invoice; "is this legit?" gets PayPal Purchase Protection and the PayPal-hosted link; "no thanks" ends it for good.
  5. Counts it only when PayPal confirms, through a verified webhook.

The merchant dashboard (AG Grid) shows every abandoned checkout grouped by outcome, live, with recovered revenue, a recovery funnel, CSV export, and every conversation with each tool call and PayPal response.

How we built it

  • PayPal JS SDK v6 on the checkout (PayPal and Pay Later buttons, Pay in 4 messaging, eligibility).
  • Orders v2 to create, check, PATCH (capped discount) and capture orders.
  • PayPal Agent Toolkit inside our guarded tools: the agent creates, sends and reminds PayPal invoices and checks orders through the toolkit.
  • Invoicing v2 and Webhooks with signature verification for every event.
  • Claude Haiku 5.5 through the Vercel AI SDK runs the agent; money-moving actions go only through Hollaback's checked tools, never raw from the model.
  • Twilio WhatsApp (sandbox for the demo), Fastify server on Render, Next.js dashboard with AG Grid, Neon Postgres for persistence.
  • 100 automated tests: detection heuristics, the abandonment timer against a PayPal mock, guardrails, the full recovery loop, toolkit inputs checked against the toolkit's own schemas.

Challenges we ran into

  • Pay Later eligibility is decided by the buyer's country, so it never showed from Lagos; the demo store uses PayPal's sandbox-only testBuyerCountry.
  • The Agent Toolkit keeps one OAuth token for the life of the process; we rebuild it and retry once when PayPal rejects it.
  • On the Twilio WhatsApp sandbox, "STOP" removes your phone from the sandbox before your app ever sees it.

Accomplishments that we're proud of

Eight end-to-end recoveries from a real phone on PayPal sandbox, each confirmed by a verified PayPal webhook: four through the PayPal link (Pay in 4 on camera) and four through PayPal invoices, the latest created through the PayPal Agent Toolkit. Judges can try the whole loop on the hosted demo without WhatsApp: the demo shopper's conversation runs in the dashboard.

What we learned

Recovery works best when it answers the real reason someone stopped, with the payment method they already trust, and when it checks with the payment provider before saying anything.

What's next for Hollaback

A merchant's own WhatsApp Business number, Shopify and WooCommerce installs, and pricing as a share of recovered revenue, so merchants only pay when it works.

AI tools used

  • Claude Haiku 5.5 (Anthropic), through the Vercel AI SDK: the recovery agent that talks to shoppers and chooses which tool to call.
  • PayPal Agent Toolkit: the agent's PayPal actions for invoices, reminders and order checks.
  • Claude Code (Anthropic): used while building and testing the project.

Try it

Built With

Share this project:

Updates

Submission history