Spark360 publishes lead and widget events from application-layer trigger points after core data writes complete.
| Quantiv Event | leadStatus | S360 Outbound Event | Trigger | Availability |
|---|
lead.created | address_info_provided | lead.address_preview | Leads INSERT | Optional |
lead.updated | project_details_provided | (no outbound event) | — | — |
lead.updated | personal_info_and_estimate_provided | lead.enriched | Enrichment write-back complete | REQUIRED — locked |
lead.updated | personal_info_and_estimate_provided + ownerOccupied=false | lead.rental_alert | Same as above, occupancy check | Optional |
lead.updated | contact_info_provided | lead.contact_requested | Leads UPDATE | Optional |
widget.updated | n/a | widget.status_changed | organizations.widget_status UPDATE | Optional |
lead.enriched is mandatory for every webhook subscription and cannot be deselected.
Lead payload defaults
Every lead event includes these defaults:
{
"widget_version": "01",
"source_tracking": {
"source_code": "01"
}
}
Event sequencing notes
lead.address_preview fires first on initial address submission and is address-only (no name or contact info).
lead.enriched fires after enrichment is complete and write-back includes scores, buyer insights, and roof estimate fields.
lead.rental_alert can fire alongside lead.enriched when owner_occupied = false.
lead.contact_requested fires last only if the homeowner completes the optional contact preference step.
lead.contact_requested is optional and only fires when the final contact step is completed. It always arrives after lead.enriched, never before.