新しいCalendly予約をGoogleスプレッドシートに自動追加
初級
これはCRM, Multimodal AI分野の自動化ワークフローで、5個のノードを含みます。主にCode, Webhook, GoogleSheetsなどのノードを使用。 新規Calendly予約を自動のにGoogleスプレッドシートに追加
前提条件
- •HTTP Webhookエンドポイント(n8nが自動生成)
- •Google Sheets API認証情報
使用ノード (5)
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"meta": {
"instanceId": "2000c64071c20843606b95c63795bb0797c41036047055a6586498e855b96efc"
},
"nodes": [
{
"id": "f99e1679-71a7-44f9-bdd5-948b9f25603d",
"name": "セットアップ手順",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"width": 280,
"height": 220,
"content": "📅 **SETUP REQUIRED:**\n\n1. **Create Google Sheet:**\n - Headers: Name | Email | Phone | Event Type\n - Date | Time | Status | Meeting Link | Notes\n - Replace YOUR_GOOGLE_SHEET_ID below\n\n2. **Calendly Webhook:**\n - Calendly Account → Integrations → Webhooks\n - Add webhook URL from node below\n - Select: invitee.created event\n\n3. **Google Sheets OAuth:**\n - Connect Google account credentials\n\n🎯 Auto-logs all new bookings with details!"
},
"typeVersion": 1
},
{
"id": "e43f2bf7-edc3-4112-912a-5ce1417fcf8c",
"name": "Calendlyの予約 Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
0,
224
],
"webhookId": "calendly-booking-webhook",
"parameters": {
"path": "calendly-booking",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 1
},
{
"id": "92230608-50d3-4e5a-be13-f6a0318dabec",
"name": "予約データの正規化",
"type": "n8n-nodes-base.code",
"position": [
208,
224
],
"parameters": {
"jsCode": "// Normalize Calendly booking data\nconst webhookData = $input.first().json;\nconst payload = webhookData.payload || webhookData;\n\n// Handle different Calendly webhook structures\nconst event = payload.event || payload;\nconst invitee = event.invitee || event;\nconst eventType = event.event_type || event.event || {};\n\n// Extract meeting details\nconst startTime = new Date(event.start_time || event.scheduled_event?.start_time);\nconst endTime = new Date(event.end_time || event.scheduled_event?.end_time);\n\n// Parse custom form questions/answers\nconst questions = invitee.questions_and_responses || invitee.questions_and_answers || [];\nlet phone = '';\nlet notes = '';\n\n// Extract phone and notes from questions\nquestions.forEach(qa => {\n const question = (qa.question || '').toLowerCase();\n if (question.includes('phone') || question.includes('mobile')) {\n phone = qa.answer || qa.response || '';\n } else if (question.includes('note') || question.includes('comment') || question.includes('message')) {\n notes += (qa.answer || qa.response || '') + ' ';\n }\n});\n\nconst normalizedData = {\n name: invitee.name || 'Unknown',\n email: invitee.email || '',\n phone: phone.trim(),\n event_type: eventType.name || eventType.type || 'Meeting',\n date: startTime.toLocaleDateString(),\n time: `${startTime.toLocaleTimeString()} - ${endTime.toLocaleTimeString()}`,\n status: invitee.status || event.status || 'Scheduled',\n meeting_link: event.location?.join_url || event.join_url || '',\n notes: notes.trim(),\n duration: Math.round((endTime - startTime) / (1000 * 60)), // Duration in minutes\n timezone: invitee.timezone || event.timezone || 'UTC',\n booking_created: new Date().toISOString(),\n calendly_event_id: event.uuid || event.id || '',\n invitee_id: invitee.uuid || invitee.id || ''\n};\n\nconsole.log('Normalized Calendly booking:', {\n name: normalizedData.name,\n email: normalizedData.email,\n event_type: normalizedData.event_type,\n date: normalizedData.date,\n time: normalizedData.time\n});\n\nreturn {\n json: normalizedData\n};"
},
"typeVersion": 2
},
{
"id": "44827cf4-aa34-4df3-9a9f-63184fc1ee86",
"name": "予約をスプレッドシートに保存",
"type": "n8n-nodes-base.googleSheets",
"position": [
400,
224
],
"parameters": {
"options": {
"useAppend": true
},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"typeVersion": 4
},
{
"id": "f3264f93-3929-4ae7-921a-b4df8d10ab01",
"name": "予約成功を記録",
"type": "n8n-nodes-base.code",
"position": [
608,
224
],
"parameters": {
"jsCode": "// Optional: Send confirmation or notification\nconst booking = $input.first().json;\n\n// Log successful booking save\nconsole.log(`✅ Successfully saved booking for ${booking.name}`);\nconsole.log(`📅 Event: ${booking.event_type}`);\nconsole.log(`📧 Email: ${booking.email}`);\nconsole.log(`🕒 Time: ${booking.date} at ${booking.time}`);\n\n// You could extend this to send confirmation emails,\n// Slack notifications, or other integrations\n\nconst summary = {\n success: true,\n booking_summary: `New ${booking.event_type} booking for ${booking.name} on ${booking.date}`,\n next_actions: [\n 'Booking saved to Google Sheets',\n 'Consider sending confirmation email',\n 'Add to calendar if needed'\n ]\n};\n\nreturn {\n json: summary\n};"
},
"typeVersion": 2
}
],
"pinData": {},
"connections": {
"92230608-50d3-4e5a-be13-f6a0318dabec": {
"main": [
[
{
"node": "44827cf4-aa34-4df3-9a9f-63184fc1ee86",
"type": "main",
"index": 0
}
]
]
},
"44827cf4-aa34-4df3-9a9f-63184fc1ee86": {
"main": [
[
{
"node": "f3264f93-3929-4ae7-921a-b4df8d10ab01",
"type": "main",
"index": 0
}
]
]
},
"e43f2bf7-edc3-4112-912a-5ce1417fcf8c": {
"main": [
[
{
"node": "92230608-50d3-4e5a-be13-f6a0318dabec",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
初級 - 顧客管理, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
Zoom参加者のために自動Airtable CRM記録作成
Zoom参加者に対して自動のにAirtable CRMレコードを作成
Code
Webhook
Airtable
+
Code
Webhook
Airtable
4 ノードDavid Olusola
顧客管理
Instagram のリーチを Google テーブルに自動保存
Instagram からのリードを自動のに Google スプレッドシートに保存
Code
Webhook
Google Sheets
+
Code
Webhook
Google Sheets
4 ノードDavid Olusola
リード獲得
CSV アップロードを Google Sheets および Drive へのインポート用にクレンのする
CSVアップロードをGoogle SheetsとDriveにインポートするためにクリーンアップし標準化
Code
Webhook
Google Drive
+
Code
Webhook
Google Drive
10 ノードDavid Olusola
文書抽出
Zoom の録画を Google ドライブに保存し、Airtable にメーティング記録を加える
Zoom 録画を Google ドライブに自動保存し、Airtable でメッセージを記録
Code
Webhook
Airtable
+
Code
Webhook
Airtable
7 ノードDavid Olusola
ファイル管理
Stripeの支払いトリガーとGmailを組み合わせてPDF請求書を自動送信
Stripe 支払いトリガーと Gmail を使用して PDF 請求書を自動のに送信する
Code
Gmail
Webhook
+
Code
Gmail
Webhook
5 ノードDavid Olusola
請求書処理
Zoomの録画をGPT-4で自動要約し、Slackとメールに送信
Zoom録画をGPT-4で自動要約してSlackとメールに送信
Code
Gmail
Slack
+
Code
Gmail
Slack
6 ノードDavid Olusola
AI要約
ワークフロー情報
難易度
初級
ノード数5
カテゴリー2
ノードタイプ4
作成者
David Olusola
@dae221I help ambitious businesses eliminate operational bottlenecks and scale faster with AI automation. My clients typically see 40-60% efficiency gains within 90 days. Currently accepting 3 new projects this quarter - david@daexai.com
外部リンク
n8n.ioで表示 →
このワークフローを共有