Skip to main content

[ANCHOR] Customer Event-Based Engine (CEBE)

Product Requirements Document · ANCHOR v2.3 · Confluence source of truth: page 51208061912. Repo status: draft keeps the index lint-safe (anchors carry no stories); the live initiative status is ACTIVE.

Theme 1: Make the Intelligence Promise Real | Objective 1A: Strengthen Agentic AI Capabilities | H2 2026 → H1 2027 | Owner: Zhelia Alifa

This is an ANCHOR PRD. It is the master index for the CEBE initiative — it orchestrates all phases beneath it and never describes a single delivery. Per-phase execution detail (constraints, observability, dependencies, stories) lives in the child Phase / Support PRDs linked in the Phase Index.

HEADER BLOCK

FieldValue
PMZhelia Alifa
PRD Version2.3
StatusACTIVE
PRD TypeANCHOR
AnchorYes — this IS the Anchor
Labelsepic:cdp | module:customer-data-platform | feature:cebe
Last Updated2026-06-26

Phase Index

PhaseGoalPRD LinkEpic KeyStatusShipped
Phase 1 — Q3 2026: Core Infra + Customer Data + MarketingStand up the event-driven foundation (standardized reusable event schema, DB schema, adapter + retriever + query layer) with CDP customer-data-change events and Marketing (Broadcast + Ads) events as the first two sources; socialize to all squads by end of Q3.(child PRDs below)TF-3302In Progress
↳ Core Infrastructure & CDP Customer Event (TECH — CDP + BI/Data lead)Build the reusable event schema, Central DB schema, event adapter layer, retriever/metrics layer, and query approach; CDP emits customer-data-change + segment events as the first source.prd-cebe-core-infrastructure-cdp-customer-event.mdTF-3302Draft
↳ Marketing Event Source: Broadcast & Ads (SUPPORT — Broadcast squad)Broadcast squad emits standardized Broadcast and Ads events into CEBE, enabling marketing metrics (reply rate, ads conversion) and attribution.prd-cebe-marketing-event-source-broadcast-ads.mdTF-3302 (Owning Squad: Broadcast)Draft
Phase 2 — Q4 2026: Communication, Service & LoyaltyConnect Communication (conversation, WA Call), Service (Ticket), and Loyalty events; all squads start pushing their own domain events on top of the Q3 foundation.Not started
Phase 3 — Q1 2027: B2B Sales & CommerceConnect B2B Sales (Deals), Commerce, Booking & Appointment events for full LTV coverage.Not started

Note: Phase 1 uses a single shared Epic (TF-3302) covering both the Core Infrastructure (TECH) and Marketing (SUPPORT) deliverables; the Broadcast contribution is filtered via the Owning Squad field.


1. One-liner + Problem

One-liner: A unified, event-driven data layer that gives every Qontak squad one real-time customer profile to build segmentation, marketing automation, AI memory, and health scoring on.

Problem: Today customer data lives in silos — a ticket resolved in the support module never informs the AI Agent handling a follow-up sale, and a payment confirmed in Commerce doesn't update the customer's segmentation in real time. Each module writes its own database, producing inconsistent profiles, missed automation opportunities, and AI that cannot get full context or memory of the customer. Without a shared event-driven foundation, every new intelligence feature in H2 2026 has to re-solve cross-module data access from scratch, multiplying cost and delaying delivery across squads.

Reference data assessment: https://docs.google.com/spreadsheets/d/1KVxg-M_Ur_gW9d2DmSCysRZIgaOsoUGjlvAsiyfzklI/edit?usp=sharing


2. What Happens If We Don't Build This

  • Every intelligence feature stalls. Agentic AI memory, segmentation, marketing automation, and customer health score all depend on CEBE — without it they cannot ship in H2 2026 and slip into 2027.
  • Cross-module data work is re-paid per squad. Each squad rebuilds its own customer-data access, multiplying engineering cost and producing inconsistent profiles.
  • Marketing cannot measure or target. No reusable reply-rate / ads-conversion metrics and no cross-use-case segmentation means marketing automation stays manual and un-attributable.
  • AI stays context-blind. The AI Agent keeps answering without history across modules, capping CSAT and conversion gains the Intelligence theme promises.

