Destinations
Connectors
What each destination needs and how events map
| Destination | Credentials | Endpoint used | Mapping |
|---|---|---|---|
| Mixpanel | project token, project API secret, region (us or eu) | /import | event = name, distinct_id = your user id, $insert_id = event uuid, properties as sent; identify becomes $identify with $-prefixed traits |
| Amplitude | API key, region | /2/httpapi | user_id, event_type, event_properties, insert_id; identify becomes $identify with user_properties |
| CleverTap | account id, passcode, region (us1, eu1, in1, sg1, aps3, mec1) | /1/upload | events as evtName / evtData keyed by identity; identify becomes a profile push (Name, Email) |
| Google Analytics 4 | measurement id, Measurement Protocol API secret | /mp/collect | one request per user, up to 25 events; names normalised to GA4 rules; page_view keeps page_location; identify is skipped |
| Braze | REST endpoint, REST API key | /users/track | events keyed by external_id; identify becomes attributes |
| Slack | incoming webhook URL | the webhook | one line per event with up to three properties; use filters to pick what reaches the channel |
| Webhook | URL, optional signing secret | your endpoint | the event spec |
All connectors batch (Mixpanel and Amplitude up to 2,000 events per request, CleverTap 1,000, Braze 75, GA4 25 per user, webhooks 100) and use the event uuid as the idempotency key where the tool supports one, so a retry never double-counts.
Filters
Every destination can restrict what it receives:
- Event types:
track,page_view,identify. - Only these events / Never these events: exact event names.
- Property predicates (API):
eq,neq,exists,missing,contains,prefixon a property key.
Filtered events are not deliveries and are not logged.