Make (formerly Integromat) is a visual automation platform that connects dialnote to 2,200+ apps. You can build multi-step workflows—called scenarios—that trigger whenever a call finishes, a recording is ready, or a note gets created. It's a great fit if you want branching logic, data transformation, or more complex automations than simple point-to-point connections.
Connecting dialnote to Make#
dialnote connects to Make through webhooks. You'll set up a webhook in Make that receives real-time data from dialnote whenever events occur. Webhooks are available on the Business and Pro plans.
Here's how to get started:
- In Make, create a new scenario and add a Webhooks module as your trigger
- Choose Custom webhook and click Add to generate a unique webhook URL
- Copy that URL
- In dialnote, go to Settings → Webhook Management
- Click Add Webhook and choose Custom Webhook as the provider
- Paste the Make webhook URL and give it a name (e.g., "Make - Call Automation"), up to 100 characters
- Under Events to send, tick the events you want: Call logs, Call recordings, Call summaries, Inbound SMS, Inbound MMS, Notes
- Click Create Webhook
One webhook, as many events as you want
Events to send is a checkbox list, so one webhook can deliver calls, recordings, inbound texts, and notes together. Branch on the payload's type field inside your Make scenario to route them. The URL must be HTTPS.
Test the connection first
After saving, click the Test button on your webhook in dialnote. This sends a fixed sample payload to Make so you can wire up your scenario without waiting for a real call. Heads up: the test payload uses a different shape (event_type: "test.webhook", test: true) than real events, so map your live fields against an actual call once one comes through.
Building Your First Scenario#
Once the webhook module receives data, you can add any combination of actions and logic. Make's visual editor lets you drag modules onto a canvas and connect them.
Example: Log Calls to Google Sheets and Notify Slack#
This scenario does two things when a call ends: adds a row to a spreadsheet and pings a Slack channel.
- Trigger: Webhooks → Custom webhook (receives dialnote call data)
- Route 1: Google Sheets → Add a Row (map caller number, duration, status, timestamp)
- Route 2: Slack → Create a Message (post a summary to your #calls channel)
Use Make's Router module to split the data into parallel paths. Both actions run at the same time, so there's no delay.
Example: Create CRM Contact After Call#
If a caller isn't already in your CRM, you can auto-create them:
- Trigger: Webhooks → Custom webhook
- Filter: Only proceed if call direction is "inbound"
- Search: HubSpot → Search Contacts by phone number
- Router: If no match found → HubSpot → Create Contact with the caller's number and name
Make's built-in filters save you from creating duplicate contacts. You can add conditions like minimum call duration or specific phone numbers to narrow what triggers downstream actions.
Available Webhook Data#
When dialnote fires a custom webhook, Make receives a JSON envelope you can map to any module:
{
"id": "unique-event-id",
"type": "call.completed",
"timestamp": "2024-01-15T10:30:00Z",
"organizationId": "your-org-id",
"data": {
"phoneNumberId": "01924f8e-1234-7000-8000-000000000002",
"conversationId": "01924f8e-1234-7000-8000-000000000003",
"callId": "01924f8e-1234-7000-8000-000000000004",
"callSid": "CA00000000000000000000000000000001",
"direction": "inbound",
"fromNumber": "+15551234567",
"toNumber": "+15559876543",
"status": "answered",
"duration": 180
}
}
data.status is one of answered, not_picked, failed, voicemail or disconnected — never completed or no-answer. To route missed calls, branch on not_picked or failed. For the dialnote line, use data.phoneNumberId or data.phoneNumber.number; for the other party, use data.fromNumber on inbound calls and data.toNumber on outbound calls.
The type tells you which event fired, and the data object holds the details for that event:
call.completed carries phoneNumberId, conversationId, callId, callSid, direction, fromNumber, toNumber, phoneNumber, status, and createdAt on every delivery. When available it also carries duration, hasRecording, endedBy, fromName, toName, initiatedAt, answeredAt, endedAt, contactId, and failureCode / failureMessage on failed calls.
call.summary.completed carries phoneNumberId, conversationId, and a summary object. summary.status is completed, with text and, when the summarizer produced them, title, keyPoints, actionItems and sentiment. It's not_applicable when there was nothing to summarise, with a failureReason saying why. Match it to the call with summary.callId.
call.recording.completed carries phoneNumberId, conversationId, callId, callSid, direction, fromNumber, toNumber, phoneNumber, and conversationUrl on every delivery. When available it also carries recordingSid, duration, fromName, toName, transcriptionStatus, initiatedAt, endedAt, isVoicemail, recordingUrl, and recordingUrlExpiresAt. There's no status field on this event.
conversationUrl is not an audio file
data.conversationUrl opens the conversation in dialnote. To download the recording audio, use data.recordingUrl, a direct mp3 link that works for 24 hours (until data.recordingUrlExpiresAt). You can also pass data.callId to the API recordings endpoints.
note.created carries phoneNumberId, conversationId, and a note object (id, content, authorId, author, createdAt), plus mentionedUserIds when teammates are @-mentioned. It has no call fields and no contact fields, so use conversationId to tie the note back to a call.
Inbound texts arrive as sms.received / mms.received. Full field tables for every event are in the Webhooks guide.
You can reference any of these fields in later modules. For example, pull data.fromNumber (the caller's number on an inbound call) to look up a contact, or drop data.duration into a formatted Slack message. Note data.phoneNumber is an object ({ id, number }), and both fields describe your dialnote line. For the other party, use data.fromNumber on inbound calls and data.toNumber on outbound calls.
For the full payload reference and signature details, see the Webhooks guide.
Popular Automation Ideas#
Make's strength is multi-step logic. Here are workflows dialnote users build:
- Smart follow-ups: Call ends → check if it lasted under 30 seconds → if yes, send an SMS follow-up through the dialnote API saying "Sorry we missed you"
- Lead scoring: New call recording → send the audio from
recordingUrlto OpenAI for sentiment analysis → update lead score in your CRM - Ticket creation: Missed call → create a support ticket in Jira or Linear with the caller's details
- Daily digests: Schedule a daily scenario that pulls call stats from a Google Sheet (populated by another scenario) and emails a summary to your team
Webhook security
dialnote signs every custom webhook payload with an HMAC-SHA256 signature in the X-DialNote-Signature header (formatted sha256=...). You can verify this in Make using a custom function module to confirm payloads are authentic. Your webhook secret (starting with whsec_) is shown in Settings → Webhook Management next to each endpoint. The secret can't be regenerated from the app — delete and recreate the webhook if you need a new one.
Troubleshooting#
If your Make scenario isn't receiving data, check these common issues:
- Webhook paused in dialnote: After 3 deliveries in a row fail every retry, or after a single
410 Goneresponse, dialnote auto-disables the webhook. Go to Settings → Webhook Management and click Enable once you've fixed the cause. - Scenario turned off in Make: Make won't process incoming webhooks if the scenario is inactive. Toggle it on in the scenario editor.
- Event not ticked: A webhook only sends what's ticked under Events to send. If recordings never arrive, confirm Call recordings is checked and that recording is enabled on the number.
- Slow endpoint: Your scenario must accept the payload within 30 seconds, or dialnote counts it as a failure.
Failed deliveries are retried
If Make is unreachable or your scenario takes longer than 30 seconds to accept the payload, dialnote retries the delivery up to 7 more times over about 4 days (after 15 min, 45 min, 2 h, 5 h, 12 h, 24 h, and 48 h). A delivery that fails every attempt is kept for 30 days under Failed deliveries in Settings → Webhook Management, where you can replay or discard it. Every attempt carries the same X-DialNote-Delivery-Id header, so your scenario can skip duplicates.
For scenarios you can't afford to miss an event in, accept the webhook immediately and do the heavy processing in later modules.
Each webhook card in Settings → Webhook Management shows the last delivery time, consecutive failure count, and the most recent error message.
What's Next#
- Webhooks — full payload reference, signature verification, and webhook management
- Zapier — a built-in, no-code path to 5,000+ apps
- n8n — another visual automation tool that accepts dialnote webhooks
- CRM integrations — push call activity to HubSpot, Salesforce, or Pipedrive without a custom endpoint
The full list of tools dialnote connects to is on the integrations page.