Calendly Integration: Terminbuchungen automatisieren mit n8n und Make.com
So integrieren Sie Calendly in Ihre CRM und Automatisierungs-Workflows.
Calendly ist der Standard für Online-Terminbuchungen. Aber die wahre Power entfaltet sich erst mit Automatisierung: Leads automatisch ins CRM, Zoom-Links generieren, Erinnerungen anpassen, No-Shows nachverfolgen. In diesem Guide zeigen wir, wie Sie Calendly zum Automatisierungs-Hub machen.
Warum Calendly automatisieren?
Typische manuelle Aufgaben:| Aufgabe | Manueller Aufwand | Automatisiert |
|---|---|---|
| Lead in CRM eintragen | 5 Min/Termin | Automatisch |
| Zoom-Link erstellen | 2 Min/Termin | Automatisch |
| Vorbereitung-Mail senden | 5 Min/Termin | Template |
| No-Show nachfassen | 10 Min/Fall | Automatisch |
| Meeting-Notizen anlegen | 3 Min/Termin | Automatisch |
Calendly Webhook einrichten
Schritt 1: Webhook-URL erstellen
In n8n:calendlyhttps://n8n.ihre-domain.de/webhook/calendlySchritt 2: Bei Calendly registrieren
- invitee.created (Termin gebucht)
- invitee.canceled (Termin storniert)
- invitee.no_show (No-Show markiert)
Webhook Payload Beispiel
{
"event": "invitee.created",
"payload": {
"event_type": {
"name": "30 Minuten Beratungsgespräch",
"duration": 30
},
"event": {
"uuid": "abc123",
"start_time": "2024-01-20T10:00:00Z",
"end_time": "2024-01-20T10:30:00Z",
"location": {
"type": "zoom",
"join_url": "https://zoom.us/j/123456"
}
},
"invitee": {
"name": "Max Mustermann",
"email": "max@example.com",
"questions_and_answers": [
{
"question": "Ihr Unternehmen?",
"answer": "Musterfirma GmbH"
},
{
"question": "Worum geht es?",
"answer": "Automatisierung unserer Prozesse"
}
]
}
}
}
Workflow 1: Lead ins CRM (HubSpot)
Der Workflow
Calendly (Termin gebucht)
↓
Kontakt in HubSpot suchen
↓
Existiert? → Update
Neu? → Anlegen
↓
Deal erstellen
↓
Aufgabe anlegen: "Termin vorbereiten"
n8n Implementation
Node 1: Webhook empfangen Node 2: HubSpot Kontakt suchen// Node: HTTP Request - HubSpot Search
{
"method": "POST",
"url": "https://api.hubapi.com/crm/v3/objects/contacts/search",
"headers": {
"Authorization": "Bearer {{ $env.HUBSPOT_TOKEN }}"
},
"body": {
"filterGroups": [{
"filters": [{
"propertyName": "email",
"operator": "EQ",
"value": "{{ $json.payload.invitee.email }}"
}]
}]
}
}
Node 3: Kontakt anlegen/aktualisieren
// Node: IF - Kontakt existiert?
const contacts = $json.results;
if (contacts.length > 0) {
// Update existierenden Kontakt
return { action: 'update', contactId: contacts[0].id };
} else {
// Neuen Kontakt anlegen
return { action: 'create' };
}
Node 4: Deal erstellen
// Node: HubSpot - Create Deal
{
"properties": {
"dealname": "Beratung: {{ $('Webhook').item.json.payload.invitee.name }}",
"pipeline": "default",
"dealstage": "appointmentscheduled",
"amount": "0",
"closedate": "{{ $('Webhook').item.json.payload.event.start_time }}"
}
}
Workflow 2: Personalisierte Vorbereitung
Der Workflow
Calendly (Termin gebucht)
↓
Recherche (LinkedIn, Website)
↓
Meeting-Brief erstellen
↓
Notion Page anlegen
↓
Erinnerung 1h vor Termin
LinkedIn-Recherche
// Node: HTTP Request - LinkedIn (via Proxycurl)
{
"method": "GET",
"url": "https://nubela.co/proxycurl/api/v2/linkedin",
"qs": {
"url": "https://linkedin.com/in/{{ $json.linkedinProfile }}"
},
"headers": {
"Authorization": "Bearer {{ $env.PROXYCURL_KEY }}"
}
}
Meeting-Brief in Notion
// Node: Notion - Create Page
{
"parent": { "database_id": "{{ $env.NOTION_MEETINGS_DB }}" },
"properties": {
"Name": {
"title": [{ "text": { "content": "Meeting: {{ $json.invitee.name }}" } }]
},
"Date": {
"date": { "start": "{{ $json.event.start_time }}" }
},
"Company": {
"rich_text": [{ "text": { "content": "{{ $json.company }}" } }]
}
},
"children": [
{
"object": "block",
"type": "heading_2",
"heading_2": {
"rich_text": [{ "text": { "content": "Vorbereitung" } }]
}
},
{
"object": "block",
"type": "bulleted_list_item",
"bulleted_list_item": {
"rich_text": [{ "text": { "content": "Thema: {{ $json.topic }}" } }]
}
}
]
}
Workflow 3: No-Show Nachverfolgung
Der Workflow
Calendly (No-Show markiert)
↓
Entschuldigungs-E-Mail senden
↓
Neuen Terminlink anbieten
↓
CRM: Status aktualisieren
↓
Nach 3 Tagen: Follow-up
Implementation
// Node: Send Email{
"to": "{{ $json.payload.invitee.email }}",
"subject": "Wir haben Sie vermisst - neuer Termin?",
"body":
Hallo {{ $json.payload.invitee.name }},
leider konnten wir uns heute nicht treffen.
Kein Problem - hier können Sie direkt einen neuen Termin buchen:
{{ $env.CALENDLY_LINK }}
Ich freue mich auf unser Gespräch!
Beste Grüße
}
Workflow 4: Zoom-Integration
Automatisch Zoom-Meeting erstellen
Calendly (Termin gebucht)
↓
Zoom: Meeting erstellen
↓
Calendly: Event aktualisieren
↓
Bestätigungs-Mail mit Link
Zoom API
// Node: HTTP Request - Zoom Create Meeting
{
"method": "POST",
"url": "https://api.zoom.us/v2/users/me/meetings",
"headers": {
"Authorization": "Bearer {{ $json.zoomToken }}"
},
"body": {
"topic": "Beratungsgespräch: {{ $json.invitee.name }}",
"type": 2,
"start_time": "{{ $json.event.start_time }}",
"duration": {{ $json.event_type.duration }},
"settings": {
"join_before_host": true,
"waiting_room": false
}
}
}
Workflow 5: SMS-Erinnerung
Der Workflow
Schedule (stündlich)
↓
Calendly: Termine in nächsten 2h
↓
Für jeden Termin:
SMS-Erinnerung senden (Twilio)
Implementation
// Node: Twilio - Send SMS
{
"to": "{{ $json.invitee.phone }}",
"body": "Erinnerung: Ihr Termin mit {{ $env.COMPANY_NAME }} beginnt in 1 Stunde. Zoom-Link: {{ $json.event.location.join_url }}"
}
Make.com: Calendly Module
Native Module
| Modul | Funktion |
|---|---|
| Watch Events | Trigger bei neuen Terminen |
| List Events | Termine abrufen |
| Get Event | Einzelnen Termin abrufen |
| Cancel Event | Termin stornieren |
Beispiel-Szenario
Calendly (Watch Events)
↓
Router:
├─ Event Created → CRM + Notion
├─ Event Canceled → CRM Update
└─ No Show → Follow-up Email
Erweiterte Integrationen
Calendly + Stripe (Bezahlte Termine)
Termin gebucht
↓
Stripe: Payment Link erstellen
↓
E-Mail: Zahlungsaufforderung
↓
[Zahlung erfolgreich]
↓
Zoom-Link freischalten
Calendly + Outlook / Google Calendar (Sync)
Calendly Termin
↓
Google Calendar: Event erstellen
↓
Details hinzufügen:
- Teilnehmer-Infos
- Vorbereitungs-Checkliste
- Zoom-Link
Calendly + Slack (Team-Info)
Neuer Termin
↓
Slack #sales:
"📅 Neuer Termin:
Max Mustermann - Musterfirma
20.01. 10:00 Uhr
Thema: Automatisierung"
Custom Booking Pages
Dynamische Event-Typen
// Event-Typ basierend auf Lead-Score
const leadScore = await getLeadScore(email);
let eventType;
if (leadScore > 80) {
eventType = 'enterprise-demo-60min';
} else if (leadScore > 50) {
eventType = 'standard-demo-30min';
} else {
eventType = 'discovery-call-15min';
}
const bookingUrl = https://calendly.com/ihr-team/${eventType}?email=${email};
Pre-filled Booking Links
// Personalisierter Link
const params = new URLSearchParams({
name: lead.name,
email: lead.email,
a1: lead.company, // Antwort auf Frage 1
a2: lead.topic // Antwort auf Frage 2
});
const bookingUrl = https://calendly.com/team/meeting?${params};
Reporting & Analytics
Meeting-Statistiken
// Wöchentlicher Report
const stats = {
scheduled: await countEvents('created', 'week'),
completed: await countEvents('completed', 'week'),
cancelled: await countEvents('canceled', 'week'),
noShow: await countEvents('no_show', 'week'),
conversionRate: (completed / scheduled * 100).toFixed(1)
};
await sendSlackMessage('#sales',
📊 Weekly Booking Report:
- Gebucht: ${stats.scheduled}
- Durchgeführt: ${stats.completed}
- Storniert: ${stats.cancelled}
- No-Shows: ${stats.noShow}
- Conversion: ${stats.conversionRate}%
);
Best Practices
1. Fragen nutzen
Fügen Sie Pflichtfragen hinzu:
- Unternehmen
- Rolle
- Thema/Ziel
- Telefonnummer (für SMS-Reminder)
2. Routing-Regeln
// Termin zum richtigen Teammitglied
const topic = $json.questions_and_answers.find(q => q.question.includes('Thema'))?.answer;
let assignee;
if (topic.includes('technisch')) {
assignee = 'tech-sales@firma.de';
} else if (topic.includes('enterprise')) {
assignee = 'enterprise@firma.de';
} else {
assignee = 'sales@firma.de';
}
3. Reminder-Timing
| Zeitpunkt | Kanal | Inhalt |
|---|---|---|
| 24h vorher | Agenda + Vorbereitung | |
| 1h vorher | SMS | Kurz-Reminder + Link |
| 10 Min vorher | "Meeting startet gleich" |
Kosten
| Komponente | Kosten |
|---|---|
| Calendly Pro | $12/Monat |
| n8n Cloud | Ab $20/Monat |
| Make.com | Ab $9/Monat |
| Twilio SMS | ~$0.05/SMS |
Fazit
Calendly-Automatisierung macht aus einem Terminbuchungs-Tool einen vollständigen Sales-Workflow:
- Leads automatisch erfassen
- Meetings professionell vorbereiten
- No-Shows nachverfolgen
- Team informieren
Nächste Schritte
Weiterführende Artikel
- HubSpot Automatisierung: 10 Workflows die jeder braucht
- Marketing Automation für KMU: Starten ohne großes Budget
- Workflow Automation: 15 Beispiele aus der Praxis
Wir unterstützen Sie bei der Calendly-Automatisierung – von der Einrichtung bis zum produktiven Einsatz.