DocsMeasure
Bring your data together
One stream per customer from your site, your server and your other tools. What is automatic, what goes back to your tools, and how to send from any tool.
On this page
Your customers leave a trail in many tools: your site, your store, your email and text tools, your CRM, your phone. Datacenter 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 90-day tracking.
What is automatic today
| From | What shows up |
|---|---|
| Your site (the Datacenter 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, changed and canceled |
| Shopify | Orders, refunds and new customers, with the UTMs Shopify kept |
| Klaviyo | Email and text sends, opens, clicks and unsubscribes |
| Mailchimp | Campaign sends, opens, clicks and unsubscribes |
| Attentive | Text and email sends, opens, clicks and unsubscribes, by webhook from the day you turn it on |
| Meta Conversions API | Each send to Meta and its status |
| Meta Ads | Daily spend by campaign, ad set and ad, with Meta's own purchase counts |
| Spend files | Daily spend from Google Ads, TikTok, Microsoft, LinkedIn or any platform |
All connectors connect from the site's Integrations page (under Settings). Stripe, Shopify, Klaviyo and Mailchimp 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, and shows once on the customer's timeline with both sources.
What goes back out
Klaviyo, Mailchimp and Attentive also get data back from Datacenter, for people they already have: each customer's first and last source, lifetime value, orders and best send hour, and the segments you pick. Your tool can then send to the right people at the right hour.
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,email_unsubscribed,sms_sent,sms_clicked,sms_unsubscribed,form,call,note,order,refund,subscription_started,subscription_renewed,subscription_changedorsubscription_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://datacenter.so/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://datacenter.so/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
Live now: Stripe, Shopify, Klaviyo, Mailchimp, Attentive and Meta Ads spend. Spend from any other ad platform comes in from a file.
Ad spend joins your sales on the Attribution tab, not the customer stream: it belongs to campaigns, not people.
Postscript limits its API to partners, so it has no connector yet (when shipped). What works today.
Next (when shipped): Google Ads spend in one click, 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@datacenter.so.