- US device IDs in the graph
- 750M+
- Match rate on events
- 90%+
- Identity window, per customer
- Lifetime
- Most brands are live
- <20 min
How it flows
How a Custom stack event reaches Omnisend. Captured on the server, resolved to a person, then sent.
01 Capture
Captured from Custom stack
Not on the list? Send events to Upstack from any stack over webhook or direct post, with the same schema and the same resolution.
See the Custom stack integration →
Custom stackWhat it sends event_namewhatever you choose to call ituser identifiersany of email, phone, external IDvalue / currencyif the event carries revenuecustom propertiesany attribute in your own schema
02 Understand
Resolved to one person before it leaves
Every Custom stack event is matched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer rather than two strangers.
How resolution works →
Resolved before it is sent - IdentityMatched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer.
customer_typeNew or returning, resolved before send.- DeduplicationOne order produces one event, so a single purchase cannot trigger the same flow twice.
- Bot and fraud filteringAutomated traffic never becomes a profile, so list quality and deliverability are not paying for it.
03 Activate
Delivered to Omnisend
Resolved events and profiles into Omnisend for email and SMS automation.
See the Omnisend integration →
OmnisendWhat it receives email / phonecontact keyevent propertiesworkflow triggerscart / order valuerevenue attribution
The catch
Custom schemas tend to carry identifiers in whatever field made sense at the time.
The profile key has to be normalized before it reaches a messaging tool or nothing matches.
Where to check in OmnisendSending you can audit
Omnisend › Audience › the contact's activity
and the automation's own trigger log.
What changes
What changes when Custom stack feeds Omnisend. Two gains on the Omnisend side, two on the Custom stack side.
Omnisend
Server-side delivery
Upstack sends events to Omnisend from its servers only, so ad blockers and browser privacy settings can’t block delivery.
Omnisend
Identity-resolved events
Events sent to Omnisend carry the resolved customer whenever Upstack can identify one, matched against a 750M+ device graph.
Custom stack
Any stack, any framework
Headless, custom checkout, native app or a platform we haven’t listed: if it can make an HTTP request, it can send to Upstack.
Custom stack
The same event schema
Custom events are resolved, filtered and forwarded exactly like a Shopify order.
Setup
Post directly from your backend so nothing depends on the browser.
You need admin access to your Omnisend account, with permission to create API keys.
Upstack dashboardExample
Custom stack Data source Connected
Omnisend Destination Healthy
Read the full Omnisend setup guide → -
01
Connect Custom stack
Not on the list? Send events to Upstack from any stack over webhook or direct post, with the same schema and the same resolution.
-
02
Add the Omnisend destination
Under Destinations, add Omnisend with an API key created under Store settings, API in Omnisend: typically a 64 character secret followed by a hyphen and a short identifier. It is the only field the destination needs.
-
03
Check contacts and events in Omnisend
Upstack marks the destination Healthy, and Audience or Reports in Omnisend shows contacts and events from Upstack Data, typically within a few minutes of a test purchase or page view.
FAQ
Questions about Custom stack and Omnisend.
Which customer parameters are sent to Omnisend?
When Upstack identifies a visitor, it enriches the event with the contact’s email and any other known properties, and can create or update the contact in Omnisend.
How do I check that Custom stack events are reaching Omnisend?
Upstack marks the destination Healthy, and Audience or Reports in Omnisend shows contacts and events from Upstack Data, typically within a few minutes of a test purchase or page view.