Webhooks let you integrate PoolFlow with other systems. When something happens in PoolFlow, we send data to a URL you specify.
What are webhooks?
Webhooks are HTTP callbacks. When an event occurs (like a new booking), PoolFlow sends a POST request to your server with details about the event.
Use webhooks to:
- Sync data to your CRM
- Send custom notifications
- Update your website
- Trigger automations in Zapier or Make
- Build custom integrations
Setting up webhooks
- Go to Settings → Developer
- Click Add Webhook Endpoint
- Enter your endpoint URL
- Select which events to receive
- Save
Available events
Job events
- job.created — New booking submitted
- job.lead_captured — Lead submitted during hibernation
- job.services_selected — Customer selected services (before payment)
- job.paid — Payment successfully captured
- job.quote_sent — Quote emailed to customer
- job.quote_approved — Customer approved a quote
- job.quote_expired — Quote expired without payment
Order events
- order.completed — Job marked as complete
Webhook payload
Each webhook sends JSON with:
{
"event": "job.paid",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"id": 12345,
"customer_name": "John Smith",
"customer_email": "[email protected]",
"address": "123 Pool Lane",
"total_cents": 15000,
"services": ["Weekly Cleaning"],
...
}
}
The data object varies by event type and includes relevant details.
Security
HMAC verification
Each webhook includes a signature header for verification. Use your webhook secret to verify that requests really came from PoolFlow.
The signature is in the X-PoolFlow-Signature header.
HTTPS required
Webhook endpoints must use HTTPS for secure transmission.
Delivery
Timeouts
Webhooks timeout after 10 seconds. Your endpoint should respond quickly and do heavy processing asynchronously.
Retries
Failed webhooks (non-2xx response or timeout) are retried:
- 1st retry: 1 minute later
- 2nd retry: 5 minutes later
- 3rd retry: 30 minutes later
- 4th retry: 2 hours later
- 5th retry: 24 hours later
After 5 failures, the endpoint is disabled. You'll get an email notification.
Re-enabling
Go to Settings → Developer to re-enable a disabled endpoint after fixing the issue.
Testing webhooks
Click Test next to any endpoint to send a test event. This helps verify your integration before real events flow.
Use cases
Sync to CRM
Send customer data to HubSpot, Salesforce, or your custom CRM when new bookings come in.
Custom notifications
Trigger a Slack message or text alert for specific event types.
Website updates
Update your website's booking count or testimonials automatically.
Zapier/Make
Connect PoolFlow to thousands of apps using webhook triggers in automation platforms.
Tips
Respond quickly
Return 200 immediately, then process async. Slow endpoints cause timeouts and retries.
Log everything
Keep logs of received webhooks for debugging. Include the event ID and timestamp.
Handle duplicates
Due to retries, you might receive the same event twice. Use the event ID to deduplicate.
Start with test mode
Test your integration thoroughly before going live. Use the test button to simulate events.