3. Target Users + Persona Context

PersonaRoleGoalPainWorkaround
Primary — Business Admin / Marketing OwnerBusiness admin or marketing owner managing customer data and running campaigns in QontakKeep one consistent, up-to-date customer profile and target/segment customers by real behavior across channelsCustomer attribute changes don't propagate; broadcast & ads engagement isn't unified, so segments and attribution are stale or impossibleManual exports, spreadsheets, and per-channel reporting reconciled by hand
Secondary — CS / Service Agent & AI AgentService agent (and the AI Agent acting on their behalf) handling inbound conversations and ticketsSee the customer's full cross-module history before responding, and act on risk/value signalsNo memory across modules — agent/AI cannot tell an at-risk or high-value customer from a new oneSwitching between modules manually to piece together context mid-conversation
Tertiary — Sales & Loyalty OwnerSales owner (B2C/B2B deals, commerce) and loyalty program managerUse unified deal, purchase, and loyalty signals to prioritize retention, upsell, and re-engagementSales, commerce, and loyalty signals are isolated from engagement and service dataSeparate per-module reports that never combine into one customer view

4. Industry Priority

Re-prioritized 2026-06-26 to lead with the customer-data + marketing use-case, which unlocks the broadest reuse across squads first.

PriorityUse-Case / DomainKey Use Cases
PrimaryCustomer Data Change & Marketing1. Real-time propagation of customer data/attribute changes 2. Segmentation based on use-case (cross-module attributes) 3. Marketing engagement & attribution across Broadcast and Ads 4. Marketing automation / drip triggered by behavioral events 5. Reusable marketing metrics (reply rate, ads conversion)
SecondaryConsumer Service1. Chat histories 2. Chat SLA 3. Ticket histories 4. Ticket SLA 5. Notification reminder 6. Booking completed / ticket resolution
ThirdSales (B2C & B2B) & Loyalty1. Deal histories 2. Deal rotten time 3. Deal won 4. Commerce / purchase histories 5. Loyalty tier, points & membership powering personalized offers

5. Architecture — Event-Driven Customer Data Foundation

All modules publish standardized domain events to the Event Adapter Layer (contact-service), which resolves identity via qontak_customer_id and writes to the Central DB. The Retriever / Metrics Layer turns raw events into reusable metrics/summaries; downstream services read through the retriever — they never call module APIs directly.

flowchart LR
subgraph SRC[Event Sources]
direction TB
CDPMOD[CDP - Customer Data / Attributes]
CAMP[Campaign - Broadcast and Ads]
COMM[Communication - Chat, WA Call]
TICK[Ticketing - Support Tickets]
CONV[Conversion - Deals, Commerce, Booking]
LOY[Loyalty - Points, Membership]
end
ADAPTER[Event Adapter Layer - contact-service]
CEBE[(Customer Event Based Engine - Central DB)]
RET[Retriever / Metrics Layer]
subgraph OUT[Downstream Services]
direction TB
SEG[Segmentation Engine]
MA[Marketing Automation]
REP[Report and Command Center]
AI[Agentic AI Memory]
CHS[Customer Health Score]
AUTO[Automated Action]
end
SRC --> ADAPTER
ADAPTER --> CEBE
CEBE --> RET
RET --> OUT

6. Module Event Catalog

Each module emits standardized domain events to the Adapter. Every event carries:

(1) company_sso_id (2) company_id (3) qontak_customer_id (4) actor (5) event_timestamp (6) source_module (7) trigger_from (8) event_name (9) event_description (10) event_attributes

1. Communication Module (Chat & Call)

What it feeds CEBE: Full conversation and call history, agent interactions, channel preference, response behavior.

