快速回答:經 HTTP 分頁取回每一筆提交,用彙整端點取代原始資料列,匯出 CSV——把表單資料接進關聯式表格、儀表板和 AI Agent 的內容。

存下提交只是半個後端。決定資料有沒有用的,是把它取回來的那一半——給人翻、給腳本算、給儀表板畫、給 Agent 讀。

一個 FormLM 端點給你三個出口,選對出口大致就完成了設計。下面把整套工具攤開講:哪些迴圈和排程,能讓「積著的資料」變成「幹活的資料」。

三個出口

同一份資料,三種形態。週一早上「工作坊迴響怎麼樣」是一次 CSV 開啟;每晚同步進表格存檔的是一個查詢迴圈;常駐的結果小元件則是一次 summary 呼叫加一張雷達圖。

安全地把所有記錄翻完

查詢端點是分頁的,所以正確姿態是一個「短頁即停」的迴圈,而不是硬編碼「取第 5 頁碰運氣」。兩行 bash 加 jq,就能把全量歷史拉到本機檔案:

# 拉取所有已存記錄——一旦某頁不足請求數就停
page=1; out=all.jsonl; : > $out
while :; do
  resp=$(curl -s "https://formlm.me/api/v3/share/<your-token>/query?page=$page&size=1000")
  echo $resp | jq -c '.records[]?' >> $out
  n=$(echo $resp | jq '.records | length')
  [$n -lt 1000 ] && break
  page=$((page+1))
done

換成 Python 或平台腳本,也只多幾行,思路相同。批次拉取就把 size=1000 用頂;互動看板則把它調小,別讓一條慢記錄卡住視圖。如果只要計數和分布,連迴圈都省了——/summary 早在伺服器端把這筆帳算好了。

不動原始資料列,先拿彙整

儀表板很少真的需要每筆提交——它要的是「本週 342 份,三個構面均值 3.8 / 2.9 / 4.1,分檔占比 12% / 41% / 47%」。summary 端點賣的就是這個取捨:一次 GET,不分頁、不用串接。低刷新率的小元件直接對準它,整層報表就值一次 fetch 加一張圖。

欄位漂移是特性——讀出防禦性

因為 payload 裡的陌生鍵會自動建欄,一個線上端點的欄位集是隨頁面演進成長的。舊記錄對新鍵沒有值,這不是髒資料,是歷史。三個習慣讓管線穩著跑:

排程匯出:關聯式表格和 BI 都要吃

對住在表格裡的工作團隊,把查詢迴圈掛進每晚的 cron,寫成 CSV 或往表格追列,讓表單退化成無聊的基礎建設。小需求還有個更簡單的檔次——資料後台裡手動匯出 CSV——所以量真的到了才值得自動化。至於能直連 HTTP 資料源的 BI 工具,查詢端點跟它們說的是同一種語言:帶穩定記錄 ID 的 JSON。

把結果餵回給 Agent

最讓人意外的那個出口:Agent 也能消費 Agent 產出的東西。把一個端點的 ?help 貼進對話,它就有了 schema;灌一份 /summary 的 JSON,它能把這週的結果講成人話;把查詢迴圈的輸出給它,它就能寫報告。存放不再是表單生命的終點,而是一個分析閉環的起點——當初收資料的那個 URL,現在負責解釋資料。

"表單本來就是一條已經蓋好第一級階梯的資料管線。真正有意思的工程發生在出口處——把同一批記錄同時遞給人、表格、儀表板和 Agent,還要牠們四個對事實的理解始終一致。"

🛠️ 給你的資料三個出口

每個發佈後的表單都全部自帶——沒有額外設定這一步:

  • 查詢端點——分頁 JSON,一頁最多 1,000 筆記錄
  • 彙整端點——伺服器端算好的聚合,一次 GET
  • 資料後台 + CSV——給人用的那個出口,預設就在
  • ?help 自述文件——目前欄位清單,Markdown,Agent 讀得懂
發佈一張表單,拉回第一頁 →

✅ 重點結論

  • 存放只是半個後端——出口決定資料是不是在替你幹活
  • 查詢迴圈翻到短頁即停:批次頂格 1000,互動調小
  • 只要聚合就用 /summary:一次 GET 勝過下載全部
  • 自動建欄意味著 schema 會成長——缺失鍵當 null,用 ?help 做 diff
  • 匯出按量級升級:手動 CSV 是預設,cron 才是自動化
  • 存資料的同一個端點,也能把你的資料講給 Agent 聽

日常產出的是基準報告和覆盤而不是腳本?市場行銷專區和培訓效果評估專區教你把同樣的聚合數字變成客戶面前的交付物。

常見問題

怎麼用程式把所有提交下載下來?

用迴圈調用查詢端點:GET /query 帶上 page=N 與 size=1000,把每頁記錄追加落地,某頁回傳筆數不足請求數就停。整個模式就這麼多——沒有游標狀態要維護。

API 呼叫按次收費嗎?

不按次。發佈表單以及透過端點收取、查詢提交都在免費方案內,沒有按呼叫計費的環節;付費方案抬高的是容量上限並增加團隊功能。

加了欄位,怎麼讓腳本不跟著崩?

讀的時候防禦一點:遍歷鍵的並集,缺的當 null。在端點 URL 後加 ?help 就能拿到目前欄位的 Markdown 清單,把它放進同步任務裡做 diff,新欄出現時不會給你驚喜。

儀表板能直接讀資料嗎?

能。讀端也開著 CORS,瀏覽器端的小元件可以直接打 query 和 summary 兩個端點。聚合類磚塊優先使用 /summary:一次 GET,不用分頁,帳已在伺服器端算完。

← 上一篇:MCP 全流程實作 接著看文件:Data API 總覽 →