今天要分享一個實用的 Google 表單應用:當使用者提交表單後,系統能自動寄送 Email 通知給填寫者,同時也發送 Line Notify 訊息給管理者(例如網站站長)。這個功能不僅限於購物回報,也可用於各種回饋、報名或通報系統。
自動寄送 Email 給表單填寫者。 自動發送 Line Notify 訊息給管理者。 在 Google Sheet 中使用陣列公式 (ARRAYFORMULA) 自動產生流水號。 在 Google Sheet 中使用陣列公式自動計算金額。 提供可直接使用的 Google Apps Script 程式碼,僅需少量修改即可套用。
為何需要這個功能?
功能展示
Line Notify 通知: 管理者的 Line 會立刻收到通知,內容包含自動編號、填寫者 Email、購買品項、數量、單項金額以及計算後的總金額。 Email 通知: 填寫者提供的 Email 信箱也會收到一封確認信,內容與 Line 通知相似,包含所有訂單細節與總金額。
設定步驟
建立你的 Google 表單,至少包含: 一個收集 Email 的問題(建議設為必填,並啟用 Google 表單設定中的「收集電子郵件地址」)。 你想讓使用者填寫的其他問題(例如:商品選項、數量、意見回饋等)。在範例中,商品選項直接包含價格資訊 (e.g., "香純滴雞精10包(原味)1500元"),數量則使用線性刻度。
點擊表單編輯頁面上的「回覆」分頁。 點擊綠色的 Google Sheet 圖示(建立試算表),建立一個新的試算表來儲存表單的回覆。
自動編號: (假設原始資料從 B 欄開始,此欄位加在 A 欄) 在 A1 儲存格輸入欄位名稱,例如「自動編號」。 在 A2 儲存格輸入以下陣列公式(請注意: D2:D 和 C2:C 中的欄位字母需對應您實際有資料輸入的欄位,例如,如果時間戳記在 B 欄,產品在 C 欄,那應檢查 C 欄是否有資料 C2:C<>"",並以 row(B2:B)-1 來計算列號): 說明: 此公式檢查 D 欄(可換成表單必填欄位)是否有資料,若有,則回傳該列的列號減 1 (因為標題佔一列),作為流水號。 格式調整: 若顯示為日期,請將 A 欄格式設為「自動」或「純文字」。
擷取單價: (假設商品選項在 C 欄,此欄位加在 E 欄) 在 E1 輸入欄位名稱,例如「單價」。 在 E2 輸入以下陣列公式(請注意: C2:C 需對應商品選項的欄位,5 代表從右邊取 5 個字元 "1500元",4 代表再從左邊取 4 個數字 "1500",請依實際格式調整):
計算總價: (假設數量在 D 欄,單價在 E 欄,此欄位加在 F 欄) 在 F1 輸入欄位名稱,例如「總價」。 在 F2 輸入以下陣列公式(請注意: D2:D 和 E2:E 需對應數量與單價的欄位): 說明: 如果數量乘以單價等於 0(表示可能無資料),則留空,否則計算兩者乘積。
在 Google Sheet 中,點擊頂端選單的「工具」>「指令碼編輯器」。 將編輯器中原有的程式碼全部刪除。 複製以下提供的完整程式碼,貼到編輯器中。 修改必要參數: var token = "你的LineNotify權杖";:將 "你的LineNotify權杖" 換成你申請的 Line Notify Token。(如何申請? 請參考 Line Notify 官方說明 或相關教學。) var send_name = "你的商店或網站名稱";:修改成你希望 Email 寄件人顯示的名稱。 var subject = "表單通知";:修改成你希望 Email 的主旨。 email=sheet.getRange('B'+lastRow).getValue();:非常重要! 程式預設從 B 欄取得要寄送 Email 的地址。請檢查你的 Google Sheet,確認 Email 地址是儲存在哪一欄,並將 'B' 修改成對應的欄位字母 (例如,若在 C 欄,則改為 'C')。
點擊上方的磁碟片圖示「儲存專案」,為專案命名(例如:「表單Email與Line通知」)。
在指令碼編輯器左側選單,點擊鬧鐘圖示「觸發條件」。 點擊右下角的「+ 新增觸發條件」按鈕。 設定觸發條件: 選擇要執行的功能:getFormData 選擇應執行的部署作業:Head 選取活動來源:來自試算表 選取活動類型:提交表單時
點擊「儲存」。 授權: 系統會要求授權。選擇你的 Google 帳戶,可能會顯示「Google 尚未驗證這個應用程式」,請點擊「進階」,然後點擊「前往『(你命名的專案名稱)』(不安全)」,最後點擊「允許」,授予指令碼必要的權限(寄送 Email、連接外部服務、存取試算表)。
你的 Line 是否收到通知? 你填寫的 Email 是否收到確認信? Google Sheet 中是否有新增資料,且自動編號、金額等是否正確?
aaa
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。