Measure
Bring your data together
One stream per customer from your site, your server and your other tools. What is automatic today, how to send data from any tool, and what comes later.
Your customers leave a trail in many tools: your site, your store, your email and text tools, your CRM, your phone. Sporetag puts it in one place. Each customer profile has one stream, in time order, with every item labeled by where it came from.
Customer profiles are on paid plans: Solo, Studio, Agency and Custom, with the site in Attribution mode.
What is automatic today
| From | What shows up |
|---|---|
| Your site (the Sporetag script) | Visits with their source, short link clicks, email and text clicks, custom events, purchases |
| Your server (Events API) | Server events and purchases, with value |
| Stripe | Payments, refunds, and subscriptions started, renewed and canceled |
| Shopify | Orders, refunds and new customers, with the UTMs Shopify kept |
| Meta Conversions API | Each send to Meta and its status |
Stripe and Shopify connect from the site's Integrations tab. They import the last 90 days, then keep up on their own. A sale that also came in from your site or the Events API is counted once.
Send data from any tool
Any tool that can call a webhook can add to the stream today. Send it to the Events API with two extra fields:
kind: what happened. One ofemail_sent,email_opened,email_clicked,sms_sent,sms_clicked,form,call,note,order,refund,subscription_started,subscription_renewedorsubscription_canceled.source: the tool, in lowercase, such asklaviyo,mailchimp,attentive,postscript,hubspotormy_crm.
Say who it is with email, phone, visitor.id or external_ids. Put short details in payload.
{
"name": "October letter",
"kind": "email_opened",
"source": "klaviyo",
"event_id": "klaviyo-open-81723",
"email": "ann@example.com",
"payload": { "campaign": "october-letter" }
}ordercounts like any purchase: it reaches goals, the attribution report and Meta.- Every other kind is added to the customer's stream only. It does not count toward your plan's events or your goals.
refundwith avaluelowers the customer's revenue.event_idkeeps a retried webhook from being added twice.payloadtakes up to 12 short text or number values. Anything that looks like an email or phone number is dropped.
External ids
external_ids ties ids from other tools to the customer, so the next item can use them alone:
"external_ids": { "stripe_customer": "cus_Q8x2", "hubspot_contact": "5012" }Names are lowercase with underscores. Up to 10 per event.
Zapier
- Make a Zap with the trigger from your tool, such as "New Open" in your email tool.
- Add the action Webhooks by Zapier, then POST.
- URL:
https://sporetag.com/api/v1/events. Payload type:json. - Data:
name,kind,source,emailandevent_id, mapped from the trigger. - Headers:
AuthorizationwithBearerand your site's secret key.
Make
- Add the HTTP module, Make a request.
- URL
https://sporetag.com/api/v1/events, methodPOST. - Header
Authorization: Bearer st_sk_.... Body type Raw, content type JSON. - Write the JSON body as in the example above, with values from the earlier modules.
Keep the secret key in the tool's own settings. Never put it in a page.
Native connectors
These connect without a webhook (when shipped): Klaviyo, Mailchimp, Attentive and Postscript, then ad spend from Meta and Google Ads, then CRMs such as HubSpot and GoHighLevel, call tracking and form tools. Until then, the Events API above covers any of them that can send a webhook.
Something missing or wrong? Email hello@sporetag.com.