Schema and contact-point seed for lead communications

FeatureInitializerService
Shipped
August 5, 2026 at 6:02 PM UTC
Author
Kamo
Commit
0ab6bf7

Hibernate creates the three new tables from the shared-lib entities; this adds what it cannot express — the partial unique index that keeps at most one open contact-point window per (lead, slot), and DESC covering indexes for the timeline's keyset scan. The seed opens a first window for every lead that predates the index. Not a communication back-fill: no historical call or message is associated to anything. Without it a pre-existing lead has no contact points at all and could never match an incoming call, so every tab would stay empty forever. It runs through LeadContactPointService rather than a bulk INSERT..SELECT so there is exactly one implementation of canonicalisation. A SQL twin would have to re-derive digit stripping, NANP handling, the extension floor and address unwrapping, and any later divergence would be invisible — seeded rows would simply stop matching live traffic. Applied against production: 66 contact points opened across 45 leads.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing