Every signup, where you need it
PopSpin sends each new subscriber, with their consent and their discount code, to the tools you already use, as they sign up. Integrations come with every paid plan.
emma@example.com
- Reward
- 15% off
- Code
- WELCOME-A1B2C3
- Email marketing
- Subscribed
- KlaviyoSubscribed to NewsletterEvent · PopSpin Form Submitted
- ZapierZap triggeredCatch Hook · 200 OK
- Google SheetsRow addedSignups sheet
- Your own serverSigned webhook deliveredPOST · 200 · 184 ms
Klaviyo, with consent done right
Connect with a Klaviyo private API key and choose a list. Each signup updates the visitor's Klaviyo profile and records an event you can start flows from, with the discount code in it.
- Profiles get the reward, the code, its expiry and where they signed up
- A PopSpin Form Submitted event to trigger flows, with
{{ event.discount_code }} - Your Klaviyo list's own double opt-in setting is respected, unless you choose to skip it
- Phone numbers are saved on the profile, never subscribed to SMS without SMS consent
Email marketing consent in Klaviyo
The same rules as the Shopify customer PopSpin creates.
- No consent checkbox on the formSubscribed
- Consent checkbox tickedSubscribed
- Optional checkbox left untickedProfile only
- Double opt-in on in PopSpinSubscribed after they confirm
Zapier, Make and Google Sheets
Each one is a webhook endpoint. Paste the address your tool gives you, send a test, and build on it.
Zapier
Send each signup to thousands of apps with a Zap.
- In Zapier, create a Zap and choose Webhooks by Zapier as the trigger.
- Pick the Catch Hook event and copy the webhook URL Zapier shows you.
- Paste it here and save, then click Send test so Zapier receives a sample signup.
- Back in Zapier, test the trigger and add the actions you want.
Make
Start a Make scenario whenever someone signs up.
- In Make, create a scenario and add the Webhooks → Custom webhook module.
- Click Add, name the webhook and copy the address Make gives you.
- Paste it here and save, then click Send test so Make can learn the data structure.
- Add the modules you want after the webhook and turn the scenario on.
Google Sheets
Keep a live spreadsheet of every signup and code.
- Create a sheet with columns such as Email, Name, Reward, Code and Date.
- In Zapier, make a Zap with Webhooks by Zapier → Catch Hook as the trigger and copy its URL.
- Paste it here and save, then click Send test.
- Add a Google Sheets → Create Spreadsheet Row action and match each column to a field.
Your own server
Receive signed JSON requests on your own HTTPS endpoint.
- Create an HTTPS endpoint that accepts POST requests with a JSON body.
- Check the X-PopSpin-Signature header with the endpoint's signing secret.
- Reply with a 2xx status within 10 seconds, and do slow work afterwards.
- Use the event id to skip repeats: failed deliveries are retried.
Signed webhooks for your own systems
Add up to five endpoints. PopSpin posts each event as JSON, signs it so you can check it came from PopSpin, and tries again if your server is down.
- HMAC-SHA256 signature over the timestamp and body
- Retried for about an hour, with the same event id for de-duplication
- A test button and a delivery history for every endpoint
- Only public HTTPS addresses, and redirects are never followed
Events
- subscriber.createdForm submitted. A visitor fills in the form and wins a reward. Includes their contact details, consent and code.
- subscriber.confirmedEmail confirmed. A visitor confirms their email through double opt-in.
Connect PopSpin to your stack
Install free from the Shopify App Store. Paid plans start with a 3-day free trial.