EventTriggerKey Payload Fields
conversation.startedCustomer initiates an inbound chatchannel, room_id, phone, email, bsuid
call.startedCustomer initiates an inbound callchannel, room_id, phone, email, bsuid
conversation.assignedChat assigned to human agent or botagent_id, assignment_type (human/bot)
call.assignedCall assigned to human agentagent_id, assignment_type (human/bot)
message.receivedCustomer sends a messagemessage_id, message_type, content_preview
conversation.resolvedChat marked resolvedresolved_by, resolution_time_seconds, handled_by (human/bot)
conversation.escalatedBot escalates to humanescalation_reason, bot_session_id
bot.containedBot fully resolved without humanbot_flow_id, containment_flag: true
call.completedCall endedduration_seconds, call_type (inbound/outbound), recording_url
csat.submittedCustomer submits CSATscore, comment, agent_id
nps.submittedCustomer submits NPSscore, comment, agent_id

CEBE Metrics enabled: Total conversations per customer · Reply rate · Total messages sent by customer · Channel · Avg customer response time · Avg call duration · Avg CSAT · Avg NPS · AI containment rate

2. Ticketing Module (Customer Service)

What it feeds CEBE: Service history, issue resolution performance, SLA compliance.

EventTriggerKey Payload Fields
ticket.createdNew ticket openedticket_id, pipeline_id, stage_id, assigned_id, creator_id, {other_fields}, customer_association
ticket.assignedTicket assigned to agentticket_id, agent_id, team_id, assigned_at
ticket.stage_changedTicket moves between stagesticket_id, old_stage, new_stage, changed_by, timestamp
ticket.resolvedTicket marked as resolvedticket_id, resolved_at, resolution_type (first_contact/escalated), agent_id
ticket.sla_breachedSLA timer expires before resolutionticket_id, sla_type (first_response/resolution), breach_duration_seconds

CEBE Metrics enabled per customer: Total tickets created · Resolution rate % · Avg time to resolve · Pipeline stage history · SLA breach count & breach rate · Repeat issue flag

3. Deals (B2B Sales)

What it feeds CEBE: Sales engagement depth, deal value, pipeline stage, purchase intent signals.

EventTriggerKey Payload Fields
deal.createdNew deal openeddeal_id, pipeline_id, stage_id, deal_size, owner_id, {other_fields}, customer_association
deal.stage_changedDeal moved to another stagedeal_id, old_stage, new_stage, days_in_stage, timestamp, changed_by, customer_association
deal.wonDeal closed wondeal_id, deal_size, close_date, {other_fields}, customer_association, product_association
deal.lostDeal closed lostdeal_id, deal_size, lost_date, loss_reason, {other_fields}, customer_association, product_association
deal.rotten_time_breachedRotten timer expires before conversiondeal_id, deal_size, breach_duration_seconds

CEBE Metrics enabled: Total deals created per customer · Total deal size per customer · Won rate · Lost rate · Avg time to conversion · Pipeline stage history · Rotten time breach count & rate

4. Campaign Module (Broadcast & Ads)

What it feeds CEBE: Marketing engagement history, message response behavior, and campaign attribution across both outbound Broadcast and paid Ads channels.

4a. Broadcast events

EventTriggerKey Payload Fields
campaign.sentBroadcast message delivered to customercampaign_id, template_id, channel, campaign_cost, {customer_attributes_related}, timestamp
campaign.repliedCustomer replies to a broadcastcampaign_id, template_id, channel, campaign_cost, sent_at, timestamp, reply_content_preview
campaign.clickedCustomer clicks CTA in broadcastcampaign_id, template_id, channel, cta_type, destination_url, timestamp
campaign.bouncedMessage not deliveredcampaign_id, template_id, channel, bounce_reason
campaign.opted_inCustomer opts in to marketingcampaign_id, template_id, opt_in_channel, timestamp
campaign.opted_outCustomer opts out of marketingcampaign_id, template_id, opt_out_channel, timestamp

4b. Ads events (paid acquisition & retargeting)

