Calendly bookings → HubSpot contact

When someone books a call on Calendly, create the contact in HubSpot and alert your team.

Easy Saves ~3 hours/month Sales & CRMBy Flowngn team

Works with n8n · Make · Zapier

How it works

Trigger: Calendly — invitee created
  1. Receive the new booking from Calendly.
  2. Create or update the contact in HubSpot with their name and email.
  3. Post the meeting name and time to #sales in Slack.

Diagram

CNew bookingCalendly TriggerHCreate or update co…HubSpotSPing #salesSlack
Trigger App

Build it

Pick your tool — same automation, step by step.

Copy and paste straight into an n8n canvas (Ctrl+V), or download and use Import from File. Then connect your own credentials and replace every YOUR_… placeholder.

Workflow JSON
Show code (107 lines)
{
  "name": "Calendly bookings → HubSpot contact (Flowngn)",
  "nodes": [
    {
      "parameters": {
        "content": "## Calendly bookings → HubSpot contact\nWhen someone books a call on Calendly, create the contact in HubSpot and alert your team.\n\n**Setup**\n1. Open each node and connect your own credentials.\n2. Replace every YOUR_… placeholder.\n3. Test once, then activate.\n\nFree template from Flowngn",
        "height": 260,
        "width": 340
      },
      "id": "2c528f90-acda-4c36-af0c-4bffeef76555",
      "name": "Setup notes",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -420,
        -60
      ]
    },
    {
      "parameters": {
        "events": [
          "invitee.created"
        ]
      },
      "id": "2c528f90-acda-4c36-af0c-4bffeef76555",
      "name": "New booking",
      "type": "n8n-nodes-base.calendlyTrigger",
      "typeVersion": 1,
      "position": [
        0,
        0
      ],
      "webhookId": "2c528f90-acda-4c36-af0c-4bffeef76555"
    },
    {
      "parameters": {
        "authentication": "appToken",
        "resource": "contact",
        "operation": "upsert",
        "email": "={{ $json.payload.email }}",
        "additionalFields": {
          "firstName": "={{ ($json.payload.name || '').split(' ')[0] }}"
        }
      },
      "id": "2c528f90-acda-4c36-af0c-4bffeef76555",
      "name": "Create or update contact",
      "type": "n8n-nodes-base.hubspot",
      "typeVersion": 2.1,
      "position": [
        300,
        0
      ]
    },
    {
      "parameters": {
        "select": "channel",
        "channelId": {
          "__rl": true,
          "value": "#sales",
          "mode": "name"
        },
        "text": "=📅 {{ $('New booking').item.json.payload.name }} booked {{ $('New booking').item.json.payload.scheduled_event?.name }} for {{ $('New booking').item.json.payload.scheduled_event?.start_time }}",
        "otherOptions": {}
      },
      "id": "2c528f90-acda-4c36-af0c-4bffeef76555",
      "name": "Ping #sales",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.2,
      "position": [
        600,
        0
      ]
    }
  ],
  "connections": {
    "New booking": {
      "main": [
        [
          {
            "node": "Create or update contact",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create or update contact": {
      "main": [
        [
          {
            "node": "Ping #sales",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": []
}

Open in the playground to edit →

Tips

  • Add a Calendly question like "Company website?" and save it to HubSpot too.

Related flows