Flow Overview
hookVM Flow is your complete solution for receiving, processing, and routing incoming webhooks from external services.
What is Flow?
Flow transforms complex webhook receiving into a simple, reliable process. Instead of building custom infrastructure to handle webhooks from Stripe, GitHub, Shopify, and dozens of other services, Flow provides everything you need out of the box.
In Simple Terms: Flow receives webhooks for you, verifies they're legitimate, and forwards them to your application with powerful transformation and routing capabilities.
The Problem
Without Flow
Building webhook infrastructure is harder than it looks:
Common Challenges:
- ❌ Signature Verification: Each provider uses different signing methods
- ❌ Payload Formats: Every service sends data differently
- ❌ Error Handling: Webhooks fail, and you need retry logic
- ❌ Monitoring: Hard to debug when things go wrong
- ❌ Scaling: More webhooks = more infrastructure
- ❌ Security: Exposing endpoints, managing secrets
With Flow
Flow handles all the complexity:
What Flow Does:
- ✅ Automatic Verification: Built-in signature verification for 50+ providers
- ✅ Unified Format: Consistent payload structure
- ✅ Smart Routing: Send webhooks to multiple destinations
- ✅ Transformations: Modify payloads with JavaScript
- ✅ Automatic Retries: Exponential backoff built-in
- ✅ Real-time Monitoring: See every webhook in real-time
How Flow Works
1. Create Endpoint
Create a unique webhook endpoint for each integration:
https://hooks.hookvm.com/abc123-def456-ghi789
Features:
- Auto-generated unique URLs
- Optional signature verification
- Configurable retention (1-60 days)
- Source type selection (Stripe, GitHub, etc.)
2. Configure Relay Rules
Define where and how to forward webhooks:
Capabilities:
- Filters: Route based on payload content
- Transformations: Modify payloads with JavaScript
- Multiple Destinations: Fan-out to multiple services
- Retry Logic: Automatic retries with exponential backoff
- Signatures: Add HMAC signatures for security
3. Monitor & Debug
Track every webhook in real-time:
- Requests: See all incoming webhooks
- Relay Logs: Monitor delivery attempts
- Filters: Find specific requests quickly
- Replay: Manually retry failed deliveries
Key Features
Automatic Signature Verification
Flow automatically verifies webhook signatures from popular providers:
// Without Flow - Manual verification
const crypto = require('crypto');
const signature = req.headers['stripe-signature'];
const secret = process.env.STRIPE_SECRET;
// ... complex verification logic
// With Flow - Automatic
// Just receive the webhook, Flow already verified it!
Supported Providers:
- Stripe
- GitHub
- Shopify
- Slack
- Twilio
- And 50+ more
Powerful Transformations
Transform webhooks with JavaScript before forwarding:
// Transform Stripe webhook to your format
const transformedPayload = {
event_type: webhook.type,
payment_id: webhook.data.object.id,
amount_dollars: webhook.data.object.amount / 100,
customer_email: webhook.data.object.receipt_email,
processed_at: new Date().toISOString()
};
return transformedPayload;
Use Cases:
- Normalize different webhook formats
- Extract only needed fields
- Add calculated fields
- Enrich with additional data
Smart Filtering
Route webhooks based on content:
// Only forward successful payments over $100
Filters:
- Field: body.type
Operator: Equals
Value: payment_intent.succeeded
- Field: body.data.object.amount
Operator: Greater Than
Value: 10000
Filter Types:
- Equals, Contains, Greater Than, Less Than, Exists
- Match ALL or ANY conditions
- Access body, headers, query params
Fan-Out Routing
Send one webhook to multiple destinations:
Use Cases:
- Notify multiple microservices
- Send to production and staging
- Backup to data warehouse
- Trigger multiple workflows
Automatic Retries
Never miss a webhook with smart retry logic:
Attempt 1: Immediate
Attempt 2: After 1 second
Attempt 3: After 2 seconds
Attempt 4: After 4 seconds
Attempt 5: After 8 seconds
Features:
- Exponential backoff
- Configurable retry count (1-10)
- Retry only on 5xx errors
- Track all attempts
Common Use Cases
E-commerce Integration
Scenario: Receive Shopify webhooks and update inventory
Setup:
- Create endpoint with Shopify source type
- Add relay rule to inventory API
- Add transformation to extract SKUs
- Add relay rule to email service
- Monitor deliveries
Payment Processing
Scenario: Handle Stripe payment webhooks
Setup:
- Create endpoint with Stripe source type
- Add filter for high-value payments
- Route to different services based on amount
- Transform to internal format
- Monitor success rates
Multi-Service Aggregation
Scenario: Collect webhooks from multiple services
Setup:
- Create endpoints for each service
- Transform all to unified format
- Route to central handler
- Process in consistent way
- Monitor all in one place
Getting Started
Quick Start (5 minutes)
-
Create Endpoint
Navigate to Flow → Endpoints → Create Endpoint
Select source type (e.g., Stripe)
Copy webhook URL -
Configure in Service
Go to Stripe Dashboard → Webhooks
Add endpoint: https://hooks.hookvm.com/your-id
Select events to send -
Add Relay Rule
Navigate to endpoint → Relay Rules → Create
Enter destination URL
Configure retries
Save -
Test
Send test webhook from Stripe
View in Flow → Requests
Check delivery in Relay Logs
Next Steps
- Creating Endpoints - Detailed endpoint setup
- Relay Rules - Configure routing and transformations
- Viewing Requests - Monitor incoming webhooks
- Relay Logs - Debug delivery issues
Benefits
For Developers
✅ Save Time: No infrastructure to build
✅ Focus on Logic: Write business code, not webhook handling
✅ Easy Debugging: Real-time monitoring and replay
✅ Reliable: Automatic retries and error handling
For Teams
✅ Centralized: All webhooks in one place
✅ Scalable: Handle millions of webhooks
✅ Secure: Automatic signature verification
✅ Observable: Complete visibility into webhook flow
For Businesses
✅ Faster Integration: Connect services in minutes
✅ Lower Costs: No infrastructure to maintain
✅ Higher Reliability: Built-in retry and monitoring
✅ Better Security: Industry-standard verification
Architecture
How Flow Processes Webhooks
Data Flow
- Receive: Webhook arrives at Flow endpoint
- Verify: Signature checked (if configured)
- Store: Request saved for retention period
- Filter: Relay rules evaluated
- Transform: JavaScript transformations applied
- Forward: Sent to destination(s)
- Retry: Automatic retries on failure
- Monitor: All steps logged and visible
Comparison
Flow vs Building Your Own
| Feature | Flow | Build Your Own |
|---|---|---|
| Setup Time | 5 minutes | Days/weeks |
| Signature Verification | Automatic | Manual for each provider |
| Retry Logic | Built-in | Build yourself |
| Monitoring | Real-time UI | Build dashboards |
| Transformations | JavaScript editor | Write custom code |
| Scaling | Automatic | Provision servers |
| Maintenance | Zero | Ongoing |
| Cost | $0-$99/month | Infrastructure + dev time |
Ready to Start?
Flow makes webhook receiving simple, reliable, and powerful.
Questions? Check our troubleshooting guide or contact support.