Event-centric vs contact-centric automation: behavior streams vs person records

Event-centric vs contact-centric automation: architecture table, X→Y¬Z/48h sequence, Iran tag-soup vignette, Leadara mapping, FAQ.

Amir Hosseini

Runs email, SMS, and push campaigns for acquisition, retention, and reactivation.

September 18, 2026 · 7 min read

Also available in فارسی

اتومیشن event-centric در برابر contact-centric: استریم رفتار در برابر رکورد شخص

What is the difference between event-centric and contact-centric automation?

Contact-centric tools treat events as fields or flags on a person and excel at “entered segment A.” Event-centric tools treat events as first-class objects you can trigger, filter, and sequence — for example did X then Y but not Z within 48 hours.

One-liner for programmers: contact-centric = person record with sticky notes; event-centric = behavior stream you can query and chain. Leadara’s model is built around events feeding segments and journeys.

WooCommerce- and Digikala-style shops already emit view, add_to_cart, and purchase events. Growth teams that only sync city and tags into a CRM miss the stream those events already provide.

For journey vs realtime framing, see Journey vs realtime event campaign.

How does each architecture work?

Contact-centric automation

The unit of truth is the person. An event often becomes last_cart_at, has_purchased, or a tag. Triggers love “entered segment” and attribute thresholds. Strength: simple CRM-shaped nurture. Weakness: sequences like “viewed PDP → added to cart → no purchase in 48h” become brittle attribute gymnastics.

Event-centric automation

The unit of truth includes the event object (name, timestamp, properties) alongside the profile. Triggers fire on event arrival; filters inspect properties; sequences wait for follow-up events or their absence. Strength: timing and behavior fidelity. Weakness: noisy catalogs if every click becomes a message.

MA baseline: What is marketing automation. Journey vs campaign: Marketing journey vs campaign.

Architecture comparison table

DimensionContact-centricEvent-centric
Primary objectPerson / contactEvent (+ person)
Typical triggerEntered segment, field changeEvent name + property filters
Sequence “X then Y ¬Z /48h”Hard / approximateNative
Best forLifecycle stages, CRM nurtureCart, onboarding steps, product signals
Failure modeStale flags, tag soupOver-triggering low-value events
Iran shop fitWhen only CRM fields existWhen site/app already emits events

Sequence example programmers recognize

Goal: remind only if someone added to cart and did not purchase within 48 hours after a PDP view in the same session window.

Event-centric sketch:

  1. Trigger on product_viewed (optional) or directly on cart_updated.
  2. Wait 2 hours; if order_completed for same cart → exit (goal).
  3. Send email with cart properties.
  4. Wait 22 hours; if still no order_completed and SMS consented → SMS.
  5. Guard: max 2 promo touches / 7 days; suppress if entered VIP win-back elsewhere.

Contact-centric approximation: set cart_flag=true, clear on purchase, segment on flag + time. It works until two carts, partial purchases, or multi-device identity make flags lie.

Iran vignette: tag soup vs event stream

“Kaveh” syncs Shopify-like tags into an eCRM: vip, abandoned, newsletter. Every Friday the abandoned tag gets a blast. Customers who bought via card-to-card DM still carry abandoned for days. Event-centric fix: journey on cart_updated with exit on order_completed (including manual order events from ops). Tags become labels for analysis, not the only trigger.

Diagnosis

SmellLikely cause
Bought yesterday, still in abandon blastFlag not cleared / no purchase event exit
Cannot say “viewed then cart then silence”Events collapsed to attributes
Eng tickets for every new pathNo marketer-owned journey on events

When contact-centric is enough

  • B2B nurture with slow stages and sales ownership
  • No reliable event pipeline yet (instrument first)
  • Simple entered-segment welcome with one email

Do not force event theater if the only signal is “filled form last month.”

