{"id":2146,"date":"2025-11-15T15:22:45","date_gmt":"2025-11-15T09:52:45","guid":{"rendered":"https:\/\/www.smsgatewaycenter.com\/blog\/?post_type=docs&#038;p=2146"},"modified":"2025-11-15T15:22:51","modified_gmt":"2025-11-15T09:52:51","password":"","slug":"configure-whatsapp-default-response-webhooks","status":"publish","type":"docs","link":"https:\/\/www.smsgatewaycenter.com\/blog\/kb\/configure-whatsapp-default-response-webhooks\/","title":{"rendered":"Configuring Default Response Webhooks in WhatsApp Business API"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Webhooks for WhatsApp Default Response Configuration allow you to receive real-time notifications when default responses are sent to customers. This enables integration with your CRM systems, logging platforms, analytics tools, and custom business applications.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What is a Webhook?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A webhook is an HTTP callback that sends data to a specified URL when a specific event occurs. In the context of default responses, the webhook is triggered automatically when a default response message is sent to a customer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Benefits of Using Webhooks:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Real-time Notifications:<\/strong>&nbsp;Get instant alerts when default responses are sent<\/li>\n\n\n\n<li><strong>CRM Integration:<\/strong>&nbsp;Automatically log interactions in your CRM system<\/li>\n\n\n\n<li><strong>Analytics Tracking:<\/strong>&nbsp;Track default response usage and effectiveness<\/li>\n\n\n\n<li><strong>Custom Processing:<\/strong>&nbsp;Trigger additional business logic based on default responses<\/li>\n\n\n\n<li><strong>Audit Trail:<\/strong>&nbsp;Maintain comprehensive logs of all default response activities<\/li>\n\n\n\n<li><strong>Automation:<\/strong>&nbsp;Integrate with workflow automation tools<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How to Configure Webhooks<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 1: Prepare Your Webhook Endpoint<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before configuring the webhook in the platform, ensure you have:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>A publicly accessible URL endpoint<\/li>\n\n\n\n<li>HTTPS enabled (required for security)<\/li>\n\n\n\n<li>Server capable of receiving POST requests<\/li>\n\n\n\n<li>Proper authentication mechanism (recommended)<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example Webhook URL:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;yourdomain.com\/webhooks\/whatsapp-default-response\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 2: Configure Webhook in Default Response Setup<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Navigate to&nbsp;<strong>WhatsApp &gt; Default Response Configuration &gt; Add\/Edit<\/strong><\/li>\n\n\n\n<li>Scroll to the&nbsp;<strong>Default Message Webhook<\/strong>&nbsp;field<\/li>\n\n\n\n<li>Enter your webhook URL in the format:&nbsp;<code>https:\/\/example.com\/myscript\/<\/code><\/li>\n\n\n\n<li>Ensure the URL:\n<ul class=\"wp-block-list\">\n<li>Starts with&nbsp;<code>https:\/\/<\/code><\/li>\n\n\n\n<li>Is publicly accessible<\/li>\n\n\n\n<li>Can receive POST requests<\/li>\n\n\n\n<li>Has proper SSL certificate<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 3: Webhook URL Format<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Correct Format:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:&#47;&#47;example.com\/webhook-handler\/\nhttps:\/\/api.yourcompany.com\/whatsapp\/default-response\nhttps:\/\/yourdomain.com\/hooks\/wa-default\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Incorrect Format:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:\/\/example.com\/webhook (HTTP not allowed)\nexample.com\/webhook (Missing protocol)\nlocalhost\/webhook (Not publicly accessible)\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 4: Test Your Webhook<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After saving the configuration, test your webhook:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Trigger a default response by sending a test message<\/li>\n\n\n\n<li>Check your webhook endpoint logs<\/li>\n\n\n\n<li>Verify the data received matches expected format<\/li>\n\n\n\n<li>Ensure your server responds with HTTP 200 status<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Webhook Payload Structure<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When a default response is sent, your webhook will receive a POST request with JSON data. The exact structure may vary, but typically includes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"event\": \"default_response_sent\",\n  \"timestamp\": \"2025-10-09T12:34:56Z\",\n  \"waba_number\": \"+1234567890\",\n  \"recipient\": \"+0987654321\",\n  \"message_type\": \"text\",\n  \"message_content\": \"Your default response message\",\n  \"message_id\": \"wamid.xxx\",\n  \"user_id\": 12345,\n  \"config_id\": 67890\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Webhook Security Best Practices<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Use HTTPS:<\/strong>&nbsp;Always use encrypted connections<\/li>\n\n\n\n<li><strong>Implement Authentication:<\/strong>&nbsp;Use API keys, tokens, or signatures<\/li>\n\n\n\n<li><strong>Validate Requests:<\/strong>&nbsp;Verify webhook requests are from legitimate sources<\/li>\n\n\n\n<li><strong>Rate Limiting:<\/strong>&nbsp;Implement rate limiting to prevent abuse<\/li>\n\n\n\n<li><strong>Error Handling:<\/strong>&nbsp;Handle errors gracefully and log failures<\/li>\n\n\n\n<li><strong>IP Whitelisting:<\/strong>&nbsp;Restrict access to known IP addresses (if possible)<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example Webhook Handler (PHP)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\/\/ webhook-handler.php\n\n\/\/ Verify request (add your authentication logic)\n$apiKey = $_SERVER&#91;'HTTP_X_API_KEY'] ?? '';\nif ($apiKey !== 'your-secret-api-key') {\n    http_response_code(401);\n    exit('Unauthorized');\n}\n\n\/\/ Get webhook data\n$data = json_decode(file_get_contents('php:\/\/input'), true);\n\n\/\/ Log the webhook\nerror_log('Default Response Webhook: ' . json_encode($data));\n\n\/\/ Process the webhook\nif (isset($data&#91;'event']) &amp;&amp; $data&#91;'event'] === 'default_response_sent') {\n    \/\/ Your business logic here\n    \/\/ e.g., Update CRM, send notification, etc.\n}\n\n\/\/ Respond to webhook\nhttp_response_code(200);\necho json_encode(&#91;'status' =&gt; 'success']);\n?&gt;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example Webhook Handler (Node.js)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ webhook-handler.js\nconst express = require('express');\nconst app = express();\n\napp.use(express.json());\n\napp.post('\/webhook\/default-response', (req, res) =&gt; {\n  \/\/ Verify authentication\n  const apiKey = req.headers&#91;'x-api-key'];\n  if (apiKey !== 'your-secret-api-key') {\n    return res.status(401).send('Unauthorized');\n  }\n\n  \/\/ Process webhook data\n  const data = req.body;\n  console.log('Default Response Webhook:', data);\n\n  \/\/ Your business logic here\n  \/\/ e.g., Update database, trigger workflow, etc.\n\n  \/\/ Respond\n  res.status(200).json({ status: 'success' });\n});\n\napp.listen(3000, () =&gt; {\n  console.log('Webhook server running on port 3000');\n});\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Common Use Cases<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. CRM Integration:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Log customer interactions automatically<\/li>\n\n\n\n<li>Update customer records with conversation history<\/li>\n\n\n\n<li>Trigger follow-up tasks in CRM<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2. Analytics and Reporting:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Track default response usage statistics<\/li>\n\n\n\n<li>Measure response effectiveness<\/li>\n\n\n\n<li>Generate automated reports<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3. Notification Systems:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Send alerts to team members<\/li>\n\n\n\n<li>Notify managers of customer interactions<\/li>\n\n\n\n<li>Integrate with Slack, Teams, or email<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4. Business Logic Automation:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Trigger additional workflows<\/li>\n\n\n\n<li>Update inventory systems<\/li>\n\n\n\n<li>Sync with e-commerce platforms<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5. Audit and Compliance:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Maintain comprehensive logs<\/li>\n\n\n\n<li>Ensure regulatory compliance<\/li>\n\n\n\n<li>Track all customer communications<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Troubleshooting Webhook Issues<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Issue: Webhook not receiving requests<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Check:<\/strong>&nbsp;Verify URL is publicly accessible and HTTPS enabled<\/li>\n\n\n\n<li><strong>Check:<\/strong>&nbsp;Ensure firewall allows incoming connections<\/li>\n\n\n\n<li><strong>Check:<\/strong>&nbsp;Test URL manually with a POST request<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Issue: 401\/403 Errors<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Check:<\/strong>&nbsp;Verify authentication credentials<\/li>\n\n\n\n<li><strong>Check:<\/strong>&nbsp;Ensure API keys\/tokens are correct<\/li>\n\n\n\n<li><strong>Check:<\/strong>&nbsp;Review server access logs<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Issue: Timeout Errors<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Check:<\/strong>&nbsp;Ensure webhook responds within timeout period<\/li>\n\n\n\n<li><strong>Check:<\/strong>&nbsp;Optimize webhook processing time<\/li>\n\n\n\n<li><strong>Check:<\/strong>&nbsp;Consider asynchronous processing<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Issue: Invalid Data Format<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Check:<\/strong>&nbsp;Verify JSON parsing logic<\/li>\n\n\n\n<li><strong>Check:<\/strong>&nbsp;Handle missing or unexpected fields<\/li>\n\n\n\n<li><strong>Check:<\/strong>&nbsp;Validate data structure<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Testing Your Webhook<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Manual Testing:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Use tools like Postman or cURL<\/li>\n\n\n\n<li>Send test POST requests to your endpoint<\/li>\n\n\n\n<li>Verify response handling<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Logging:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Enable detailed logging<\/li>\n\n\n\n<li>Monitor webhook requests<\/li>\n\n\n\n<li>Track errors and failures<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Monitoring:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Set up alerts for webhook failures<\/li>\n\n\n\n<li>Monitor response times<\/li>\n\n\n\n<li>Track success rates<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Best Practices:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Always Use HTTPS:<\/strong>&nbsp;Security is paramount<\/li>\n\n\n\n<li><strong>Implement Retry Logic:<\/strong>&nbsp;Handle temporary failures<\/li>\n\n\n\n<li><strong>Validate Data:<\/strong>&nbsp;Verify webhook payload structure<\/li>\n\n\n\n<li><strong>Log Everything:<\/strong>&nbsp;Maintain comprehensive logs<\/li>\n\n\n\n<li><strong>Monitor Performance:<\/strong>&nbsp;Track webhook response times<\/li>\n\n\n\n<li><strong>Error Handling:<\/strong>&nbsp;Gracefully handle all error scenarios<\/li>\n\n\n\n<li><strong>Documentation:<\/strong>&nbsp;Document your webhook endpoints<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Next Steps:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After configuring webhooks, learn about managing and updating your default response configurations in our &#8220;<a href=\"https:\/\/www.smsgatewaycenter.com\/blog\/kb\/manage-whatsapp-default-response-configurations\/\">Managing Default Response Configurations<\/a>&#8221; guide.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Webhooks for WhatsApp Default Response Configuration allow you to receive real-time notifications when default responses are sent to customers. This enables integration with your CRM systems, logging platforms, analytics tools, and custom business applications. What is a Webhook? A webhook is an HTTP callback that sends data to a specified URL when a specific event [&hellip;]<\/p>\n","protected":false},"author":118,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[1795],"doc_tag":[],"class_list":["post-2146","docs","type-docs","status-publish","hentry","doc_category-default-response"],"year_month":"2026-07","word_count":905,"total_views":0,"reactions":{"happy":0,"normal":0,"sad":0},"author_info":{"name":"admin","author_nicename":"admin","author_url":"https:\/\/www.smsgatewaycenter.com\/blog\/author\/admin\/"},"doc_category_info":[{"term_name":"Default Response","term_url":"https:\/\/www.smsgatewaycenter.com\/blog\/kb-cat\/default-response\/"}],"doc_tag_info":[],"_links":{"self":[{"href":"https:\/\/www.smsgatewaycenter.com\/blog\/wp-json\/wp\/v2\/docs\/2146","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.smsgatewaycenter.com\/blog\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.smsgatewaycenter.com\/blog\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.smsgatewaycenter.com\/blog\/wp-json\/wp\/v2\/users\/118"}],"replies":[{"embeddable":true,"href":"https:\/\/www.smsgatewaycenter.com\/blog\/wp-json\/wp\/v2\/comments?post=2146"}],"version-history":[{"count":0,"href":"https:\/\/www.smsgatewaycenter.com\/blog\/wp-json\/wp\/v2\/docs\/2146\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.smsgatewaycenter.com\/blog\/wp-json\/wp\/v2\/media?parent=2146"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/www.smsgatewaycenter.com\/blog\/wp-json\/wp\/v2\/doc_category?post=2146"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.smsgatewaycenter.com\/blog\/wp-json\/wp\/v2\/doc_tag?post=2146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}