Webhooks
Receive real-time notifications when events occur in Vavolta.
Overview
Webhooks send real-time HTTP POST requests to your server when events occur in Vavolta. Use them to trigger automations, sync data, or build custom integrations.
Webhooks are available on the Team plan.
What Are Webhooks?
When something happens in Vavolta (like a form submission), we send a POST request to your URL with event details. Your server receives this and can take action.
1. User submits form on Generic Link
2. Vavolta sends POST to your webhook URL
3. Your server receives event data
4. You trigger your automation
Available Events
| Event | Trigger |
|---|---|
lead_magnet.created | New lead magnet created |
lead_magnet.updated | Lead magnet modified |
lead_magnet.deleted | Lead magnet deleted |
access_link.created | New access link generated |
access_link.viewed | Access link opened |
generic_link.created | New generic link created |
generic_link.submitted | Form submission on generic link |
viewer.session_started | Someone started viewing |
viewer.session_ended | Viewing session completed |
viewer.page_viewed | Specific page viewed (PDF) |
viewer.downloaded | Download button clicked |
Setting Up Webhooks
Step 1: Create Webhook Endpoint
On your server, create an endpoint that:
- Accepts POST requests
- Returns 200 status quickly
- Handles JSON body
Example (Node.js/Express):
javascript
Step 2: Add Webhook in Vavolta
- Go to Settings > Integrations > Webhooks
- Click Add Webhook
- Enter your endpoint URL
- Select events to receive
- Click Create
Step 3: Test Your Webhook
- Click Test next to your webhook
- We send a test event
- Verify your endpoint received it
- Check response was 200
Event Payload
Standard Structure
All events have this structure:
json
Example: Form Submission
json
Example: Link Viewed
json
Example: Session Ended
json
Webhook Security
Signature Verification
Each webhook includes a signature header:
X-Vavolta-Signature: sha256=abc123...
Verify it to ensure the webhook came from Vavolta:
javascript
Webhook Secret
Get your webhook secret:
- Go to Settings > Webhooks
- View webhook details
- Copy the secret
- Store securely (environment variable)
Retry Policy
If your endpoint fails:
| Attempt | Delay |
|---|---|
| 1st retry | 1 minute |
| 2nd retry | 5 minutes |
| 3rd retry | 30 minutes |
| 4th retry | 2 hours |
| 5th retry | 24 hours |
After 5 failures:
- Webhook disabled
- Email notification sent
- Manual re-enable required
What Counts as Failure
- Non-2xx response
- Timeout (30 seconds)
- Connection refused
- SSL errors
Managing Webhooks
Viewing Webhooks
- Go to Settings > Webhooks
- See all configured webhooks
- Status indicator for each
Editing Webhooks
- Click on a webhook
- Modify URL or events
- Save changes
Disabling Webhooks
Temporarily disable:
- Click on webhook
- Toggle Active off
- Events queue (not lost)
- Toggle on to receive queued events
Deleting Webhooks
- Click on webhook
- Click Delete
- Confirm
- No recovery possible
Webhook Logs
Viewing History
See recent webhook deliveries:
- Go to Settings > Webhooks
- Click on a webhook
- View Delivery History
Shows:
- Timestamp
- Event type
- Response status
- Response time
Debugging Failures
For failed deliveries:
- See response code
- View response body
- See request payload
- Retry manually
Common Use Cases
Send to Slack
Notify team of new leads:
javascript
Add to CRM
Create contact in your CRM:
javascript
Trigger Email Sequence
Start nurture sequence:
javascript
Best Practices
Respond Quickly
Return 200 immediately, process async:
javascript
Handle Duplicates
Events may be delivered more than once:
javascript
Use HTTPS
Always use HTTPS endpoints:
- Required by Vavolta
- Encrypts data in transit
- Validates server identity
Log Everything
Keep logs for debugging:
- Incoming payloads
- Processing results
- Errors encountered
Troubleshooting
Not Receiving Webhooks
- Check URL is correct
- Verify endpoint is reachable
- Check firewall/security rules
- Verify events are selected
- Check webhook is active
Getting 4xx Errors
- Check endpoint code for bugs
- Verify signature validation
- Check authentication if any
Getting 5xx Errors
- Check server logs
- Verify database connections
- Check external service dependencies
Timeouts
- Respond within 30 seconds
- Process async after response
- Optimize long operations
Next Steps
- API Documentation - Full API access
- Attio Integration - CRM sync
- Webhook API Reference - Technical details