Tutorials guide · 8 min read

Multi-Step CRM Webhooks on Make.com

A developer guide to parsing call webhooks, matching Salesforce or HubSpot contacts, and generating Outlook appointments automatically.

M
Marc L. Published on June 10, 2026

Are you sure you're in the right place?

This article relates directly to configurations analyzed in our Cloud Automation Guide. Read the guide to find comparison checklists and step-by-step setup strategies.

Visit Our Guide →

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.

Tired of complexity?

Avoid complicated server webhooks, API limits, and monthly automation bills. Discover how to capture client details instantly using a local, native app solution.

Start Now with a Native App Solution