- Verschifft
- 23. September 2026 um 18:10 UTC
- Autor
- Kamo
- Ausschuss
- 6e7d197
The campaign editor's "All Leads" box and the drip trigger's lead filter could only match every lead the sender can see, with no way to target a market, vendor, vendor product or state - the /leads grid has had all four for weeks. - New LeadAudienceFilter **************** threaded through CampaignAudienceInput -> AudienceDefinition -> AudienceQueries.shape()'s LEADS case, mirroring LeadGridSpecifications' predicates (market owns leads directly or via a vendor product; state is mortgage-aware property vs mailing, changed scope does. /estimate and /browse take the same four filters as comma-separated query params, so the editor's live count reflects an unsaved filter too. - TriggerConfig gains a states field alongside the existing marketIds/vendorIds/ productIds; DripTriggerMatcher.leadFilter() checks it. The event-payload path never carried vendor or state, so state is resolved live per lead (DripContacts. stateOfLead), the same way vendor already was from the vendor product. Every existing 3/6/8-arg call site keeps compiling unchanged via added overloads and secondary constructors; only AudienceGatherer, which always threads a definition's filter through, needed its call sites updated.
