如何建立表單建立工具
表單建立工具讓人設計自己的表單:選擇欄位、設定規則、發布連結,然後收集提交的內容。它的核心由三部分組成:以資料形式儲存的表單定義、把定義轉成可用表單的顯示器,以及附有通知及匯出功能的提交內容儲存區。開始建立之前,先確認你真的需要它:如果你只需要聯絡表單或申請表,直接建立那份表單,完全不必使用建立工具。
你真的需要建立工具嗎?
| 你的情況 | 應建立的內容 |
|---|---|
| 一兩份很少更改的表單 | 表單本身。參閱如何加入聯絡表單。 |
| 由團隊內非開發人員建立的大量表單 | 內部表單建立工具 |
| 表單是你產品的一部分(由客戶自行建立) | 附有帳戶、用量限制及嵌入功能的表單建立工具 |
| 你主要想要問卷結果及圖表 | 問卷應用程式 |
表單建立工具比單一表單大得多,因為每種欄位類型都必須在編輯器、公開表單、驗證、儲存、通知及匯出各環節正常運作。
表單建立工具需要什麼
表單定義
把每份表單儲存為一串欄位清單,並以結構化資料格式保存(在 Postgres 欄位中儲存 JSON 十分有效)。一個欄位大致如下:
- id:穩定不變的 ID,即使標籤改變也不受影響
- type:文字、電郵、數字、長文字、單選、核取方塊、日期、檔案
- label 及說明文字
- 是否必填、最小值/最大值、允許的檔案類型
- 下拉式欄位的選項
- 次序,以及(可選)條件(「只在欄位 X 為 Y 時顯示」)
編輯器負責編輯這份清單,公開表單則讀取它。整個設計的關鍵就在於此:每份新表單都無需撰寫新程式。
提交內容
- 提交內容:表單、表單版本、提交時間、以欄位 ID 為鍵的答案、狀態(新、已讀、已封存)。
- 檔案:上傳的檔案應存放於檔案儲存空間,提交內容只保存一個參照,切勿放入資料庫列中。
頁面
- 表單清單,附有提交數量。
- 編輯器:加入、重新排列及設定欄位,旁邊附有即時預覽。
- 設定:確認訊息或轉址、通知電郵、開放及截止日期、提交數量上限。
- 公開表單,設有自己的連結,並提供可嵌入其他網站的版本。
- 提交內容表格,附有搜尋、狀態、詳情檢視及 CSV 匯出功能。
決定與取捨
**版本管理。**有人在收到 200 份提交後,把「Phone」改為「Mobile number」,這是必然會發生的事。如果答案以欄位 ID 儲存,而每份提交都記錄表單版本,舊的提交內容仍能正確顯示。否則,你的資料會悄悄錯亂。
**驗證要做兩次。**在瀏覽器檢查欄位,以便快速給予回饋;同時在伺服器再次驗證,因為任何人都可以直接把資料傳送到你的端點。真正發揮作用的是伺服器端的檢查。
**檔案上傳。**它會帶來儲存成本、大小限制、檔案類型檢查,以及私隱問題(履歷、身分證明文件、醫療表格)。應限制檔案類型及大小,並預設將上傳檔案設為私人,只讓表單擁有人可以閱讀。參閱如何為應用程式加入檔案上傳。
通知。「有人提交時電郵通知我」是大家預期的功能。它需要電郵服務供應商及 API 金鑰;參閱如何從應用程式發送電郵。
**垃圾提交。**公開表單一定會被機械人發現。使用蜜罐欄位(人類看不見,機械人會填寫)、按 IP 限制頻率、伺服器端驗證,並在有需要時加入 CAPTCHA 服務。
**嵌入方式。**iframe 嵌入是把表單放到別人網站上最簡單、最安全的方法。Script 嵌入看起來更貼近原生介面,但較難建立,也較難保障安全。
條件邏輯。「只在……時顯示此欄位」很受歡迎,但會令測試數量大增。應在基本功能穩固之後才加入。
有效的首個提示
為我的團隊建立一個表單建立工具網頁應用程式。登入用戶可以在附有即時預覽的編輯器中建立表單。欄位類型包括:短文字、長文字、電郵、數字、日期、單選、核取方塊及檔案上傳。每個欄位都有穩定的 ID、標籤、說明文字、必填標記,以及按類型設定的規則(最小值/最大值、選項、允許的檔案類型,以及 10 MB 大小限制)。把表單定義以 JSON 儲存,並附有版本號碼,每次發布時遞增。每份表單都有公開連結及 iframe 嵌入代碼。提交內容在伺服器根據已發布的版本驗證,答案以欄位 ID 及表單版本儲存,上傳的檔案放入私人檔案儲存空間。加入隱藏的蜜罐欄位,以及按 IP 限制的頻率。表單擁有人可以看到提交內容表格,包括狀態(新、已讀、已封存)、詳情檢視及 CSV 匯出。所有資料都儲存在資料庫中。條件邏輯及電郵通知留待以後再加。
建立步驟
- **編輯器及定義。**建立一份包含所有欄位類型的表單,並與 AI 一起檢查已儲存的 JSON。它是否整潔及穩定?
- **公開表單。**用手機填寫,檢查驗證訊息及確認畫面。
- **伺服器端驗證。**要求 AI 把違反規則的提交直接送到伺服器,略過頁面。它應該被拒絕。
- **版本管理。**在收到幾份提交後,更改及重新排列欄位。舊的提交內容仍應顯示正確的答案。
- **上傳。**嘗試一個過大的檔案,以及一個類型錯誤的檔案。確認陌生人無法靠猜測連結打開已上傳的檔案。
- **提交內容表格及匯出。**檢查含逗號、換行及重音字符答案的 CSV 匯出結果。
- **通知、嵌入、邏輯。**每次加入一項。
常見錯誤
- **以標籤儲存答案。**標籤會改變,應使用穩定的欄位 ID。
- **只在瀏覽器驗證。**這只是方便,並不是保護。
- **公開的已上傳檔案。**表單經常收集一些人不想公開的文件。
- **沒有垃圾提交保護。**公開表單可能在幾天內被大量無用內容填滿。
- **為一份表單而建立建立工具。**直接建立那份表單即可。
- **公開產品沒有提交數量上限。**如果顧客自行建立表單,應按方案設定上限,否則一份熱門表單可能令你的主機費用大幅上升。
何時成品工具較合適
代管的表單工具非常出色,而且對大部分需要來說都很便宜。它們已解決嵌入、垃圾提交、付款、整合及多種欄位類型的無障礙問題。如果你的團隊只是需要表單,直接使用一款即可。參閱 Typeform 替代方案及 Google Forms 替代方案。
當提交內容需要與你自己的資料並存(例如為你營運的 CRM 或客戶入口網站提供資料)、當提交後需要工具無法處理的工作流程、當資料的存放地點或擁有權是硬性要求,或當表單本身是你所銷售產品的一項功能時,才值得自行建立。
使用 Mythex 建立
在 Mythex 上,你可以在對話中描述建立工具,並在即時預覽中同時測試編輯器及公開表單。當你的應用程式需要上傳檔案時,Mythex 會為表單定義及提交內容加入專用的資料庫,並自動啟用檔案儲存空間(免費方案上限為 1 GB)。通知電郵透過你以自己的金鑰接駁的服務供應商發送。把應用程式發布到 mythex.ai 連結,或在 Pro 方案使用自己的網域,公開表單連結便會從該處運作。
常見問題
表單建立工具如何儲存表單?
通常以表單定義的形式儲存,即一串欄位清單,每個欄位都有類型、標籤、驗證規則及次序,並以 JSON 等結構化資料格式保存。同一份定義同時驅動編輯器及公開表單,因此新增欄位時無需為每份表單另寫程式。
應如何儲存表單提交的內容?
每一份提交都應記錄它所依據的表單版本,並以欄位 ID 為鍵儲存答案。這樣日後更改或重新排列欄位時,舊的提交內容仍然不會出錯。
如何防止公開表單收到垃圾提交?
綜合使用隱藏的蜜罐欄位、按 IP 位址限制頻率、伺服器端驗證,若仍有垃圾提交,再加上 CAPTCHA 服務。切勿只依賴在瀏覽器執行的檢查。
我需要完整的表單建立工具,還是只需要一份表單?
如果你只需要一兩份固定的表單,直接建立那幾份表單會簡單得多。當非技術人員需要建立及修改大量表單,而不必每次都找開發人員時,表單建立工具才值得投入。