Set Up Webhooks for Alerts
By the end of this guide, you’ll know how to set up webhooks to receive real-time notifications about important SEO events.
Prerequisites: Schedule reports to have your reporting workflow in place.
What are webhooks?
Webhooks are HTTP notifications that SEOJuice sends to your server when specific events happen. Instead of checking the dashboard manually, webhooks push updates to you — so you can integrate SEOJuice with Slack, email automation, custom dashboards, or any other tool that accepts HTTP requests.
Step 1: Create a webhook endpoint
From the dashboard, navigate to your Organization Settings > Webhooks. Click Create Webhook and configure:
- Endpoint URL — the HTTPS URL where SEOJuice should send notifications
- Events — which events you want to subscribe to
- Secret key — automatically generated for verifying webhook authenticity
Step 2: Choose your events
Select which events trigger notifications:
| Event | When it fires |
|---|---|
| Report completed | A new audit report has finished generating |
| Analysis finished | Website analysis/crawl has completed |
| Links generated | New internal links have been created |
| Accessibility issues detected | New accessibility issues found during crawl |
| Content gap identified | New content opportunities discovered |
| Competitors updated | Competitor analysis data has been refreshed |
Step 3: Verify webhook signatures
Every webhook request includes an HMAC-SHA256 signature in the headers. Always verify this signature to ensure the request is genuinely from SEOJuice:
import hmacimport hashlib
def verify_signature(payload_body, signature_header, secret): expected = hmac.new( secret.encode('utf-8'), payload_body, hashlib.sha256 ).hexdigest() return hmac.compare_digest(expected, signature_header)The webhook secret is displayed when you create the endpoint and can be viewed in your webhook settings at any time.
Delivery and retries
SEOJuice expects your endpoint to respond with a 2xx status code within 30 seconds. If delivery fails, SEOJuice retries up to 3 times with exponential backoff:
- 1st retry — after 1 minute
- 2nd retry — after 5 minutes
- 3rd retry — after 30 minutes
After 3 failed attempts, the delivery is marked as failed. You can view delivery history and inspect payloads from the webhook detail page.
What to expect
Webhook events fire in real-time as SEOJuice processes your site. You can test your endpoint by sending a test event from the webhook settings page. Monitor your delivery history to ensure your endpoint is receiving and processing events correctly.
You’ve set up monitoring across the board. For any issues, check Troubleshooting.