Kafka Events
Event topics produced by the Lead Generation Service for cross-service communication.
Event Format
All events follow CloudEvents 1.0 specification, partitioned by tenant_id. Topic naming convention: eventzr.leadgen.<entity>.<action>.v1
CloudEvents envelopejson
{
"specversion": "1.0",
"type": "eventzr.leadgen.lead.created.v1",
"source": "/leadgen-svc",
"id": "550e8400-e29b-41d4-a716-446655440000",
"time": "2026-03-01T12:00:00Z",
"datacontenttype": "application/json",
"partitionkey": "tenant-uuid",
"data": {
"tenantId": "tenant-uuid",
"leadId": "lead-uuid",
"email": "alice@acme.com",
"source": "form",
"formId": "form-uuid"
}
}Producer Topics (16)
| Topic | Description | Payload Type |
|---|---|---|
eventzr.leadgen.lead.created.v1 | Emitted when a new lead is captured or created | LeadCreatedEvent |
eventzr.leadgen.lead.updated.v1 | Emitted when lead data is modified | LeadUpdatedEvent |
eventzr.leadgen.lead.status-changed.v1 | Emitted when lead status transitions (new, qualified, converted, lost) | LeadStatusChangedEvent |
eventzr.leadgen.lead.scored.v1 | Emitted after AI scoring completes | LeadScoredEvent |
eventzr.leadgen.lead.enriched.v1 | Emitted after third-party enrichment | LeadEnrichedEvent |
eventzr.leadgen.lead.assigned.v1 | Emitted when a lead is assigned to a team member | LeadAssignedEvent |
eventzr.leadgen.deal.created.v1 | Emitted when a new deal is created | DealCreatedEvent |
eventzr.leadgen.deal.stage-changed.v1 | Emitted when a deal moves pipeline stages | DealStageChangedEvent |
eventzr.leadgen.deal.won.v1 | Emitted when a deal is marked as won | DealWonEvent |
eventzr.leadgen.deal.lost.v1 | Emitted when a deal is marked as lost | DealLostEvent |
eventzr.leadgen.form.submitted.v1 | Emitted when a form is submitted (after validation) | FormSubmittedEvent |
eventzr.leadgen.form.published.v1 | Emitted when a form is published | FormPublishedEvent |
eventzr.leadgen.nurture.step-executed.v1 | Emitted when a nurture sequence step is executed | NurtureStepExecutedEvent |
eventzr.leadgen.crm.synced.v1 | Emitted after successful CRM synchronization | CrmSyncedEvent |
eventzr.leadgen.webhook.delivered.v1 | Emitted after webhook delivery attempt | WebhookDeliveredEvent |
eventzr.leadgen.segment.updated.v1 | Emitted when segment membership changes | SegmentUpdatedEvent |
Consuming Events
To consume leadgen events in another service, subscribe to the relevant topic via KafkaBrokerModule.forAws(). Ensure your consumer group follows the pattern: <consumer-service>-leadgen-consumer