One action, and it tells the rest of your stack what happened in Personyze. When a visitor matches an audience, is
shown personalized content, or does anything else worth recording, Send Event to Analytics reports it
— to every tool you tick, from one event name.
Two versions of the action
There are two, and which destinations you can tick depends on which one you are in. Both are added on a
campaign’s Content step.
| Send Event to Analytics | Send Event to Analytics (Automation) | |
|---|---|---|
| Where it runs | In the visitor’s browser, on your page | On Personyze’s servers |
| Campaign type | An on-site campaign | An automation (offline) campaign |
| Needs | That tool’s own script already on the page | A key, pasted on the action |
| Works when the visitor is not on your site | No | Yes |
API. They work without the visitor being on your site and without that tool’s script on the page, and
they are configured with a key on the action itself. If you are looking at the on-page action and cannot find one of
those checkboxes, that is why — there is no browser form of the same call.
The event name, and the properties
You type one event name and, optionally, any number of properties. Property values
can draw on the person’s Personyze profile — industry, lifecycle stage, any custom field — and on
live campaign metrics, so the event arrives already carrying the context the other tool would otherwise lack.
The same name and properties go to every destination you tick. Two destinations treat the name as something other
than an event name, and both are called out below.
The destinations
On the page and from the server
| Destination | What it needs | How it arrives |
|---|---|---|
| Segment | On-page: analytics.js. Automation: a write key. |
An analytics.track() event, keyed on the visitor’s email. |
| Google Analytics 4 | On-page: the GA4 tag. Automation: a measurement ID and an API secret. | A gtag('event', …), keyed on the Personyze visitor id. |
| Tealium | On-page: utag.js — the same script the Tealium audience integration reads. Automation: account and profile. |
A utag.link() event. |
| Klaviyo | On-page: klaviyo.js. Automation: the Klaviyo connection, or a private key. |
An event on the profile matching the email. |
| Google Tag Manager data layer (on-page only) | Nothing. | Pushed onto the dataLayer array, so any GTM tag can trigger on it. There is no server-side data layer, so this one is absent from the Automation version. |
Automation only
| Destination | What it needs | Where to find it |
|---|---|---|
| ActiveCampaign | The account connection (or a URL and token pasted on the action) | Settings → Integrations → ActiveCampaign |
| Amplitude | Project API key, plus an EU project checkbox | Amplitude → Settings → Projects → your project → API Key |
| Mixpanel | Project token, plus a region box | Mixpanel → Settings → Project Settings → Project Token |
| Brevo | API key (v3), plus an optional list ID | Brevo → the account menu → SMTP & API → API Keys |
| Mailchimp | API key and an Audience ID | Key: Account → Extras → API keys. Audience ID: Audience → Settings → Audience name and defaults |
Amplitude and Mixpanel
Both have browser SDKs, so it is fair to wonder why they are Automation only. Sending from our servers means the
event arrives whether or not the Amplitude or Mixpanel script loaded on the page — which is the
difference between a destination that works and one that works on the pages where a script happened to load.
key sent to the US endpoint is accepted, and the data is dropped. There is no error, anywhere. Amplitude has an
EU project checkbox; Mixpanel has a region box — leave it blank for the US, or type
eu or in. If events are not arriving, this is the first thing to check.Brevo
Brevo is a contact upsert rather than an event. Personyze matches on email: a contact who already
exists is updated, not duplicated. Give a list ID as well and the contact is added to that list, which
is what most Brevo automations trigger on.
First and last name are mapped onto FNAME and LNAME, which every Brevo account has.
Brevo attributes are created in Brevo, not by us — an attribute that does not exist there is rejected, so
anything beyond those two has to be set up on their side first.
Mailchimp
Also an upsert, by email, into the audience you name.
- The API key must end in its data centre — like
…-us6. That suffix is how
Mailchimp says which server your account lives on. Personyze refuses a key without it rather than sending your data
nowhere. - An existing member’s subscribe status is never changed. Somebody who unsubscribed stays
unsubscribed. A status is only set when Personyze creates the member.
member Personyze adds. For a member who already exists, their details and audience membership are updated but the tag
is not added. If your automation has to fire for existing members too, trigger it on the audience rather than
on the tag.
What each destination identifies a person by
Worth knowing, because it decides who the event can be sent for at all:
- Email — Segment, Tealium, Klaviyo, Brevo, Mailchimp, ActiveCampaign. A matched visitor with
no email address on their Personyze profile cannot be sent to these. - The Personyze visitor id — Google Analytics 4, Amplitude, Mixpanel. These work for anonymous
visitors too.
Troubleshooting
Almost every one of these answers with a success code when it is wrong, which is exactly what makes them worth
writing down.
| Symptom | Almost always |
|---|---|
| Amplitude or Mixpanel shows nothing, and there is no error anywhere | The project is in the EU (or India) and the region control is not set. |
| Mailchimp rejects the key | It was pasted without its -us6 style data-centre suffix. |
| A Mailchimp automation does not fire for people you know are in the audience | They were already members, so the tag was not added. Trigger on the audience instead. |
| “the recipient has no email” in the campaign log | The matched visitor has no email on their Personyze profile, so there is nothing to identify them by in Brevo, Mailchimp or ActiveCampaign. |
| “the recipient has no identifier” | The same thing for Amplitude, Mixpanel or GA4, which need the visitor id. |
| Brevo says the contact already exists | It should not — Personyze always upserts. If you see this, tell support. |
| The checkbox you want is not in the list | You are on the on-page action and the destination is Automation only. Add the action to an automation campaign instead. |
Related
- ActiveCampaign integration — the one destination configured under Settings rather than on the action.
- Klaviyo integration — and the separate Add to Klaviyo List action.
- Google Analytics integration — reading Personyze campaigns in GA.
- Segment integration
- Analytics & reporting