Point-in-time contact-point index and lead communication links

Featurekamo-shared-library
Shipped
August 5, 2026 at 6:02 PM UTC
Author
Kamo
Commit
d95ea47

Adds the spine the lead Communications tab reads from. LEAD_CONTACT_POINTS records every phone number and e-mail a lead has ever had, as a window with activeFrom/activeTo. LEAD_COMMUNICATIONS records the durable link between a lead and one call, voicemail, text or e-mail, written at the moment it happens against the contact points live at that moment — so changing a lead's number binds future traffic only and leaves history exactly as it was. PHONE_CALL_LOG is the call record the platform never had: RECORDINGS only has a row when audio was captured, so missed and un-recorded calls left no trace. ContactCanon is the single definition of "the same number" for the whole platform; LeadController.canonicalPhone now delegates to it so reverse lookup and communication matching cannot disagree. LeadContactPointService and LeadCommunicationLinker are deliberately NOT stereotypes — a shared-lib @Service needing a repository fails context startup in every service that has not added the package, which has taken production down three times. The owning services declare the beans; LeadService takes them @Autowired(required=false) so it still wires everywhere else.

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