- Shipped
- October 6, 2026 at 2:20 AM UTC
- Author
- Kamo
- Commit
- be57efd
Harmony Home Loans pointed every JustCall webhook at its "Justcall" intake endpoint, and the job made every event a lead: 287 in three days. 247 have no name, company, phone or email (sd.call_updated, call.initiated, sms.sent, appointment.scheduled… — the only such leads on the platform), call events are named "New JustCall Contact" (JustCall's placeholder for a number it does not know), the same person is filed again for every event (39 phones, 25 people), and the mapped JustCall agent ("assignedUser") was silently dropped — 286 of 287 arrived unassigned. LeadIntakeProcessingJob, for every endpoint: - IntakeLeadIdentity: placeholder names ("New JustCall Contact", "Unknown", "Anonymous", "n/a", "undefined"…) are dropped; a payload with no name, company, matchable phone or email is DISCARDED with a reason, not a lead. - IntakeSamePersonFinder: a payload whose canonical phone or email belongs (contact-point index) to a lead of the same vendor product fills that lead's blanks — never overwriting, a placeholder name counting as blank — through updateLead, and is DISCARDED noting the lead. One run's payloads are grouped by person and run in order on one worker, so a burst of events for one call makes one lead. The processing log's duplicates column now counts these. - IntakeAssigneeResolver: assignedUser resolves to one ACTIVE org member by email, username, or a full name only one member has; ambiguous or unknown assigns nobody. The mapping canvas offered the field ("Username of assigned user"); no importer handled it. Tests: IntakeLeadIdentityTest (11), **************** (7, through execute — on the job as it was, 6 fail: status events and placeholders become leads, one person becomes three, the agent is dropped), IntakeAssigneeResolverTest (4), IntakeSamePersonFinderTest (4). Full suite 136/136.
