# Make.com Integration > Connect LinkTime to 1000+ apps using Make.com (formerly Integromat) and webhooks. > Source: https://linktime.io/docs/automation/make > Last updated: February 2026 ## Overview LinkTime webhooks allow you to receive real-time notifications when bookings are created, cancelled, rescheduled, or paid. Combined with Make.com, you can automate workflows like: - Add new invitees to your CRM (HubSpot, Salesforce, Pipedrive) - Send Slack or Teams notifications for new bookings - Create tasks in Asana, Notion, or Monday.com - Add contacts to email lists (Mailchimp, ConvertKit) - Log meeting activity in spreadsheets ## Step 1: Create a Webhook in LinkTime 1. **Go to Webhooks Settings** - Navigate to Settings -> Webhooks in your LinkTime dashboard. 2. **Click "Create Webhook"** - You'll need to provide a URL (we'll get this from Make.com in Step 2) and select which events to receive. 3. **Copy the Webhook Secret** - After creation, you'll see the webhook secret once. Save it somewhere secure -- you'll need it to verify webhook signatures (optional but recommended). ## Step 2: Set Up Make.com Scenario 1. **Create a New Scenario** - Log in to [Make.com](https://www.make.com) and create a new scenario. 2. **Add a "Custom Webhook" Trigger** - Search for "Webhooks" in the app list and select "Custom webhook". Click "Add" to create a new webhook. 3. **Copy the Webhook URL** - Make.com will generate a unique URL like `https://hook.make.com/abc123...` 4. **Paste URL in LinkTime** - Go back to LinkTime and paste this URL when creating your webhook. Save the webhook. 5. **Send a Test Webhook** - In LinkTime, click the "Test" button on your webhook. This sends a sample payload to Make.com, which will automatically detect the data structure. ## Available Webhook Events | Event | Description | |-------|-------------| | `booking.created` | Triggered when a new booking is confirmed | | `booking.cancelled` | Triggered when a booking is cancelled | | `booking.rescheduled` | Triggered when a booking is moved to a new time | | `payment.received` | Triggered when payment is completed for a paid booking | | `contact.created` | Triggered when a new contact is added (from booking or manually) | ## Webhook Payload Structure All webhook payloads follow this structure. You can use these fields in Make.com to map data to other apps. ```json { "event": "booking.created", "timestamp": "2026-02-06T15:30:00.000Z", "data": { "id": "clx123abc...", "eventType": { "id": "clx456def...", "name": "30 Minute Meeting", "slug": "30-min", "duration": 30 }, "startTime": "2026-02-07T14:00:00.000Z", "endTime": "2026-02-07T14:30:00.000Z", "status": "CONFIRMED", "invitee": { "name": "John Doe", "email": "john@example.com", "timezone": "America/New_York" }, "host": { "id": "usr_abc123", "name": "Jane Smith", "email": "jane@company.com" }, "meetingLink": "https://meet.google.com/abc-xyz-123", "location": null, "notes": "Looking forward to discussing...", "isRecurring": false, "recurringGroupId": null } } ``` ### Additional Fields by Event **booking.cancelled** - Includes `cancelReason` if provided. **booking.rescheduled** - Includes `previousStartTime` and `previousEndTime`. **payment.received** - Different structure: `bookingId`, `amount`, `currency`, `paymentMethod`, `transactionId`. **contact.created** - Contact fields: `id`, `name`, `email`, `phone`, `company`, `notes`, `source` (booking/manual/payment). ## Common Automation Scenarios ### Slack Notification for New Bookings LinkTime Webhook -> Slack: Send Message Use `data.invitee.name` and `data.startTime` in your Slack message. ### Add Contact to HubSpot CRM LinkTime Webhook -> HubSpot: Create Contact Map `data.invitee.email` to Email and `data.invitee.name` to Name. ### Log to Google Sheets LinkTime Webhook -> Google Sheets: Add Row Create columns for Name, Email, Event Type, Date, and map the corresponding fields. ### Create Asana Task on Cancellation LinkTime Webhook -> Filter: booking.cancelled -> Asana: Create Task Use a Filter module to only process `event = booking.cancelled`, then create a follow-up task. ## Security: Verifying Webhook Signatures Every webhook includes an HMAC-SHA256 signature in the `X-LinkTime-Signature` header. While optional, verifying signatures ensures the webhook came from LinkTime. > **Headers included with every webhook:** > - `X-LinkTime-Signature` -- HMAC-SHA256 signature (sha256=...) > - `X-LinkTime-Event` -- Event type (booking.created, etc.) > - `X-LinkTime-Timestamp` -- ISO 8601 timestamp To verify in Make.com, you can use a "Custom function" or "Code" module with this logic: ```javascript // JavaScript example for verification const crypto = require('crypto'); function verifySignature(payload, signature, secret) { const expected = 'sha256=' + crypto .createHmac('sha256', secret) .update(payload, 'utf8') .digest('hex'); return signature === expected; } // Usage: // payload = raw JSON body as string // signature = X-LinkTime-Signature header value // secret = your webhook secret (whsec_...) ``` For most Make.com scenarios, signature verification is optional since Make.com URLs are unique and not easily guessable. ## Troubleshooting ### Webhook not receiving data Make sure your Make.com scenario is "Active" (turned on). Check the webhook delivery history in LinkTime -> Settings -> Webhooks -> Click on your webhook to see recent deliveries. ### Make.com shows "Waiting for data" Click the "Test" button on your webhook in LinkTime. This sends a sample payload that Make.com will use to detect the data structure. ### Deliveries showing errors Check the status code in the delivery history. A 400 error usually means Make.com couldn't parse the data. Try sending another test webhook. A timeout error means Make.com took too long to respond (keep scenarios simple for fastest processing).