What Is a Webhook? (Plain English)
Non-technical explanation of webhooks with visual diagrams. Referenced when book says 'refer back to the resource website.'
What Is a Webhook WebhookClick to read the full definition in our AI & Automation Glossary.? (Plain English)
A webhook
Here's the difference: When you check your email, you're asking "Do I have new messages?" That's polling. A webhook
For professional services firms, webhooks
How Webhooks WebhooksClick to read the full definition in our AI & Automation Glossary. Actually Work
Three things happen in every webhook
1. Event Trigger
Something happens in Application A. A form gets submitted. A payment clears. A document gets signed. The application is programmed to watch for this specific event.
2. HTTP POST Request
Application A immediately sends an HTTP POST request to a URL you've configured. This request contains a JSON payload with data about what just happened. The request goes out within milliseconds of the trigger event.
3. Receiver Processes Data
Application B receives the POST request at that URL, reads the JSON payload, and executes whatever logic you've programmed. Update a database record. Send an email. Create a task. The receiver sends back a 200 status code to confirm receipt.
If the receiver doesn't respond or returns an error, most webhook
Real Example: Client Intake Automation
You run a 12-person accounting firm. A prospect fills out your "Request a Consultation" form on your website. Here's what happens with webhooks
Trigger Event: Form submission in Typeform
Webhook
{
"event_type": "form_response",
"form_response": {
"answers": [
{"field": "name", "text": "Sarah Chen"},
{"field": "email", "text": "sarah@techstartup.com"},
{"field": "company", "text": "TechStartup Inc"},
{"field": "revenue", "text": "$2M-$5M"},
{"field": "services_needed", "text": "Tax planning, bookkeeping"}
]
}
}
Zapier Processes: Your Zap reads this payload and triggers three actions:
- Creates contact in HubSpot CRMwith revenue tier tagCRMClick to read the full definition in our AI & Automation Glossary.
- Sends Slack message to #new-leads channel with prospect details
- Creates draft engagement letter in Practice Ignition with pre-filled client name and services
Total time: 4 seconds from form submit to engagement letter ready for review.
Manual alternative: Your admin checks the form responses spreadsheet twice daily, copies data into HubSpot, messages the team, then creates the engagement letter. Time: 15 minutes per lead. Error rate: 12% (typos, forgotten steps).
Webhook WebhookClick to read the full definition in our AI & Automation Glossary. Anatomy: What You're Actually Configuring
When you set up a webhook
Webhook
The destination address where the POST request gets sent. Format: https://hooks.zapier.com/hooks/catch/123456/abcdef/
This URL must be publicly accessible over HTTPS. Most automation platforms (Zapier, Make, Power Automate) give you a unique webhook
Payload Structure
The JSON data package sent with each webhook
Example payload from Stripe when a payment succeeds:
{
"id": "evt_1234567890",
"type": "payment_intent.succeeded",
"data": {
"object": {
"amount": 5000,
"currency": "usd",
"customer": "cus_ABC123",
"receipt_email": "client@lawfirm.com"
}
}
}
Authentication Method
How the receiver verifies the webhook
- Shared Secret: Sender includes a pre-agreed token in the request header. You verify it matches.
- Signature Verification: Sender creates a hash of the payload using a secret key. You recreate the hash and compare.
- IP Allowlisting: You only accept webhooksfrom the sender's known IP addresses.webhooksClick to read the full definition in our AI & Automation Glossary.
Stripe uses signature verification. Every webhookX-Stripe-Signature header. Your code must verify this signature matches before processing the payload.
Retry Logic
What happens when delivery fails. Standard pattern:
- Attempt 1: Immediate
- Attempt 2: 1 minute later
- Attempt 3: 10 minutes later
- Attempt 4: 1 hour later
- Attempt 5: 6 hours later
After 5 failures, most systems stop trying and log the failure. You should monitor these logs.
Setting Up Your First Webhook WebhookClick to read the full definition in our AI & Automation Glossary. (Zapier Example)
Step 1: Create the Trigger
In Zapier, create a new Zap. Select "Webhookshttps://hooks.zapier.com/hooks/catch/987654/xyz123/
Step 2: Configure the Sender
In your source application (the one sending the webhook
For Typeform: Settings > Integrations > Webhooks
Step 3: Test the Connection
Trigger a test event in your source application. Submit a test form. Make a test purchase. Whatever action fires the webhook
Back in Zapier, click "Test trigger." Zapier should show you the JSON payload it received. If you see data, the webhook
Step 4: Map the Data
Add action steps to your Zap. When mapping fields, you'll see the webhookname from the webhook
Step 5: Handle Errors
Add a filter step to check for required data. If email is empty, stop the Zap and send yourself an alert. Don't let incomplete data pollute your systems.
Turn on error notifications in Zapier settings. You'll get emailed when a Zap fails, with the payload that caused the failure.
Common Webhook WebhookClick to read the full definition in our AI & Automation Glossary. Failures (And Fixes)
Timeout Errors
Your receiving endpoint must respond within 30 seconds or the sender assumes failure. If your automation takes longer (complex data processing, multiple API
Fix: Use a queue system. Acknowledge receipt instantly, add the job to a processing queue, handle it in the background.
Duplicate Webhooks
Network issues can cause the same webhook
Fix: Check for a unique identifier in the payload (event_id, transaction_id). Before processing, verify you haven't already processed this ID. Store processed IDs in a database table.
Payload Changes
The sending application updates their webhookcustomer_name but now receives client_name.
Fix: Version your webhookhttps://yourapp.com/webhooks/v1/stripe and https://yourapp.com/webhooks/v2/stripe. When the sender changes formats, update to v2 without breaking v1.
Authentication Failures
Signature verification fails. Shared secret doesn't match.
Fix: Check for whitespace in your secret key. Verify you're using the correct hashing algorithm (SHA256 vs MD5). Confirm you're hashing the raw request body, not parsed JSON.
Polling: Your application asks "Anything new?" every 5 minutes. Like checking your mailbox repeatedly.
- Uses: 288 APIcalls per day (every 5 minutes)APIClick to read the full definition in our AI & Automation Glossary.
- Latency: Up to 5 minutes delay
- Cost: High APIusage, rate limit concernsAPIClick to read the full definition in our AI & Automation Glossary.
- Server load: Constant requests even when nothing happens
Webhooks
- Uses: 1 webhookper actual eventwebhookClick to read the full definition in our AI & Automation Glossary.
- Latency: Under 1 second
- Cost: Minimal, pay only for real events
- Server load: Zero load until events occur
For a firm processing 50 new client intakes per month, polling means 14,400 wasted API
Security Checklist
Before going live with webhooks
- [ ] Use HTTPS only, never HTTP
- [ ] Verify webhooksignatures or tokens on every requestwebhookClick to read the full definition in our AI & Automation Glossary.
- [ ] Validate payload structure before processing
- [ ] Sanitize all data before inserting into databases
- [ ] Rate limit webhookendpoints (max 100 requests per minute)webhookClick to read the full definition in our AI & Automation Glossary.
- [ ] Log all webhookactivity with timestamps and payload sampleswebhookClick to read the full definition in our AI & Automation Glossary.
- [ ] Set up alerts for authentication failures
- [ ] Rotate shared secrets every 90 days
- [ ] Restrict webhookURLs to specific IP ranges when possiblewebhookClick to read the full definition in our AI & Automation Glossary.
- [ ] Never expose webhookURLs in public documentationwebhookClick to read the full definition in our AI & Automation Glossary.
When Not to Use Webhooks WebhooksClick to read the full definition in our AI & Automation Glossary.
Webhooks
Bidirectional Sync
If Application A and Application B both need to update each other, webhooks
Large Data Transfers
Webhooks
Guaranteed Delivery Requirements
Webhooks
Complex Transformations
If you need to combine data from 5 different sources before taking action, webhooks
Bottom Line
Webhooks
Start with one high-volume, error-prone manual process. Client intake. Invoice generation. Document routing. Build a webhook
The firms winning on operational efficiency aren't using better software. They're using webhooks

Reviewed by Revenue Institute
This guide is actively maintained and reviewed by the implementation experts at Revenue Institute. As the creators of The AI Workforce Playbook, we test and deploy these exact frameworks for professional services firms scaling without new headcount.
Revenue Institute
Need help turning this guide into reality? Revenue Institute builds and implements the AI workforce for professional services firms.