EventTriggerKey Payload Fields
ad.impressionAd shown to a known/resolvable customerad_id, campaign_id, ad_platform (meta/google/tiktok), ad_set_id, creative_id, ad_spend, timestamp
ad.clickedCustomer clicks the adad_id, campaign_id, ad_platform, creative_id, destination_url, cost_per_click, timestamp
ad.lead_capturedLead form / CTWA conversation generated from adad_id, campaign_id, ad_platform, lead_form_id, room_id, timestamp
ad.convertedAd-attributed conversion (purchase/deal/booking)ad_id, campaign_id, ad_platform, conversion_type, conversion_value, attribution_window, timestamp
ad.spend_recordedDaily/periodic ad spend synced from ad platformad_id, campaign_id, ad_platform, ad_spend, currency, period, timestamp

CEBE Metrics enabled: Total campaigns received · Delivery rate · Reply rate · Opt-in / opt-out status · Campaign-attributed revenue · Ad impressions & clicks · Ads conversion rate (% ads conversion) · Cost per lead (CPL) · Cost per acquisition (CPA) · Return on ad spend (ROAS)

5. Conversion Module (Commerce & Booking)

What it feeds CEBE: Transaction history, booking behavior, payment signals.

EventTriggerKey Payload Fields
booking.createdCustomer creates a bookingbooking_id, service_type, appointment_datetime, location_id
booking.confirmedBooking confirmed by businessbooking_id, service_type, appointment_datetime, confirmed_at
booking.cancelledBooking cancelledbooking_id, service_type, appointment_datetime, cancelled_by, cancellation_reason
booking.completedService/appointment completedbooking_id, service_type, appointment_datetime, completed_at, rating
add_to_cartCustomer adds catalogue item to cartitems_id, timestamp
order.createdOrder placed (Commerce)order_id, items, total_value, payment_method
order.paidPayment confirmedpayment_type (dp/full), paid_amount, paid_at
order.deliveredOrder delivereddelivery_method, delivered_at
payment.failedPayment attempt failedfailure_reason, attempt_count

CEBE Metrics enabled: Total bookings · Booking completed rate % · Total spend (LTV) · Avg order value · Preferred payment method · Purchase frequency · Paid rate %

6. CDP Module (Customer and Company)

What it feeds CEBE: Master identity resolution — source of truth for who the customer is. First event source connected in Q3 2026 (Phase 1).

EventTriggerKey Payload Fields
customer.createdNew customer added (manual or automated)qontak_customer_id, default_fields[], custom_fields[], created_at, created_by
customer.updatedCustomer fields/attributes updatedqontak_customer_id, change_fields[], updated_at, updated_by
segment.enteredCustomer added to a segmentqontak_customer_id, segment_id, segment_name
segment.exitedCustomer removed from a segmentqontak_customer_id, segment_id, segment_name

CEBE Metrics enabled: Total new customers · New customer growth rate · Customer acquisition by source · Segment per customer

7. Loyalty Module

What it feeds CEBE: Retention signals, member behavior, tier progression.

EventTriggerKey Payload Fields
membership.enrolledCustomer joins loyalty programqontak_customer_id, member_id, program_id, enrolled_at, initial_tier, available_point
membership.unenrolledCustomer unenrolls from programqontak_customer_id, member_id, program_id, unenrolled_at, last_tier, available_point
points.earnedPoints creditedqontak_customer_id, member_id, points_amount, transaction_ref, earned_at, available_point, expired_point_at
points.burnedPoints burned for reward / deductionqontak_customer_id, member_id, points_used, redeemed_at, available_point, expired_point_at
rewards.redeemedReward redeemedqontak_customer_id, member_id, reward_used_id, reward_name, available_point, expired_point_at
tier.upgradedCustomer reaches higher tierqontak_customer_id, member_id, old_tier, new_tier, available_point, expired_point_at
tier.downgradedCustomer drops tierqontak_customer_id, member_id, old_tier, new_tier, available_point, expired_point_at

CEBE Metrics enabled: Total loyalty members · Total available points per member · Enrollment rate · Enrollment by program · New member growth rate · Tier distribution


7. CEBE as Baseline for New Features

