在提供線上預約諮詢服務時,你是不是也在煩惱要如何用最簡單的方式,蒐集潛在客戶的預約諮詢需求,同時不用自己實作行程檢核機制,又能夠避免行程衝突或重複預約的情形,並且即時回覆客戶預約的結果呢?
這時候就可以使用 Cal.com 這個線上預約系統,免費方案就能夠提供客戶日曆表單來進行預約,它會自動檢核行事曆的行程是否有衝突,並且郵寄預約結果給客戶與顧問雙方,最棒的是還有提供 Webhook 服務,讓我們可以串接 n8n 來實作後續的自動化流程。
這篇教學將帶大家使用 Cal.com 串接 n8n,來建置自動化的線上預約系統,並且將客戶的預約諮詢資料同步寫入 CRM 系統(Notion)中,不用自己手動搬運,大幅提升工作效率。
一、Cal.com 是什麼?
Cal.com是一個可以高度客製化的會議預約平台,可以連結自己的Google、Outlook等行事曆,支援Google Meet、Zoom等線上會議應用程式,並且提供日曆的介面,設定自己有空檔的日期時間、表單內容,客戶只需要點擊就可以進行預約,平台會自動檢查行事曆的行程是否有衝突、郵寄預約結果,減少來回確認時間的麻煩。
二、日曆線上預約系統的運作流程
如果想要提供日曆形式的預約介面,能夠自動化檢核行程衝突與郵寄通知,同時儲存客戶的諮詢資料,就可以使用Cal.com串接n8n的方式,來建置自動化的日曆預約系統,整體流程拆解成4個步驟:
- 使用Cal.com建置預約諮詢頁面
- Cal.com自動化檢核客戶預約的時間
- 如果預約失敗,Cal.com寄送郵件通知客戶重新預約
- 如果預約成功,Cal.com將行程寫入顧問行事曆,並且推送客戶的諮詢資料到n8n,寫入CRM系統,最後寄送確認信通知客戶與顧問雙方
三、Cal.com串接n8n自動化能做到的解決方案
瞭解流程之後,接下來看看Cal.com與n8n的串接方式。
客戶在Cal.com預約諮詢的日期時間、填寫表單內容,送出之後。Cal.com會檢核顧問所連結的行事曆是否有行程衝突,如果沒有的話,會自動將客戶預約的行程寫入顧問的行事曆,並且寄送郵件通知客戶預約成功,同時透過Webhook推送客戶的諮詢資料到n8n,自動化存入CRM系統(Notion)中。
反之,當客戶預約的時間有行程衝突,Cal.com會寄送郵件通知客戶重新預約,n8n就無需再處理預約失敗的流程。
這樣的整體自動化流程能做到三件事:
- Cal.com自動檢核行程、寫入行事曆、郵件通知(無需自行實作、提升效率)
- 客戶諮詢資料同步存入CRM系統(Notion)
- 即時通知客戶預約結果(提升客戶留存、預約體驗)
四、Cal.com串接n8n的實作步驟
1. 建立Cal.com日曆預約表單
▍連結行事曆(Google Calendar)
在註冊的過程中,可以連結自己的行事曆,之後預約的行程檢核與寫入都會使用該行事曆來進行。
▍設定時區
註冊Cal.com會員之後,在左側欄選擇「設定 / 一般」,來設定時區,如下圖:
▍新增會議應用程式
Cal.com預設會使用Cal Video來進行會議,如果有其它習慣使用的會議應用程式,可以在左側欄選擇「設定 / 開會」,新增會議應用程式,如下圖:
這邊以Google Meet為例,點擊「詳細資訊」,再點擊「安裝應用程式」按鈕,並且依照步驟進行設定即可,如下圖:
▍建立線上行事曆表單
選擇左側欄的「連結」,Cal.com預設已經建立好三個行事曆表單,只要點擊即可依照自己的需求進行修改,或是點擊右上角的「全新」按鈕,來建立新的行事曆預約表單,如下圖:
▍設定活動基本資料
在左側欄選擇「活動設定」,可以自訂活動標題、描述、行事曆預約表單的連結與地點,地點的部分,就可以選擇前面所新增的會議應用程式。
▍設定活動開放時間
在左側欄選擇「開放時間」,並且點擊「編輯可預定會議的時間」按鈕,來設定活動開放的日期與時間。
而下面的檢查衝突,有分為使用「帳戶」、「會議類型」設定方式,如下:
- 帳戶:檢核行事曆帳戶的所有行程,只要客戶預約的時段已經有任何行程,就無法預約。
- 會議類型:檢核行事曆帳戶的行程類型,如果同一個時段能夠接受不同的行程類型,才會需要選擇這個檢核方式。例:同一時段有線上Demo、顧問預約諮詢等不同的行程類型。
這邊建議維持預設值「帳戶」即可。
▍設定行事曆預約表單
在左側欄選擇「預約表單」,可以客製化新增、編輯行事曆預約表單的欄位。
最後就會得到像這樣的行事曆預約表單:
2. 建立 Cal.com Webhook
由於我們想要在客戶填完預約表單,送出之後,將諮詢資料推送到n8n來自動化寫入CRM(Notion)中,這時候就會需要透過Cal的Webhook機制來達成。
在左側欄選擇「設定」,並且選擇「Webhook」,如下圖:
接著點擊「全新」來建立Webhook。
在「訂閱者網址」的地方,貼上n8n的Webhook節點URL,完成後點擊「建立Webhook」按鈕。
3. 建立 n8n 自動化流程,接收預約資料並寫入Notion
▍設定Webhook節點
n8n的Webhook節點設定如下:
- HTTP Method選擇「POST」
- Path欄位可以自訂Webhook URL
▍設定Edit Fields(Set)節點
Cal Webhook推送的欄位非常多,這時候可以使用n8n的Edit Fields(Set)節點,來編輯所需要的欄位,其中,會議開始時間、結束時間,可以使用以下表示式來轉換時區與時間格式:
//寫入「字串」型態欄位 {{ DateTime.fromISO($json.body.payload.startTime).setZone("Asia/Taipei").toFormat("yyyy-MM-dd HH:mm:ss") }} //寫入「日期」型態欄位 {{ DateTime.fromISO($json.body.payload.startTime).setZone("Asia/Taipei").toISO() }}
如果表單有網址類型的欄位,可以使用以下表示式截取HostName:
{{ $json.body.payload.bookerUrl.replace(/^https?:\/\//,'') }} //回傳結果:cal.com
合併多個欄位資料可以使用以下表示式,將多個欄位屬性值合併後,透過flat(Infinity)語法攤平陣列,並且使用filter(v ⇒ v)語法,篩選有值的屬性值,最終回傳一個陣列:
{{ [$json.body.payload.responses.applyArea.value,$json.body.payload.responses.applyAreaOther.value].flat(Infinity).filter(v => v) }} //回傳結果:[Array: ["潛在客戶資料蒐集", "報表自動化", "專案管理自動化"]]
如果還要排除陣列中的特定屬性值,可以使用以下語法來進行處理:
{{ [$json.body.payload.responses.applyArea.value,$json.body.payload.responses.applyAreaOther.value].flat(Infinity).filter(v => v && v !== "其他(請在下方進行補充)") }}
▍設定IF節點
由於Cal Webhook有很多的事件型態,這邊我們可以使用IF節點來判斷是否為客戶預約成功的事件,也就是「BOOKING_CREATED」事件來進行處理。
▍設定Notion節點
在Notion中,建立用來儲存客戶諮詢資料的資料庫,接著在n8n中選擇Notion的「Create a database page」,並且設定每個Notion欄位對應的諮詢資料。
到這邊,就能夠達成客戶預約成功之後,自動化寫入諮詢資料到Notion資料庫中。
五、成果總結
這篇教學帶大家用 Cal.com 串接 n8n,打造一套完全自動化的線上預約系統:從客戶預約、行程檢核、郵件通知,到諮詢資料同步寫入 CRM(Notion),每個環節都不需要手動操作。
如果你也常常花時間來回確認預約、手動複製客戶資料到CRM系統,不妨試試這套 Cal.com 串接 n8n 的自動化流程,讓工具幫你把繁瑣的事處理好,把時間留給真正重要的事:專注服務你的客戶。
💡 在導入流程自動化時遇到了什麼問題?還是有什麼應用想嘗試、想看的文章主題?歡迎填寫許願表單,你的回饋會直接影響下一篇教學的方向。填寫許願表單 →
🔗 如果這篇文章對你有幫助,歡迎把它分享給也在研究自動化的朋友。能幫到更多人少走一點彎路,是我寫這些內容最大的動力。





留言
張貼留言