WhatsApp Flows 優化並簡化了您的企業收集客戶資料的方式。您的組織可以輕鬆地從與客戶的互動中獲取結構化訊息,而客戶又可以在 WhatsApp 中享受積極的用戶體驗。 WhatsApp Flows 非常適合收集潛在客戶資料、進行調查、幫助客戶預約、提交客戶問題和疑慮等等。
最重要的是,您可以為客戶提供所有這些選項,而無需建立複雜的應用程式和後端:只需使用 WhatsApp 作為前端,並使用 Webhook 將回應捕獲為 JSON 訊息、處理資訊並檢索您需要的數據。
本教學以虛構公司為例,探討如何使用 Webhook 在 WhatsApp 上設定客戶調查。該調查將收集客戶如何發現該公司以及他們喜歡的旅行類型等回饋,以便該公司可以更好地為當前和未來的客戶提供服務。
使用 WhatsApp Flow 進行調查
先決條件
若要繼續操作,請確保您具備以下條件:
基礎Python知識
Python安裝在你的工作環境中
ngrok安裝在 墨西哥 whatsapp 號碼數據 您的工作環境中
Meta for Developers
上的開發者帳戶
熟悉整合雲端 API
完成在您的帳戶中使用 Flows 的步驟,包括驗證您的帳戶
帳戶的存取權杖和電話號碼 ID
收件人電話號碼
程式碼編輯器,例如Visual Studio Code。
建立一個Flask應用程式
使用WhatsApp Flows API編寫用於建立和發布 Flow 的 Python 程式碼。 Python 程式碼也會使用雲端 API 發送已發布的串流。
建立一個用於監聽聊天訊息的 Webhook。
運行應用程式。
如果您想預覽該項目,可以查看完整的程式碼。
使用 WhatsApp Flows API 建立調查
建立 Flow 有兩種方法:使用Flow Builder UI或 Flows API。本教學使用 Flows API 以程式設計方式設定調查。
要建立使用伺服器中的動態資
您可以建立將調查連 購買行銷活動資料庫 接到您自己的伺服器的端點。使用端點,您可以控制 Flow 螢幕之間的導航邏輯,從伺服器填充 Flow 數據,或根據 使用者互動在螢幕上顯示/隱藏組件。
將要討論的調查流程範例不使用任何端點,因為它與伺服器之間沒有動態資料交換。您將使用聊天 Webhook 來擷取調查中的資訊。此外,您可以將 Flows 附加到WhatsApp Manager 中的訊息範本。
創建一個 Flask 應用程式
首先,建立一個 Flask 應用程 印度數據 式來與 Flows API 互動。在終端機中執行以下命令來建立虛擬環境。根據您的開發者帳戶資訊分配值。您可以使用任何字串VERIFY_TOKEN。WHATSAPP_BUSINESS_ACCOUNT_ID和變數PHONE_NUMBER_ID是 Meta 自動產生的您帳戶的唯一識別碼。The ACCESS_TOKEN用於驗證和授權 API 請求。
要從 Meta 應用程式的儀表
板存取此信息,請單擊左側導航窗格中的WhatsApp > API 設置,如下面的螢幕截圖所示。此函數呼叫 Flows 端點(flow_base_url)
替換<FLOW-NAME>為您想要的名稱 – 例如,survey_flow。
程式碼建立 Flow 後,它會提取created_flow_id用於上傳其 JSON 正文的內容。
上傳流程的 JSON 元件
建立一個包含
這些內容
survey.json的文件。 JSON 包含流的結構。
然後,將以下程式碼貼到該main.py文件中。有效負載物件內的值可以對應於流程元件(類似HTML 表單中的元素名稱)或資料物件。與這些有效負載值關聯的鍵稱為名稱,類似於在程式語言中分配變數的方式。
這些data-source元素還包
含充當值鍵的 ID。代碼發送這些 ID 以供選擇。例如,如果使用者選擇以下Likely內容data-source,程式碼將發送1.收到資料後,您可以匹配資料來源。流有效負載包含流詳細資訊。此action.parameters.flow_token欄位可讓您傳遞 Flow 訊息的唯一標識符,該訊息將在 Flow 完成後從客戶端傳輸到您的 Webhook。在本教程中,您將使用隨機 ID (uuid)。程式碼將action.parameters.flow_action_payload.screenas設定SURVEY_SCREEN為使用者點擊時要顯示的畫面的 ID 。
設定 Webhook
Webhook 邏輯相當簡單。它有兩個函數webhook_get和webhook_post,分別處理GET和POST請求。該程式碼GET在將 Webhook 新增至您的 Meta 應用程式時使用該請求。成功時返回請求hub.challenge。該POST請求 使用 WhatsApp Flow 將訊息有效負載列印到終端。該POST請求提取並處理訊息有效負載。由於程式碼僅適用於訊息有效負載,因此在捕獲任何其他有效負載時會引發錯誤。因此,您使用if語句來檢查是否存在messages主體。檢查 JSON 正文是否存在後,僅當有效負載中messages存在正文時,才會執行另一項檢查以提取寄件者的電話號碼。textmessages用戶發送到您的號碼的任何訊息都會觸發流程。對於您的用例,自訂程式碼以僅在特定情況下發送調查流程,例如,在使用者與您的企業聊天後。