Downstream FeatureDependency on CEBE
Customer SegmentationRule engine filters customers by cross-module attributes (e.g. "2+ tickets AND no purchase in 90 days").
Marketing Automation / DripTriggers on behavioral events (e.g. auto re-engage when booking.cancelled or ad.lead_captured fires).
Agentic AI MemoryAI reads full customer history before responding. Without CEBE, AI has no cross-module memory.
Customer Health ScoreScore computed from ticket volume, CSAT trend, deal stage, loyalty tier, last engagement date.
Report & Command CenterManager dashboard shows per-customer timeline, cross-module metrics, AI-generated insights.
Automated ActionRule-based triggers fire when CEBE detects risk signals (e.g. SLA breach → auto-escalate → notify supervisor).

8. Proposed Timeline & Priority

QGoalsDetail ScopeDoDChild PRDDependency
Q3 2026Core Infrastructure, Customer Data, Segment & Marketing — P0 BlockerRFC & assessment, both sides (Engineering & Data).
Standardize a reusable event schema for all squads (push like Mixpanel, keyed on qontak_customer_id via ContactResolver).
Provide the database schema (event-level + customer-level aggregation).
CDP starts providing customer events — see 6. CDP Module.
Marketing use-case — see 4. Campaign Module; connect Broadcast and Ads (not Broadcast only).
Build the event adapter layer (contact-service) — identity resolution + idempotency + PII masking.
Build the retriever layer (metrics/summaries, e.g. % reply rate, % ads conversion).
Provide the query approach for downstream features (segmentation, marketing automation).
Socialize to all squads at end of Q3 so Q4 every squad can push their domain events.
• RFC approved by both Engineering and Data.
• Standardized event schema published and adopted by CDP + Broadcast.
• Central DB schema + event adapter + retriever + query layer live.
• 100% of CDP customer events and Marketing (Broadcast + Ads) events propagated to CEBE in <5s.
• Reusable metrics queryable for segmentation/marketing automation.
• All squads socialized and able to push their domain events in Q4.
Core Infrastructure & CDP Customer Event — TECH · Marketing Event Source: Broadcast & Ads — SUPPORTData · CDP · Chat 2 (Broadcast)
Q4 2026Communication, Consumer Service & Loyalty• Communication (conversation, WA Call) — see 1. Communication Module.
• Consumer Service (Ticket) — see 2. Ticketing Module.
• Loyalty — see 7. Loyalty Module.
• 100% of Communication, Ticket, and Loyalty events propagated to CEBE in <5s.Data · CDP · Chat 1 (Comms) · Voice (WA Call) · CRM (Ticket) · Loyalty
Q1 2027B2B Sales (Deals), Commerce, Booking & Appointment for complete LTV coverage• B2B Sales (Deals) — see 3. Deals (B2B Sales).
• Commerce, Booking & Appointment — see 5. Conversion Module.
• 100% of Deal, Commerce, Booking & Appointment events propagated to CEBE in <5s.
• Per-customer LTV and Customer Health Score live for all active accounts.
Data · CDP · CVT · CRM (Deal) · Innovation (Booking, etc)

Detail Task per Phase

Phase 1 — Q3 2026

TaskOwnerTimeline
RFC & feasibility assessment (Engineering + BI/Data)PM, Eng (CDP), BI/DataJul 2026
Design standardized reusable event schema + qontak_customer_id idempotencyBI/Data, PM, Eng (CDP)Jul 2026
Provide Central DB schema (event + aggregation layer)Eng (CDP), BI/DataJul 2026
Build Event Adapter Layer (contact-service)Eng (CDP)Jul–Aug 2026
Connect CDP customer-data-change + segment eventsEng (CDP)Aug 2026
Connect Marketing events — Broadcast + AdsEng (Broadcast)Aug 2026
Build retriever / metrics layer (reply rate, ads conversion, etc.)Eng (CDP), BI/DataAug 2026
Provide query approach for downstream features (segmentation, MA)Eng (CDP), BI/DataAug–Sep 2026
Internal monitoring & alerting (<5s SLA)Eng (Infra)Aug 2026
Socialize foundation + event-push guide to all squadsPM, CDPEnd of Sep 2026

