Questions — Data Model & Integrations
The source docs describe behavior and signals but leave the data model and integration contracts open. These need decisions before the analytics roll-up (Phase 3–4) is buildable.
HubSpot
- Pull contract (P1): which HubSpot objects/properties map to an Engagement (topic, date, school, strategist)? P1 marks the pull as “may be a future capability” → what’s the v1 manual fallback (S2: PM manually inserts engagement details)?
- Push contract (business loop): what object + properties carry the renewal/expansion signal back? Is at-risk a deal property, a task, a note?
- Source of truth: if engagement data lives in both HubSpot and the platform, which wins on conflict? Recommendation: HubSpot owns commercial fields; platform owns delivery + outcome fields.
- See business loop.
Identity & associations
- IS ↔︎ assignment ↔︎ video: auto-association [A2] must re-resolve when assignments change. What’s the assignment model — IS↔︎School, IS↔︎Workshop, or both?
- Participant ↔︎ School ↔︎ Cohort: is a participant tied to a school, to a cohort, or to an engagement instance? Affects how Learner Profiles [F1] aggregate into the cohort summary [F2].
Application events (the metric backbone)
- Event schema: an application event needs at minimum: participant, engagement, strategy, timestamp, evidence_type (artifact/observation/self-report), outcome (success/attempted-failed).
- Mastery curve: “applications-to-mastery” implies a per-(participant, strategy) sequence — how is “mastery” marked (self, IS, threshold of repeats)?
- See time-to-apply metrics and data model ideas.
Context as structured analytics signals (C2)
- Context fields are stored as structured signals, not free text, so outcomes filter by readiness / change load / priority. Decision: fixed enums (given: readiness 1–5, the tag list, the priority list) vs. extensible “other” handling. How is free-text “other” kept filterable?
Content & microlearning
- Visibility state machine: the four states (draft / pre / day-of / post-released) + transition log — one model for all asset types? See content-visibility-states.
- Microlearning taxonomy: tags that let the intervention layer match item → gap (see content-creator-role).
Notifications / nudges
- Delivery infra: email provider, in-app inbox, or both? Scheduling for 1–3 spaced nudges [G2] and the 24h/48h/5d cascade — cron vs. event-driven? See intervention layer.
Privacy guardrails (must be enforced in the data layer, not just UI)
- Pulse aggregates: no individual scores exposed to IS/LA — enforce at query level [C3].
- Narrative notes: warn-on-PII but stored as-is — any redaction/retention policy?
- “Patterns, not individuals”: surfacing an individual requires an explicit, logged action (§6.4).
Related
- Data model ideas (proposed entities)
- Implementation roadmap (when each is needed)