🤝 Generate single-use personalized Calendly links with Google Sheets tracking & Slack alerts

⚡ 1,000 views · 🤝 CRM & Sales Operations

Description

Who’s it for

This template is designed for teams and businesses that send Calendly links proactively and want to generate trackable, single-use booking links on demand. It’s perfect for:

How it works / What it does

This workflow turns a simple HTTP request into a fully configured single-use Calendly booking link:

  1. Webhook Trigger (POST)
    • Receives JSON payload with recipient details:
    • name, email, optional event_type_uri, optional utm_source
  2. Configuration & Input Normalization
    • Set Configuration extracts and normalizes:
      • recipient_name, recipient_email
      • requested_event_type (can be empty)
      • utm_source (defaults to "n8n" if not provided)
  3. Calendly API – User & Event Types
    • Get Current User calls GET /users/me using Calendly OAuth2 to get the current user URI
    • Extract User stores user_uri and user_name
    • Get Event Types calls GET /event_types?user={user_uri}&active=true to fetch active event types
    • Select Event Type:
      • Uses requested_event_type if provided, otherwise selects the first active event type
      • Stores event type URI, name, and duration (minutes)
  4. Create Calendly Single-Use Scheduling Link
    • Create Single-Use Link calls POST /scheduling_links with:
      • owner: selected event type URI
      • owner_type: "EventType"
      • max_event_count: 1 (single use)
  5. Build Personalized Booking URL
    • Build Personalized Link:
      • Reads the base booking_url from Calendly
      • Appends query parameters to prefill:
        • name (encoded)
        • email (encoded)
        • utm_source
      • Stores:
        • base_booking_url
        • personalized_booking_url
        • recipient_name, recipient_email
        • event_type_name, event_duration
        • link_created_at (ISO timestamp)
  6. Optional Logging and Notifications
    • Log to Google Sheets (optional but preconfigured):
      • Appends each generated link to a “Generated Links” sheet
      • Columns: Recipient Name, Recipient Email, Event Type, Duration (min), Booking URL, Created At, Status
    • Notify via Slack (optional):
      • Posts a nicely formatted Slack message with:
        • recipient name & email
        • event name & duration
        • clickable booking link
  7. API Response to Caller
    • Respond to Webhook returns a structured JSON response:
      • success
      • booking_url (personalized)
      • base_url
      • recipient object
      • event object (name + duration)
      • created_at
      • expires explanation ("Single-use or 90 days")

The result is an API-style service you can call from any system to generate trackable, single-use Calendly links.

How to set up

1. Calendly OAuth2 setup

2. Webhook Trigger configuration

Expected request body:

{
  "name": "John Doe",
  "email": "john@example.com",
  "event_type_uri": "optional",
  "utm_source": "optional"
}

If event_type_uri is not provided, the workflow automatically uses the first active event type for the current Calendly user.

4. Slack notification setup (optional)

5. Test the workflow end-to-end

{
  "name": "Test User",
  "email": "test@example.com"
}

Requirements

How to customize the workflow

Input & validation

Event type selection logic

Google Sheets logging

Slack notification formatting

Key features

Example scenarios

Scenario 1: Sales outreach

  1. A CRM workflow triggers when a lead moves to “Meeting Requested”.
  2. It calls this n8n webhook with the lead’s name and email.
  3. The workflow generates a single-use Calendly link, logs it to Sheets, and posts to Slack.
  4. The CRM sends an email to the lead with the personalized booking link.
  1. A support ticket is resolved and the system wants to offer a follow-up call.
  2. It calls the webhook with name, email, and a dedicated event_type_uri for “Follow-up Call”.
  3. The generated link is logged and returned via API, then included in an automated email.

Scenario 3: Campaign tracking

  1. A marketing automation tool triggers this webhook for each contact in a campaign, passing utm_source (e.g. q1-outbound).
  2. The workflow adds utm_source to the link and logs it in Google Sheets.
  3. Later, you can analyze which campaigns generated the most completed bookings from single-use links.

This template gives you a reliable, reusable Calendly link generation service that plugs into any part of your stack, while keeping tracking, logging, and team visibility fully automated.

đź”— Nodes Used

Google Sheets, HTTP Request, Slack, Webhook

📥 Import

Download workflow.json and import into n8n: Workflow menu → Import from File

📖 Importing guide · 🔑 Credential setup