Checklist: designing from streams

  1. List events worth messaging (cart, purchase, signup, key activation).
  2. For each journey, write the sequence in X → wait → Y ¬ Z form.
  3. Define the goal event that exits the path.
  4. Add frequency and consent guards.
  5. Keep CRM attributes for WHO filters — do not replace the stream with tags alone.
  6. Measure time-to-convert after the triggering event.

Leadara mapping: events, segments, journeys, email/SMS

  1. Events — first-class inputs (cart_updated, order_completed, signup).
  2. Segments — contact-centric WHO filters when useful (active 90d, consent).
  3. Journeys — event-centric paths with waits, branches, goals.
  4. Email/SMS — actions on the path with channel consent.
  5. Hybrid — segment entry can start a journey; events should still drive exits.

Common mistakes

  • Collapsing every event into a boolean tag
  • Triggering on every page_view
  • No purchase exit on cart paths
  • Engineering-only ownership of sequences marketers should edit
  • Judging success by send volume instead of post-event conversion

FAQ

What is event-centric vs contact-centric marketing automation?

Contact-centric centers the person record and attribute/segment triggers; event-centric centers behavior events you can filter and sequence.

Can you trigger on “did X then Y but not Z in 48 hours”?

That is the event-centric sweet spot; contact-centric tools approximate it with fragile flags.

Are segments obsolete in event-centric stacks?

No. Segments remain excellent WHO guards; events carry timing and WHAT properties.

When should you not fire on every user action?

When the action is low intent, ultra-high volume, or lacks a clear goal/exit — thresholds matter.

Does Leadara invent a separate event database product?

You work with events, segments, journeys, and channels — map only those capabilities.

How do Iranian shops get events?

From site/app pixels, checkout webhooks, and ops-entered order events when payment is offline.

What metric proves event-centric value?

Time-to-convert after trigger, path conversion, RPR vs the old tag blast — not opens alone.

Bottom line and next step

Contact-centric = person flags; event-centric = behavior streams you can sequence. This week, rewrite one abandon path as cart_updated → wait → message → exit on order_completed and retire the sticky abandoned tag as a sole trigger.

Event catalog hygiene for small teams

KeepDrop or downsample
signup, cart_updated, order_completed, key activationraw mousemove, every listing impression
properties needed for WHAT (SKU, value)unused PII in every payload
clear owner for event namesthree synonyms for purchase

Hold a 30-minute monthly catalog review with eng + growth. Renaming events without versioning breaks journeys — treat names like API contracts.

30-day migration from tags to events

Week 1: list every trigger tag (abandoned, vip, cold). For each, ask which event should replace it.
Week 2: wire cart_updated and order_completed into a cart journey; remove abandoned as a trigger but keep it for reporting.
Week 3: build an onboarding path on “activation step not finished” instead of “day 3 after signup.”
Week 4: holdout and compare time-to-convert; archive dead tags.

If the backend has no events, spend the same 30 days instrumenting — buying a logo without a stream only makes contact-centric more expensive.

Decision table: build a field or keep an event?

NeedField/segmentEvent
City, language, consentYesNot as a substitute
“Has a cart now”Temporary flag only if no eventsPrefer event + exit
“X then Y within 48h”Fragile approximationEvent
Monthly RFM reportSegmentPurchase events underneath

Onboarding pattern: calendar day vs product step

Many teams write: day-1 welcome, day-3 education, day-7 discount. That is still contact-centric with calendar offsets. Event-centric version:

StepTrigger
Welcomesignup
Key-feature educationactivation_step_skipped or “48h without profile complete”
Offer helpsupport_intent or silence after an error
Exitactivation_completed or purchase

The same day-3 copy is noise if it arrives after activation. Product signals shorten or lengthen the path.

Acceptance tests for an event-centric path

  1. Purchase mid-path → no further touches.
  2. Two carts in a row → one active path, not two parallel blasts.
  3. No SMS consent → SMS branch skips, does not error.
  4. Duplicate event within 5 minutes → dedupe, no spam.
  5. 10–20% holdout vs the old tag blast.

If these five tests fail, you have not changed architecture — only prettier UI.

Keep reading