Overview
Forwarding is a feature that automatically sends your webhook event data to external URLs you specify. When enabled, Hookr acts as a middleware—receiving webhook events and instantly relaying them to your own services, integrations, or APIs. This is especially useful when an event source supports only a single webhook URL, but you need to send the data to multiple destinations like Zapier, custom APIs, or other automation platforms.Why Use Forwarding?
- Multiple Destinations: Send a single event to up to 3 different URLs simultaneously
- Secure Verification: Each forwarded request includes cryptographic signatures so recipients can verify authenticity
- Easy Integration: Works with Zapier, Make, IFTTT, custom APIs, and any HTTP endpoint
- Complete Transparency: View the history of every forwarded request with response details
- Original Data Preserved: The exact event payload is forwarded without modification
- Works with Everything: Compatible with Private Mode, Time Sensitive notifications, and all other features
When to Use Forwarding
Enable Forwarding for webhooks when you need to send event data to external services:When NOT to Use Forwarding
Avoid Forwarding if:- No external services needed — If you only need mobile notifications, standard webhooks are simpler
- Service can’t handle HTTP POST — Your destination must accept HTTP POST requests
- Need data transformation — Hookr forwards data as-is; use an intermediary service for transformations
How It Works
What Happens When Forwarding Is Enabled
When a webhook with Forwarding enabled receives an event:- ✅ Event arrives — Hookr receives the webhook at your unique URL
- ✅ Notification sent — You get a push notification (if a message is configured)
- ✅ Data forwarded — The complete event payload is sent to each configured URL
- ✅ Request signed — Each forwarded request includes an HMAC SHA256 cryptographic signature
- ✅ History recorded — Forwarding results (status, response, timing) are saved for review
Data Flow Comparison
What Gets Forwarded
The complete original payload is forwarded to your external URLs, including:- All JSON fields from the original request
- Query string parameters
- Original HTTP method (POST, PUT, etc.)
- Exact data structure (no transformation)
Setup: Enabling Forwarding
Enabling Forwarding is straightforward:- Open your webhook — Find the webhook you want to enable forwarding on
- Edit the webhook — Click the edit button or settings
- Toggle “Enable Forwarding” — This reveals the forwarding configuration options
- Add destination URLs — Add 1-3 URLs where events should be forwarded:
- Click the + button to add a URL field
- Enter a valid
https://orhttp://URL - Click - to remove unwanted URLs
- Copy your secret — A forwarding secret is automatically generated:
- Displayed as masked text:
XXXX...XXXX - Click the copy button to copy it
- Click reset to generate a new secret anytime
- Displayed as masked text:
- Save your webhook — Future events will be automatically forwarded
URL Requirements
- Format: Must be a valid HTTP or HTTPS URL
- Prefix: Must start with
http://orhttps:// - Count: Enter 1-3 URLs (fields can be left empty)
- Length: Each URL must be 2,048 characters or less
https://zapier.com/hooks/catch/123456/abchttps://api.myapp.com/webhooks/eventshttps://example.com/webhook?token=abc123http://localhost:3000/webhook(for local testing)
Secret Key Management
The Forward Secret is your security credential used to sign every forwarded request.- Auto-Generated: When you enable Forwarding, Hookr automatically generates a secure random secret
- Displayed Masked: Shown as
XXXX...XXXX(first and last 6 characters visible) - Copy & Share: Click the copy button and share it with services receiving your webhooks
- Reset Anytime: Click reset to generate a new secret (old secret stops working immediately)
- Treat Like a Password: Never share your secret publicly or commit it to version control
Security & Verification
Why Verify Signatures?
Every forwarded request includes a cryptographic signature. This allows your external service to verify:- Authenticity — The request actually came from Hookr (not spoofed)
- Integrity — The payload hasn’t been tampered with during transmission
How Signatures Work
Hookr includes these headers with every forwarded request:Verification Methods
You can verify signatures in two ways:- Body Signature (Recommended) — Verify the HMAC of the entire request body
- Timestamp Signature — Verify the HMAC of just the timestamp (for GET requests or when body verification isn’t possible)
Code Examples: Signature Verification
Body Signature Verification
This is the standard method for verifying POST requests with a body.Timestamp Signature Verification
For requests without a body (like GET requests) or as an additional security check, verify the timestamp signature.Best Practices
Security
- Always verify signatures — Never process forwarded events without verifying the signature
- Treat secrets like passwords — Don’t share them in Slack, email, or commit to version control
- Rotate secrets periodically — Generate a new secret every 6-12 months
- Rotate if exposed — If you accidentally leak a secret, reset it immediately
- Use HTTPS — Always use
https://URLs for forwarding (neverhttp://in production) - Check timestamps — Reject requests with timestamps older than 5 minutes to prevent replay attacks
Performance
- Set timeouts — Configure your external service with reasonable timeouts (Hookr waits 30 seconds maximum)
- Return quickly — Have your endpoint return a response quickly; do heavy processing asynchronously
- Monitor forwarding history — Check the Events list to track delivery success rates
Testing
- Test before enabling — Send test events to verify your external service receives and processes them correctly
- Use local tunneling — Tools like ngrok let you test forwarding to your local development server
- Check forwarding history — Review response codes and bodies in the event details to debug issues
Viewing Forwarding History
Where to Find It
- Open the Events tab in your Hookr app
- Tap on any event from a webhook with Forwarding enabled
- Scroll to the Forwarding History section