Webhook Domain (external sources)
The Lead domain consumes normalized events published by the Webhook Domain — the central webhook reception and normalization service for the platform. The Webhook Domain receives webhooks from external platforms (Hotmart, Stripe, Typeform, etc.), validates authenticity, normalizes the payload, and publishes anEventNormalized to the message broker. Multiple domains consume this event; the Lead domain is one of them.
Minimum contract expected by the Lead domain
When an event involves a lead, the Lead domain expectsevent.data to contain a lead object with identity resolution data:
event.data.lead.channel + event.data.lead.channelIdentifier are used for identity resolution via ChannelIdentity. The rest of event.data (amount, productName, formResponses, etc.) is event-type-specific — the Event Ingester and Memory Updater know how to interpret it.
The Webhook Domain is also consumed by other domains that extract their own data from event.data. The lead object is a convention for events that involve a lead.
Internal service signals
In addition to the Webhook Domain (external webhooks), the Lead domain receives signals from internal services via SNS/SQS:| Service | Signal examples |
|---|---|
| Messaging | conversation_started, conversation_ended, interest_detected, sentiment_detected, campaign_delivered, campaign_engaged, campaign_ignored |
| AI Agents | agent_insight |