Phase 2 — Q4 2026

TaskOwnerTimeline
Connect Communication events (conversation, WA Call)Eng (Chat & WA Call)Q4 2026
Connect Ticketing eventsEng (Ticket)Q4 2026
Connect Loyalty eventsEng (Loyalty)Q4 2026
Agentic AI reads CEBE memoryEng (Chatbot)Q4 2026

Phase 3 — Q1 2027

TaskOwnerTimeline
Connect Deal eventsEng (Deal)Q1 2027
Connect Commerce eventsEng (Commerce)Q1 2027
Connect Booking & Appointment eventsEng (Booking)Q1 2027
Build Customer Health Score modelEng (AI/Data)Q1 2027

9. Technical Principles

  • Event-Driven, Not Polling: All modules publish events asynchronously. CEBE never calls module APIs directly.
  • Standardized, reusable event schema: One event contract for all squads — push customer events like Mixpanel, keyed on qontak_customer_id via ContactResolver.
  • contact-service is the authoritative write service: Identity resolution and deduplication happen here before data lands in Central DB.
  • Idempotency via qontak_customer_id: No duplicate events regardless of retry or replay.
  • < 5s propagation SLA: Monitored via internal alerting; any breach triggers on-call notification.
  • Backfill on first integration: When a module first connects, a backfill job loads the last 12 months of historical events.
  • PII-aware: Sensitive fields are masked at the adapter layer based on role-based access policy.

10. Success Metrics (Initiative-level)

CategoryMetricDefinitionBaselineTarget
Adoption & Usage⭐ Module event coverage on CEBE% of target modules emitting standardized events into CEBE0% (no shared layer today)CDP + Marketing (Broadcast+Ads) by end of Q3 2026; Comms/Ticket/Loyalty by end of Q4 2026; full coverage by end of Q1 2027
Quality & AccuracyEvent propagation latencyTime from source event to availability in Central DB (p99)N/A — new< 5 seconds (p99) from end of Phase 1
Quality & AccuracyZero event lossLost events across module streamsN/A0 lost events (idempotency via qontak_customer_id) — ongoing
Efficiency & ImpactReusable metrics & segments availableReply rate, ads conversion, use-case segments queryable from CEBEN/AAvailable for segmentation + marketing automation by end of Q3 2026
Efficiency & ImpactAI Agent uses CEBE memory% of conversations where AI reads CEBE history before responding0%≥ 50% of conversations by end of Q4 2026
Efficiency & ImpactCustomer Health Score liveActive accounts with a computed health score0All active accounts scored by end of Q1 2027

11. Key Decisions + Alternatives Rejected

11a — Decisions Made

DateDecisionRationale
2026-06-26Lead Q3 with the Customer Data + Marketing use-case (was: Consumer Service)Broadest, earliest reuse across squads; unlocks segmentation + marketing automation first
2026-06-26Marketing scope includes Ads, not Broadcast onlyAds attribution (CPL, CPA, ROAS, % ads conversion) is core to the marketing use-case
2026-06-26Q3 delivers a standardized, reusable event schema any squad can push toSquads self-serve event push (like Mixpanel) keyed on qontak_customer_id; avoids per-squad re-implementation
2026-06-26Phasing: Q3 Core+CDP+Marketing → Q4 Comms/Service/Loyalty → Q1'27 B2B Sales/CommerceSequences by reuse value and squad readiness; socialize at end of Q3 so all squads onboard in Q4
2026-06-26Q3 owned jointly by CDP + BI/DataRFC & assessment required on both engineering and data sides; retriever/query layer is data-heavy
2026-06-26Phase 1 uses a single shared Epic (TF-3302) for both TECH + SUPPORTOne delivery slice; Broadcast contribution filtered via Owning Squad rather than a separate Epic

11b — Alternatives Rejected

