You’re hitting a documented limitation of the event management webhook system in Zendesk Sell. Let me walk through the complete solution that addresses all three key areas: webhook event type selection, custom field inclusion, and proper payload inspection.
Webhook Event Type Selection
The attendee.registered event is a lightweight notification webhook that only includes minimal data. This is by design to reduce payload size and improve webhook delivery performance for high-volume event registrations. For your use case, you have two better options:
- Use contact.updated webhooks instead if your attendees are created as contacts in Zendesk Sell. This webhook type includes full custom field data.
- Use a hybrid approach with the current attendee.registered webhook plus an immediate API fetch.
Custom Field Inclusion Strategy
Since the attendee.registered webhook doesn’t include custom fields natively, implement this pattern:
// Webhook receiver pseudocode:
1. Receive attendee.registered webhook with minimal data
2. Extract attendee_id from payload
3. Make GET request to /v2/attendees/{attendee_id}?include=custom_fields
4. Process full attendee record with all custom fields
5. Continue automation workflow with complete data
The include=custom_fields query parameter is crucial for the API fetch. Without it, even direct API calls may return abbreviated data.
Payload Inspection Process
When debugging webhook payloads, check these specific areas:
-
Event type confirmation: Verify the event field in the payload matches your expected type. Sometimes webhook configurations can drift.
-
Nested data structures: Custom fields when present are under payload.data.custom_fields, not at the root level. The structure is:
{
"event": "attendee.registered",
"data": {
"id": "123",
"custom_fields": {...}
}
}
- Webhook version: Confirm your endpoint is receiving v2 webhooks by checking the webhook subscription in your Zendesk Sell settings under Settings > Webhooks.
Recommended Implementation
For reliable automation with custom fields:
- Keep your attendee.registered webhook for immediate notification
- In your webhook handler, immediately call GET /v2/attendees/{id}?include=custom_fields
- Cache the full attendee data for your lead scoring logic
- Set up monitoring to track the latency of this two-step process
This pattern adds ~100-200ms latency but ensures you have all required data. Most automation workflows can easily accommodate this delay. If real-time processing under 50ms is critical, consider switching to contact.updated webhooks and linking your event attendees to contact records, which natively include custom fields in webhook payloads.