前言
在許多行銷活動或顧客調查中,常見的手法是:
- 用戶填寫問卷
- 系統自動寄送專屬優惠碼
如此一來不僅能回饋填問者,也能提升品牌形象與消費意願。
本篇文章將示範如何透過 Python Flask 整合 SurveyCake 的 Webhook 功能、MailerSend 郵件 API,以及本地優惠碼清單檔案,在問卷提交後自動觸發解密回覆資料、分配優惠碼並寄出客製化郵件的流程。
整合架構概覽
流程說明
用戶於 SurveyCake 填寫問卷並提交:
SurveyCake 問卷提交後會透過 Webhook 將加密的回覆資料(包含 Email、回答內容)傳送給我們設定的後端 API。後端 API(Flask)接收 Webhook 並解密資料:
Flask 接收 Webhook 資料後,根據 SurveyCake 提供的svid
與hash
向 SurveyCake 取得加密填答結果,透過 AES 解密得到真實問卷答案(JSON 格式)。提取 Email 並分配優惠碼:
從填答資料中擷取受訪者的 Email,接著從coupon.txt
中撈取一組未使用的優惠碼,並將該碼從清單中移除,以確保每位填答者獲得獨一無二的優惠碼。透過 MailerSend 寄出包含優惠碼的郵件:
使用 MailerSend API 將定製的 HTML 信件(內含優惠碼與對應條碼)寄給填答者。
使用元件
- SurveyCake Webhook:自動將填答結果加密後傳至後端。
- Python Flask:提供簡易的 Web API 接口並處理整個解密、分配優惠碼、寄信的邏輯。
- MailerSend API:第三方寄信服務,用於發送郵件而不受 Gmail 等每日發信限額影響。
- AES 加密解密:使用 SurveyCake 提供的金鑰與初始向量,將加密資料解開,取得真實問卷內容。
- coupon.txt:本地純文字優惠碼清單,一行一碼。
實作範例程式碼
下方為主要程式邏輯的範例程式(簡化後)。實務上請確保金鑰、API Key 等敏感資訊以環境變數或秘密管理來儲存,不直接硬編於程式中。
1 | from flask import Flask, request, jsonify |
email_template.html
範例
1 |
|
使用流程說明
準備問卷與 Webhook URL
- 在 SurveyCake 平台建立您的問卷,並在問卷後台設定 Webhook。
- 將 Webhook URL 指向您部屬此 Flask 專案的公開網址(如
https://your-domain.com/webhook
)。 - 確保您已向 SurveyCake 索取相關的
HASH_KEY
和IV_KEY
,以用於解密加密後的問卷資料。
部署 Flask 後端服務
- 將
app.py
、email_template.html
、coupon.txt
放置於伺服器中。 - 安裝必要套件(如
requests
、pycryptodome
、jinja2
、Flask
)。 - 將 SurveyCake 所提供的
HASH_KEY
、IV_KEY
,以及 MailerSend 的MAILERSEND_API_KEY
、FROM_EMAIL
、FROM_NAME
等資訊正確配置於程式碼中,或改用環境變數。 - 執行
python3 app.py
(或以您喜歡的 WSGI 伺服器方式部署 Flask 應用程式)。
- 將
建立優惠碼清單
- 編輯
coupon.txt
,每行一組優惠碼,如:1
2
3ABC123
DEF456
GHI789 - 當後端收到問卷回覆後,會自動從清單中取出一組優惠碼並刪除該行,確保每個填答者獲得專屬且未重複使用的代碼。
- 編輯
填寫問卷與觸發 Webhook
- 受訪者前往 SurveyCake 完成問卷。
- 問卷提交後,SurveyCake 後端會自動透過 Webhook 將加密的填答結果(包含受訪者 Email)傳送給後端 Flask API。
後端處理邏輯
- Flask API 收到 SurveyCake 傳送的
svid
與hash
後,再次向 SurveyCake 後台取得加密的問卷資料。 - 使用 AES 解密問卷結果,以 JSON 格式解析出填答者的 Email。
- 從
coupon.txt
中提取一組可用的優惠碼,並用於後續寄信。
- Flask API 收到 SurveyCake 傳送的
MailerSend 寄信
- 後端將解密結果(問卷標題、提交時間、回答內容)與取得的優惠碼套入
email_template.html
。 - 使用 MailerSend API 將客製化的 HTML 信件寄送給填答者。
- 信中包含優惠碼與其條碼圖片,填答者可持該代碼至店家兌換相應優惠。
- 後端將解密結果(問卷標題、提交時間、回答內容)與取得的優惠碼套入
後續維護與更新
- 若優惠碼用罄,請更新
coupon.txt
補充新的代碼。 - 根據行銷需求可調整信件版型 (
email_template.html
) 或新增其他欄位(如受訪者姓名)。
- 若優惠碼用罄,請更新
實務應用與注意事項
- 優惠碼管理:請定期更新
coupon.txt
,確保有足夠的優惠碼。如果優惠碼耗盡,系統將無法正常發放。 - 安全性:
- 解密金鑰、MailerSend API Key 請勿直接寫於程式中,應使用環境變數或安全管理機制。
- 部署至生產環境時,請加上 HTTPS 與其他安全措施。
結語
透過上述流程,我們成功串接 SurveyCake 問卷系統、解密回覆資料,並自動向填答者寄出專屬優惠碼。此流程可運用於行銷活動、用戶回饋調查、會員有價問卷調查等情境,提供更佳的使用者體驗與後台管理便利性。
未來可延伸的方向包括:
- 加入行銷自動化機制,在適當時機寄出提醒信或追加優惠。
- 將優惠碼與會員系統串接,進一步追蹤使用狀況與行銷成效。
此範例僅為基本架構,請依實際業務需求與規模進行擴充與調整,希望對大家有所幫助 : )