Playbook · Mail
Pipe product signups into a Loopi list from your own backend.
You shipped a product. Every new signup should land somewhere that can email them — a feedback request a week later, a heads-up whenever you ship something. One fetch call in your signup handler wires every user into a Loopi list; your AI agent writes and schedules the emails. No mail platform to learn, no dashboard to babysit.
https://loopi.social/playbooks/webhook-signups — into Claude Code with Loopi connected and say "Read this Loopi playbook and set up the list, feedback sequence, and the signup snippet for me." The agent builds the Loopi side; you drop the one fetch call into your handler.What it does for you
One integration, three payoffs — all driven from a single list every signup flows into:
- Every new user is added to your list automatically, from your own backend.
- A feedback email goes out 7 days after signup — written and scheduled by your agent, no cron to run.
- Whenever you ship a feature, one prompt broadcasts it to everyone who signed up.
User signs up on your site
Your existing signup flow
Auth: API key
Your backend → Loopi
POST /events · 1 fetch call
Subscriber on your list
Stored in Loopi
Automatic
Sequence fires at +7 days
Auto feedback email
You trigger
Broadcasts whenever you ship
Feature announcements to the whole list
What the API key can and can't do
/events webhook it exposes exactly two operations: mail.subscribe and mail.unsubscribe. That is the entire webhook surface. Drafting the feedback email, writing broadcasts, scheduling them, editing the sequence, importing your existing users — all of that happens by connecting Loopi to your AI agent over MCP and asking in plain English. The first-list-and-welcome playbook walks through the MCP setup if you haven't done that yet.Step 1 — Create the list and the 7-day feedback sequence
Open your agent (Claude Desktop, Claude Code — anything with Loopi MCP connected) and paste this. Fill in <YOUR PRODUCT>. The agent creates the list, drafts the feedback email, previews it to your inbox, and activates the sequence — all in one go.
The agent returns a listId like mlst_.... Copy it — you'll paste it into your signup handler in step 3.
Step 2 — Create your profile API key
Go to /app/api-keys (the API & MCP tab) and create a key. The full key is shown exactly once, at creation — copy it right then. Loopi stores only a hash and can't show it to you again, so if you lose it you mint a new one. You pass the target list's ID in each request body (the listId field), so one key works across all your lists.
LOOPI_API_KEY. Never expose it in client code, and never commit it to a public repo.Step 3 — Add one fetch call to your signup handler
Right after you save the new user to your database (or create their Stripe customer), add this. Swap mlst_REPLACE for the listId from step 1. The tag is a free-text label — you'll use it later to segment broadcasts (e.g. "everyone tagged product_signup who joined in the last 30 days").
Node — Next.js / Express / anywhere
Python — Flask / FastAPI / Django
curl — for poking it manually
Response shape
Three possible statuses. All three are non-failure — you don't need to surface any of them to your user unless you want to.
"ok"— new subscriber on the list. The 7-day feedback timer starts now."already_subscribed"— they're already on the list (re-signup, multi-session). No duplicate enrollment."suppressed"— they previously unsubscribed or hard-bounced. Loopi will not re-add them. Surface this to the user if your UX cares.
Once this ships, the feedback loop is live. Sign yourself up with a throwaway email to confirm — you should appear on the list within seconds, and the feedback email lands exactly a week later.
Bonus — broadcast a feature announcement
Same list, different mechanic: a broadcast is a one-off email to everyone on the list, fired the moment you ship something worth telling them about. No code change needed — just ask your agent.
The agent drafts, previews to your inbox, and waits for your green light before scheduling. Two minutes of writing per shipped feature, and the whole signup base hears about it.
Optional — mirror in-app "stop emails" into Loopi
If your product has an in-app preference toggle (or a "delete my account" button), use the same endpoint with action: "unsubscribe" so the user doesn't have to find Loopi's unsubscribe link.
If you leak the key
Revoke the leaked key on /app/api-keys and create a new one — you'll see the new key once, at creation. Update your LOOPI_API_KEY env var with it and redeploy. The revoked key stops working immediately.
Haven't connected Loopi MCP to your agent yet? Start there →
Wire your signups into a feedback loop tonight.
One prompt creates the list and the sequence. One fetch call in your signup handler ships the rest. Every new user becomes a feedback data point in 7 days and a broadcast recipient forever.
Go to the dashboard →