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:| Use Case | Example |
|---|---|
| Multiple Integrations | Event source has one webhook URL, but you need both Zapier AND a custom API to receive it |
| Automation Workflows | Forward form submissions to Zapier, Make, or IFTTT for workflow automation |
| Data Distribution | Send the same event to multiple logging, analytics, or monitoring services |
| Audit Trails | Forward events to an external system that maintains compliance audit logs |
| Partner Integration | Send data to a partner’s API while keeping Hookr for your mobile notifications |
| Backup & Redundancy | Send critical events to multiple endpoints for reliability |
| Custom Processing | Forward to your own server for custom business logic or data transformation |
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 Happens | Normal Webhook | Webhook with Forwarding |
|---|---|---|
| Event received | ✅ | ✅ |
| Notification sent | ✅ | ✅ |
| Event stored in database | ✅ | ✅ |
| Data forwarded to external URLs | ❌ | ✅ |
| Cryptographic signature included | ❌ | ✅ |
| Forwarding history recorded | ❌ | ✅ |
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:| Header | Example | Purpose |
|---|---|---|
X-Hookr-Signature | sha256=abc123... | HMAC SHA256 signature of the request body |
X-Hookr-Timestamp | 1738243200 | Unix timestamp when the request was sent |
Content-Type | application/json | Indicates the payload format |
User-Agent | Hookr/1.0 | Identifies the request came from Hookr |
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
What You See
Each forwarded URL shows:| Item | Description |
|---|---|
| Status Badge | Color-coded: 🟢 Green (2xx success), 🟡 Yellow (3xx redirect), 🔵 Blue (4xx client error), 🔴 Red (5xx server error) |
| URL | The destination URL this event was forwarded to |
| Status Code | HTTP response code (200, 404, 500, etc.) |
| Duration | Request execution time in milliseconds |
| Response Body | Response from the external service (expandable) |
| Content-Type | The content type of the response |