AlternativeWhy RejectedDate
Each module keeps its own DB; build point-to-point integrationsRe-pays cross-module data work per squad; inconsistent profiles; doesn't scale to AI/segmentation2026-06-26
Polling module APIs on demand instead of event-drivenCannot meet <5s freshness; tight coupling; high load on module APIs2026-06-26
Lead Q3 with Consumer Service (previous priority)Narrower early reuse than customer-data + marketing; delays segmentation/MA foundation2026-06-26
Broadcast-only marketing scopeMisses paid-acquisition attribution; cannot compute ads conversion / ROAS2026-06-26

12. Open Questions

#TypeQuestionOwnerDeadline
1Open QuestionEvent-level (append-only log) vs aggregated tables vs hybrid for the Central DB?BI/Data + Eng (CDP)2026-07-15
2Open QuestionDo we need streaming infra (Kafka / PubSub) to guarantee <5s and zero loss, or is the current pipeline sufficient?Eng (CDP) + Infra2026-07-15
3Open QuestionFinal query approach for downstream consumption (pre-aggregated vs on-the-fly)?BI/Data + Eng (CDP)2026-08-15
4AssumptionAll squads can adopt the standardized event schema in Q4 after end-of-Q3 socializationPM (CDP)2026-09-30
5RiskModule teams slow to emit events → downstream delayed. Mitigation: phase-gate by module; CDP + Marketing first in Q3; socialize + push guide before Q4PM (CDP)2026-09-30
6RiskHigh write volume causes >5s breach. Mitigation: pre-size DB; async queue buffer between adapter and DBEng (Infra)2026-08-31
7RiskPII leakage across team boundaries. Mitigation: PII masking at adapter + team-level permission scopeEng (CDP)2026-08-31
8RiskDuplicate identities / late-arriving events. Mitigation: idempotency + dedup on qontak_customer_id at adapterEng (CDP)2026-08-31

13. Appendix — Data Assessment Request

Retained from the original CEBE assessment brief — input to the Q3 RFC & assessment workstream.

Request TitleData Assessment for CEBE (Customer Event-Based Engine)
Request ObjectiveBuild CEBE as a unified, customer event-driven data layer supporting Customer Insight (aggregated summary per customer) and Conversation AI (profiling, sentiment, behavior). Assess real-time event ingestion + cross-module query feasibility; evaluate a centralized event-driven data model; identify need for new datamarts, streaming pipelines, or storage optimization.
Data Usability PlanA. Customer Insight / Customer 360 — unified profile combining Identity (CDP), Engagement (Chat, Campaign/Ads), Service (Ticket), Sales (Deal, Commerce), Loyalty. B. Conversation AI — real-time + historical behavioral signals for AI decisioning and context-aware responses. C. Downstream — marketing automation triggers, segmentation engine, cross-module reporting.
Key RequirementsA. Data model & storage — event-level vs aggregated vs hybrid; <5s ingestion + analytical queries. B. Ingestion — high-volume streams; <5s, idempotency, 12-month backfill, zero loss. C. Query — aggregated customer query (<1–2s) + granular event/AI query. D. Identity — all events linked via qontak_customer_id; handle duplicates, late events. E. Metrics — engagement/service/sales/loyalty/commerce; precomputed vs on-demand. F. AI-ready layer — structured + semi-structured; feature store need. G. Governance — retention, partitioning, PII access control, storage growth & cost.

PRD CHANGELOG

VersionDateBySectionTypeSummary
2.02026-06-26ClaudeAllMODIFIEDConverted to ANCHOR PRD; updated Industry Priority; re-cut timeline (Q3/Q4/Q1); added Ads to Campaign Module; added retriever/query layer.
2.12026-06-26ClaudePhase Index, S8MODIFIEDLinked the two Phase 1 child PRDs; fixed ToC + anchors.
2.22026-06-26ClaudeS1MODIFIEDTightened one-liner to ≤25 words.
2.32026-06-26Zhelia Alifa / ClaudeS5, S6, S8MODIFIEDLinked Epic TF-3302; reworked S8 into table + per-phase task tables; expanded event envelope to event_name/description/attributes; architecture flow made linear (Central DB → Retriever → Downstream). Committed to documents repo as .md.