While off-the-shelf integration plugins are convenient, they are often rigid. If your scheduling pipeline requires multi-step routing, such as searching for a caller in HubSpot, notifying a specific account owner on Slack, checking availability, and creating an Outlook calendar event only for qualified leads, standard plug-and-play tools fall short.
In these advanced use cases, developers and operations teams rely on cloud workflows (like Make.com or n8n) connected to telephony webhooks.
This developer tutorial explains how to capture call-state event webhooks and build a reliable, secure scheduling pipeline.
The Webhook Lifecycle
When a call completes, your VoIP softphone provider sends an HTTP POST request to a designated endpoint URL. The request payload contains a structured JSON object detailing:
- The caller and receiver numbers.
- The call state (
completed). - The call timestamp and duration.
- Call recording links or notes.
Your middleware listener captures this payload, validates it, and triggers downstream CRM integrations.
Setting Up the Make.com Scenario
Here is how to design the visual workflow step-by-step:
Step 1: Add a Webhook Trigger Node
Add a Custom Webhook module. Make.com will generate a unique URL endpoint. Paste this URL into your VoIP system’s webhook configuration console under the call.completed event topic. Run a test call to capture the JSON metadata structure.
Step 2: Search HubSpot Contacts
Add a HubSpot module. Configure it to search for contacts matching the caller_number variable.
- If a contact is found: Retrieve the contact ID and the designated Account Executive (AE) email.
- If no contact is found: Create a new lead profile, flag it as “Incoming Lead via Call,” and set the status to “unassigned.”
Step 3: Create the Calendar Block
Add a Microsoft Outlook Calendar module.
- Map the event Title dynamically to:
Client Discussion: {HubSpot Contact Name} ({caller_number}). - Map the Start Time to the call end timestamp.
- Map the Organizer to the Account Executive’s email.
- Save the scenario and enable the webhook toggle.
Security: Implement HMAC Signature Verification
To prevent malicious scripts from flooding your webhooks with fake entries, always implement security headers. Most VoIP systems sign payloads using a shared secret.
Configure your listener module to compute a SHA256 HMAC of the request body and verify it matches the X-VoIP-Signature header before running your workflow.