Overview
Webhooks allow you to receive real-time notifications when events occur in the Gather API. Configure webhooks to be notified when interviews are completed, statuses change, or audio generation finishes.Webhook Events
The following events are available:question.audio_generated- Question audio generation completedcandidate_interview.completed- Candidate completed interviewcandidate_interview.status_changed- Status changedinterview.created- Interview createdinterview.updated- Interview updated
Webhook Payload Format
All webhook payloads follow this structure:Webhook Configuration
Webhooks are configured per organization/team via Eucalyptus (internal admin tool). Contact your Qualifi administrator to set up webhooks.
Configuration Options
- Multiple URLs: Supports multiple webhook URLs per organization
- Event Filtering: Configure which events to receive
- Retry Logic: Automatic retries with exponential backoff (3 attempts)
- Signature Verification: HMAC-SHA256 signature for security
Webhook Signature Verification
All webhooks include a signature header for verification:Verification Process
- Extract timestamp and signature from header
- Create payload string:
timestamp + "." + JSON.stringify(payload) - Compute HMAC-SHA256 using your webhook secret
- Compare computed signature with provided signature
Example Verification
- JavaScript
- Python
Event Details
question.audio_generated
Triggered when question audio generation completes.candidate_interview.completed
Triggered when a candidate completes an interview.candidate_interview.status_changed
Triggered when candidate interview status changes.Retry Logic
Webhooks use exponential backoff for failed deliveries:- First attempt: Immediate
- Second attempt: After 1 minute
- Third attempt: After 5 minutes
If all retry attempts fail, the webhook delivery is marked as failed. Check your webhook endpoint availability and error handling.
Best Practices
- Verify Signatures: Always verify webhook signatures to ensure authenticity
- Idempotency: Handle duplicate webhook deliveries gracefully
- Quick Response: Respond to webhooks quickly (within 5 seconds)
- Error Handling: Return appropriate HTTP status codes
- Logging: Log all webhook events for debugging

