The dependency list + "here's what already exists" reference behind the marketing plan. For Vlad T, Codrut & ops — not marketing's build. The marketing plan lives in its own doc (review-board.html); this is the technical companion so nothing surprises us on launch day.
hsa_ad) + UTMs, every booking looks like it came from nowhere — we can't tell which ad or keyword worked, and the whole cost-per-attended read goes dark.These are real fields that already exist in HubSpot (confirmed via the API). Marketing doesn't need a new property architecture — it just reads these and attaches copy. The property names in early drafts (self_book_status, verification_path, etc.) were illustrative; the real ones below already do the job.
| Real field (exists today) | What it is / what it drives |
|---|---|
booking_v3_intake_status contact | Intake progress — drives the intake nudges. |
self_book_json contact | The self-booking payload — proof the self-book path is already wired. |
njmmis_eligibility + njmmis_verified_at contact | NJ Medicaid auto-verification — this is the "instant" Medicaid path. |
insurance · active_insurance · insurance_carrier · qualify_insurance · primary_insurance contact | Plan + eligibility info — drives every eligibility message. |
appointment_source deal | The real "self-book flag." Bookings live on the existing appointment deal — no separate pipeline needed. |
appointment_status · appointment_timeslot · appointment_type deal | The booking itself, on the appointment deal. |
n1st_appt_date contact | First appointment date — reminders + no-show logic. |
The engine is mostly native HubSpot. What decides whether Monday works lives outside the parts marketing controls: the booking system writing clean/deduped/brand-tagged data, how fast workflows fire, the dialer (external), and where SMS actually sends from.
| Component | Verdict | Note |
|---|---|---|
| State properties + branch-on-value workflows | native | Fields already exist (above). Real cost is who writes them + when. |
| SLA holding workflow (delay → escalate) | native | Works only if the resolved eligibility is written back to HubSpot. |
| Switch off old attempting-cycle for self-bookers | risky | Needs an exit rule on every old workflow. Most likely launch-day bug. |
| "Instant" confirmation from a workflow | risky | Workflows lag seconds-to-minutes. The booking system should send the instant "you're booked." |
| Reuse contact by phone before enrollment | not automatic | HubSpot auto-merges on email, not phone. Needs the booking system (upsert-by-phone) or paid Ops Hub automation. |
| Send SMS from workflow | integration | Sent via the phone-system SMS integration wired into HubSpot (logged as NCC PhoneSystem). Confirm the actual provider + where STOP / opt-out / quiet-hours / 10DLC live. |
| Webhook / custom-code actions | Ops Hub Pro | Confirm we have it — the phone-dedup path assumes it. |
| booked → verified → attended → revenue report | needs BigQuery | Attended = AMD/EHR; revenue = separate Financial-Only EAT-* deals. A join, not a HubSpot report. |
hsa_ad/UTMs through the booking page.The message for each of these lives in the marketing plan (the comms journey). Here's only the HubSpot plumbing behind each.
appointment_source.booking_v3_intake_status; completion → appointment reminders.