Webhook Events
This page documents all webhook event types available in CronDB, their trigger conditions, and payload schemas.

Event Naming Convention
Events follow the pattern resource.action:
alert.domain_matched
watchlist.domain_changed
sequence.email_replied
Alert Events
alert.domain_matched
Triggered when a new domain matches an intent alert rule.
{
"event": "alert.domain_matched",
"timestamp": "2026-03-18T14:30:00Z",
"data": {
"alert_id": "alt_abc123",
"alert_name": "US SaaS Leads",
"domain": "newstartup.com",
"industry": "Technology",
"business_type": "B2B SaaS",
"country": "US",
"confidence": 0.91,
"website_summary": "Cloud-based analytics platform for SaaS companies.",
"tech_stack": {
"cms": "Next.js",
"analytics": ["Google Analytics", "Mixpanel"],
"chat": "Intercom"
},
"contact": {
"emails": ["hello@newstartup.com"],
"phone": null
}
}
}
alert.rule_created
Triggered when a new alert rule is created.
{
"event": "alert.rule_created",
"timestamp": "2026-03-18T10:00:00Z",
"data": {
"alert_id": "alt_abc123",
"alert_name": "US SaaS Leads",
"created_by": "user@example.com"
}
}
alert.rule_deleted
Triggered when an alert rule is deleted.
{
"event": "alert.rule_deleted",
"timestamp": "2026-03-18T10:00:00Z",
"data": {
"alert_id": "alt_abc123",
"alert_name": "US SaaS Leads",
"deleted_by": "user@example.com"
}
}
Watchlist Events
watchlist.domain_changed
Triggered when a watched domain's data changes.
{
"event": "watchlist.domain_changed",
"timestamp": "2026-03-18T14:30:00Z",
"data": {
"domain": "competitor.com",
"changes": [
{
"field": "tech_stack.payment",
"action": "added",
"value": "Stripe",
"previous_value": null,
"detected_at": "2026-03-18T14:30:00Z"
},
{
"field": "contact.email",
"action": "added",
"value": "sales@competitor.com",
"previous_value": null,
"detected_at": "2026-03-18T14:30:00Z"
}
]
}
}
watchlist.domain_added
{
"event": "watchlist.domain_added",
"timestamp": "2026-03-18T10:00:00Z",
"data": {
"domain": "prospect.com",
"added_by": "user@example.com"
}
}
watchlist.domain_removed
{
"event": "watchlist.domain_removed",
"timestamp": "2026-03-18T10:00:00Z",
"data": {
"domain": "prospect.com",
"removed_by": "user@example.com"
}
}
Sequence Events
sequence.email_sent
Triggered when a sequence email is sent.
{
"event": "sequence.email_sent",
"timestamp": "2026-03-18T09:00:00Z",
"data": {
"sequence_id": "seq_abc123",
"sequence_name": "SaaS Outreach",
"domain": "prospect.com",
"step_number": 1,
"subject": "Quick question about prospect.com",
"to_email": "hello@prospect.com"
}
}
sequence.email_opened
{
"event": "sequence.email_opened",
"timestamp": "2026-03-18T10:15:00Z",
"data": {
"sequence_id": "seq_abc123",
"sequence_name": "SaaS Outreach",
"domain": "prospect.com",
"step_number": 1,
"open_count": 2,
"engagement_score": 10
}
}
sequence.email_clicked
{
"event": "sequence.email_clicked",
"timestamp": "2026-03-18T10:20:00Z",
"data": {
"sequence_id": "seq_abc123",
"sequence_name": "SaaS Outreach",
"domain": "prospect.com",
"step_number": 1,
"clicked_url": "https://yoursite.com/pricing",
"engagement_score": 25
}
}
sequence.email_replied
{
"event": "sequence.email_replied",
"timestamp": "2026-03-18T14:30:00Z",
"data": {
"sequence_id": "seq_abc123",
"sequence_name": "SaaS Outreach",
"domain": "prospect.com",
"step_number": 2,
"engagement_score": 65,
"temperature": "hot"
}
}
sequence.email_bounced
{
"event": "sequence.email_bounced",
"timestamp": "2026-03-18T09:01:00Z",
"data": {
"sequence_id": "seq_abc123",
"sequence_name": "SaaS Outreach",
"domain": "prospect.com",
"step_number": 1,
"bounce_type": "hard",
"reason": "User unknown"
}
}
sequence.contact_enrolled
{
"event": "sequence.contact_enrolled",
"timestamp": "2026-03-18T08:00:00Z",
"data": {
"sequence_id": "seq_abc123",
"sequence_name": "SaaS Outreach",
"domain": "newlead.com",
"enrollment_source": "audience_trigger"
}
}
sequence.contact_completed
{
"event": "sequence.contact_completed",
"timestamp": "2026-03-25T09:00:00Z",
"data": {
"sequence_id": "seq_abc123",
"sequence_name": "SaaS Outreach",
"domain": "prospect.com",
"total_steps": 5,
"engagement_score": 30,
"temperature": "warm",
"goal_achieved": false
}
}
sequence.goal_achieved
{
"event": "sequence.goal_achieved",
"timestamp": "2026-03-20T14:30:00Z",
"data": {
"sequence_id": "seq_abc123",
"sequence_name": "SaaS Outreach",
"domain": "prospect.com",
"goal_type": "reply",
"step_number": 2,
"engagement_score": 65
}
}
Enrichment Events
enrichment.completed
Triggered when a bulk enrichment job finishes.
{
"event": "enrichment.completed",
"timestamp": "2026-03-18T15:00:00Z",
"data": {
"job_id": "job_abc123",
"total_domains": 100,
"total_found": 87,
"total_not_found": 13,
"duration_seconds": 45
}
}
enrichment.failed
{
"event": "enrichment.failed",
"timestamp": "2026-03-18T15:00:00Z",
"data": {
"job_id": "job_abc123",
"error": "Internal processing error",
"total_domains": 100,
"processed": 42
}
}
Subscribing to Events
When creating or updating a webhook, specify which events to receive:
curl -X POST \
-H "Authorization: Bearer cdb_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"name": "All Alerts",
"url": "https://yourapp.com/webhooks/crondb",
"events": [
"alert.domain_matched",
"watchlist.domain_changed",
"sequence.email_replied",
"sequence.goal_achieved"
]
}' \
"https://api.crondb.com/v1/webhooks"
Use "events": ["*"] to subscribe to all event types.
Next Steps
- Webhooks Overview — API management and delivery details
- Integrations Webhooks — Setup and security guide
- Alert Webhooks — Alert-specific webhook configuration