Reconciliation
Every night at 02:30 CT the middleware compares Stripe, the ledger, and HubSpot for every policy, and checks the hierarchy for cycles, orphans, missing parents, and locked IDs edited in HubSpot. Each disagreement is listed with the three values side by side. Resync writes the agreed value; nothing is changed without a click.
Open exceptions
0
Last run
Oct 23, 2:30 AM
complete · 2 found · 2 newCompared
2 policies
Stripe ✓ · HubSpot ✓Hierarchy
3 / 2
no change since last snapshotNo items with this status.
Run history
| Started | Status | Trigger | Found | New | Auto-resolved | Detail |
|---|---|---|---|---|---|---|
| Oct 23, 2:30 AM | complete | nightly | 2 | 2 | 0 | stripe_missing 2 |
| Oct 22, 2:30 AM | complete | nightly | 17 | 0 | 0 | id_changed 1, stripe_missing 15, hubspot_policy_status 1 |
| Oct 21, 2:30 AM | complete | nightly | 17 | 0 | 0 | id_changed 1, stripe_missing 15, hubspot_policy_status 1 |
| Oct 20, 2:30 AM | complete | nightly | 17 | 0 | 0 | id_changed 1, stripe_missing 15, hubspot_policy_status 1 |
| Oct 19, 2:30 AM | complete | nightly | 17 | 0 | 0 | id_changed 1, stripe_missing 15, hubspot_policy_status 1 |
| Oct 18, 2:30 AM | complete | nightly | 17 | 0 | 0 | id_changed 1, stripe_missing 15, hubspot_policy_status 1 |
| Oct 17, 2:30 AM | complete | nightly | 17 | 0 | 0 | id_changed 1, stripe_missing 15, hubspot_policy_status 1 |
| Oct 16, 2:30 AM | complete | nightly | 17 | 15 | 0 | id_changed 1, stripe_missing 15, hubspot_policy_status 1 |
| Oct 15, 12:01 PM | complete | api | 2 | 2 | 0 | id_changed 1, hubspot_policy_status 1 |
Hierarchy snapshots 1 kept
A dated copy of every organization and representative with its parent, taken each run, so a dispute about who reported to whom on a given date has an answer.
| Taken | Organizations | Representatives | |
|---|---|---|---|
| Oct 23, 2:30 AM | 3 | 2 | View CSV |
| Which system wins | IDs, parents, policy status, and lifetime: the ledger (Postgres) is the system of record and HubSpot is rewritten. Stripe is the truth for billing state, so a Stripe disagreement moves the ledger and HubSpot follows. Representative and organization status is set in HubSpot, so a status drift is applied to the ledger. |
|---|---|
| No automatic answer | Cycles, orphan representatives, missing parents, and records that disappeared from HubSpot or Stripe need a person. Fix the record, then mark the item resolved; the next run reopens it if it still disagrees. |
| Schedule | 30 2 * * * America/Chicago (RECONCILE_CRON) |