‹ System

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
2
Last run
Oct 23, 2:30 AM
complete · 2 found · 2 new
Compared
2 policies
Stripe ✓ · HubSpot ✓
Hierarchy
3 / 2
no change since last snapshot

open resynced resolved ignored all

Subscription missing in Stripe: 2

FoundExceptionRecordStripeLedgerHubSpotStatus
Oct 23, 2:30 AMSubscription missing in Stripe PL-001012
policy
no such subscriptionpast_due— Open
Oct 23, 2:30 AMSubscription missing in Stripe PL-001007
policy
no such subscriptionactive— Open
Run history
StartedStatusTriggerFoundNewAuto-resolvedDetail
Oct 23, 2:30 AMcompletenightly220stripe_missing 2
Oct 22, 2:30 AMcompletenightly1700id_changed 1, stripe_missing 15, hubspot_policy_status 1
Oct 21, 2:30 AMcompletenightly1700id_changed 1, stripe_missing 15, hubspot_policy_status 1
Oct 20, 2:30 AMcompletenightly1700id_changed 1, stripe_missing 15, hubspot_policy_status 1
Oct 19, 2:30 AMcompletenightly1700id_changed 1, stripe_missing 15, hubspot_policy_status 1
Oct 18, 2:30 AMcompletenightly1700id_changed 1, stripe_missing 15, hubspot_policy_status 1
Oct 17, 2:30 AMcompletenightly1700id_changed 1, stripe_missing 15, hubspot_policy_status 1
Oct 16, 2:30 AMcompletenightly17150id_changed 1, stripe_missing 15, hubspot_policy_status 1
Oct 15, 12:01 PMcompleteapi220id_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.

TakenOrganizationsRepresentatives
Oct 23, 2:30 AM32View CSV
Which system winsIDs, 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 answerCycles, 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.
Schedule30 2 * * * America/Chicago (RECONCILE_CRON)