Project Status at a Glance
3-Year History
Original architectural blocker surfaces
Brian Lamure asks Kusha + Ryan: “How can we (1) Detect when these issues arise (2) Prevent them going forward?” Kusha replies: the Box Update service can’t use Box Record Id to match records because the HubSpot endpoint requires CompanyId. Once a CompanyId mapping is lost, sync silently fails. Thread: Hubspot- Missing CompanyId
Roque goes dark for ~10 days — bus factor exposed
Ken Pina: “is anyone aware if Roque is still working for us, or maybe he’s on vacation? He has gone dark to our emails and without these data dumps mentioned below we are not able to keep our internal business going.” Confirms the entire Box→HubSpot data flow depends on a single human running a manual weekly process. Thread: Fw: Weekly Hubspot Record IDs
~1,500 records out of sync; Jordan Fein (CEO) pulled in
Ryan flags records that hadn’t synced in 15 days despite active submissions. Kusha disputes; Goodwood Support clarifies. Jordan Fein escalates and adds Michelle Klaasen (Box 1.0 product). Jennifer Young follows up Oct 30 about the ~1,500-record update — no public resolution in the email trail. Thread: HS <> Box ID Update Issues
Kusha initiates the automation scoping
Kusha (CC: Sarah Lackey) emails Goodwood: “Automate the manual HS <> Box1.0 Updates” with a clear agenda: review current process, propose integration approach + data flow, discuss de-duplication rules, identify risks. Thread: Automate the manual HS <> Box1.0 Updates
Preliminary Scoping Call — Ryan, Kusha, Sarah
Discussed webhooks + Firebase functions to push Merchants/Owners/Loan Requests into HS daily, return HS IDs to update Greenbox SQL. Sarah introduces Databricks as alternative framework. Secondary topics: HubSpot V4 API upgrade, many-to-many owner-merchant relationships. Action items: Kusha to schedule January follow-up with Brian + initiate OSAP. Call ID: 98519631912
Silence — OSAP never initiated, January follow-up never scheduled
The committed action items from Dec 11 do not appear in the call archive or email trail. Roque’s manual weekly process continues uninterrupted (Apr 3, Apr 14 weekly imports). Inferred from absence in record
Roque produces ETL Logic & Edge Cases spec
In response to Kris’s implementation-plan demand, Roque attaches a Sales Data Protection & ETL Specification document with three traps that any replacement must handle natively (secondary decision makers, 324+ invalid email filter, rep collisions). Thread: Re: HubSpot Implementation Plan
Sarah Lackey reboots the conversation
Sarah emails Ryan + Kris: “In talking with Kris... important gap that remains is the sync issues we have with data between Box 1.0 and HubSpot.” Schedules alignment meeting 5/13–5/15 with Kusha, Brian Lamure, Nova Guliyev, Kris. Kris: “This is the meeting I was telling you is essential we have you at.” Thread: Hubspot / Box 1 Data Sync
Pending Architectural Decisions
| Decision | Options | Recommendation | Status | Decision Owner |
|---|---|---|---|---|
| Hosting platform | Firebase Functions Databricks app framework | Goodwood builds in Firebase (template repo ready); package the integration logic in a portable way; Greenbox can run wherever they want post-handoff | Decide 5/13–5/15 | Sarah Lackey |
| Sync cadence | Daily batch / hourly / real-time webhook | Real-time webhook from Box 1.0 with daily reconciliation job as safety net | Open | Kusha + Ryan |
| HubSpot API version | Legacy vs. V4 | Move to V4 throughout — required for many-to-many associations | Open | Kusha + Goodwood |
| Owner–Merchant relationship model | 1:1 (current) vs. many-to-many (V4) | Many-to-many — multiple owners per merchant is real (PAM/RAM, secondary decision makers) | Open | Sarah + Kusha |
| Master record selection rules | Latest activity / Email-Known + LastName-Known / Roque’s rules | Codify Roque’s master rules from his ETL spec + persist to Firestore for audit | Blocked — need spec | Roque + Goodwood |
Roque’s Pipeline — What Must Be Replaced
The current weekly manual pipeline is not just data movement. Roque catches and corrects multiple categories of issue. Any automation must replace all of them or Greenbox loses ground.
Data normalization & scrubbing Not Started
Pipeline data, merchant records, and merchant owner records are normalized and scrubbed for errors. Per Roque’s 4/3/2026 sync email.
Dedup logic Not Started
Weekly Insycle dedup across MOID, Broker ID, FirstName+LastName+Phone. Orphaned record merge by phone match. Master rule: Email Known + Last Name Known.
Email validation & typo correction Not Started
Box truncates emails at 50 chars producing typos like eclark@fivestar...n. Roque manually corrects in HubSpot. Apr 3 example: MID 286569.
Fraud email screening Not Started
324+ known-invalid email patterns must be filtered pre-ingestion. Per Roque’s ETL spec (4/28/2026).
Decline-reason picklist reconciliation Not Started
Box adds new reasons that don’t exist in HS picklist. Recurring incidents 2024-03, 2024-11, 2025-05, 2026-04. Needs an approval/sync workflow.
Secondary decision makers Not Started
Un-flatten secondary owners from Box export and attach them to Deal. Per Roque’s ETL spec.
Rep collision exception logic Not Started
Single owner across multiple distinct companies must NOT trigger HubSpot record merge. Currently a manual disambiguation step.
HubSpot ID round-trip to Greenbox SQL Not Started
After HubSpot creates a record, the new HubSpot ID must be returned to Greenbox’s SQL DB so future updates can be matched (the original Aug 2023 problem).
Drift detection & reconciliation Not Started
The 1,500-record / 46-orphan incidents prove silent sync failures happen. Need a daily reconciliation job that surfaces drift before it grows.
Phased Build Plan
| Phase | Scope | Gates | Status | Target |
|---|---|---|---|---|
| Phase 0: Alignment | 5/13–5/15 meeting; Firebase vs. Databricks decision; OSAP initiated; tech leads named | None | In Progress | May 2026 |
| Phase 1: Inbound POC | Read-only daily sync: Box → Firebase → HubSpot for new Merchants/Owners/Loan Requests. No write-back yet. Run alongside Roque’s manual process. | Phase 0 alignment; OSAP approval; Box API access + credentials | Not Started | Jun–Jul 2026 |
| Phase 2: HubSpot ID Round-Trip | Return HS object IDs to Greenbox SQL on every create. Solves the original Aug 2023 problem. | Phase 1 stable; Greenbox SQL endpoint available | Not Started | Jul–Aug 2026 |
| Phase 3: Roque Pipeline Parity | Implement all 9 capabilities above (dedup, fraud, typo, decline-reason, drift detection). Achieve parity with Roque’s manual output. | Phase 2 stable; Roque ETL spec finalized | Blocked — need spec | Aug–Sep 2026 |
| Phase 4: Real-Time + V4 API | Replace daily batch with Box webhook trigger. Migrate all calls to V4. Enable many-to-many owner-merchant. | Phase 3 stable; Box 1.0 webhook capability confirmed | Not Started | Q4 2026 |
| Phase 5: Cutover & Roque Hand-off | Roque’s manual process retired. Reconciliation dashboard live. Greenbox tech team on-call rotation. | Phase 4 stable; 2 consecutive weeks of zero drift | Not Started | Q4 2026 / Q1 2027 |
Stakeholder Map
| Person | Org / Role | Position on this project |
|---|---|---|
| Sarah Lackey | Greenbox — VP of Technology | Pushing Databricks; rebooted on 5/7; CC’d since Nov 2025 |
| Kusha Kapoor | Greenbox — Developer Team Lead | Owner of Box-side codebase; initiated this project Nov 2025; technical counterpart since Aug 2023 |
| Brian Lamure | Greenbox — Tech | Asked the founding “detect / prevent” question Aug 2023 — still unresolved |
| Nova Guliyev | Greenbox — Tech (?) | New name on 5/7 invite — role unconfirmed |
| Roque Mozingo | Greenbox — HubSpot Admin | Single point of failure today; produced 4/28 ETL spec; his role evolves once automated |
| Ken Pina | Greenbox — Director of Technology | Surfaces operational pain when Roque is unavailable |
| Jordan Fein | Greenbox — CEO | Pulled into Oct 2025 sync incident — engaged at exec level when this breaks |
| Michelle Klaasen | Greenbox — Product (Box 1.0) | Box-side product owner |
| Kris Glaittli | Greenbox — VP of Sales | Sponsor on workflow-migration; here for visibility only |
| Jennifer Young | Greenbox — Director of Sales | Surfaces operational symptoms (orphan records, eligibility gaps) |
| Rahul Tandon | Greenbox — Senior Developer | Imports Roque’s weekly files into Greenbox SQL |
| Ryan Thibodeaux | Goodwood — President | Lead consultant; technical architect for proposed solution |
Risks & Open Issues
| Risk | Detail | Severity | Mitigation |
|---|---|---|---|
| Roque bus factor | 10-day silence in May 2025 stopped Greenbox’s data flow. Single human runs the entire weekly pipeline. | High | Phase 3 parity with monitoring + on-call rotation |
| OSAP not initiated | Approval gate was action item from Dec 2025; never started. Without OSAP, Greenbox tech team can’t allocate dev resources. | High | Sarah/Kusha to initiate at 5/13 meeting |
| Architecture not decided | Firebase vs. Databricks debate has been open since Dec 11, 2025. Building in either is fine; the deadlock is what blocks progress. | Medium | Force decision at 5/13 meeting; recommend Firebase + portable handoff |
| Insycle recipe configs not exported | Phase 3 parity (dedup) requires the actual Insycle recipe match/master rules, which are configured in Insycle, not HubSpot. | High | Request from Greenbox before Phase 3 starts |
| Box 1.0 webhook capability unconfirmed | Phase 4 (real-time) depends on Box 1.0 supporting outbound webhooks. Currently they push files weekly to Roque, which suggests no webhook. | Medium | Confirm with Kusha; fall back to polling if needed |
| ~46 orphan deals + ~1,500-record drift | Pre-existing data debt. Even after the new pipeline ships, these will remain orphaned unless reconciled. | Medium | One-time backfill job included in Phase 2 |
| Decline-reason picklist drift | Recurring quarterly. Each new Box reason needs HS picklist update + approval workflow. | Low | Build picklist-sync as a side capability in Phase 3 |
How This Relates to the Workflow Migration
The Workflow Migration Tracker (Insycle / Zapier / Apps Scripts / Box workflows) is scope-bounded — it’s about removing third-party tool subscriptions Kris wants to cancel. It can largely ship without solving Box ↔ HubSpot.
However, Phase 4 of the migration tracker (Box 1.0 workflows: Box→Deal stage, submission URL, webhook to Box) is a subset of this larger project. Once this Box ↔ HubSpot pipeline lands, those three workflows largely become moot or get re-architected against the new pipeline.
Recommended sequencing: ship workflow migration Phases 1–3 (kill Insycle/Zapier/Apps Scripts) first; defer migration Phase 4 until Box ↔ HubSpot Phase 2 lands.
Reference Material
- Founding scoping call — Box ↔ HubSpot Automation: Preliminary Scoping (Dec 11, 2025) —
callId 98519631912 - HS<>Box ID Update Issues — ~1,500 record drift incident (Oct 22–30, 2025)
- HubSpot - Missing CompanyId — founding architectural problem (Aug 10–22, 2023)
- Fw: Weekly Hubspot Record IDs — Roque dark-period incident (Apr–May 2025)
- Automate the manual HS <> Box1.0 Updates — Kusha’s original ask (Nov 19, 2025)
- Hubspot / Box 1 Data Sync — Sarah’s 5/7/2026 reboot + invite
- Sales Data Protection & ETL Specification — Roque, attached to 4/28/2026 implementation-plan thread
- Goodwood Drive folder — Greenbox/
public/greenbox/reports/box-hubspot-tracker.html in the
greenbox-core-apps repo. The companion workflow migration tracker is at
migration-tracker.html.