DOCS
設定指南
Formchan 是表單送出資料的目的地。串接所需的一切都整理在這一頁。
BUILD WITH AI
如果您用 AI 開發, 只要提供網址和規格書。
將管理畫面的表單傳送網址和這份英文 Markdown 規格書交給開發 AI,即可請它連接現有表單或建立新表單。
查看給 AI 的指示
請將這個網站的聯絡表單連接至 Formchan。 傳送網址:[貼上管理畫面取得的專屬網址] 串接規格書:https://formchan.app/lp/integration-en.md 閱讀規格書並保留現有設計進行串接。如沒有表單,請建立一個。請加入輸入驗證、傳送中、成功及錯誤提示,避免重複傳送,並說明如何測試。
開始使用
註冊後會自動建立第一個表單。複製儀表板上顯示的網址,填入表單的 action,method 請設為 POST。

<form action="https://formchan.app/f/YOUR_FORM_KEY" method="POST"> <input name="name"> <input name="email" type="email"> <textarea name="message"></textarea> <button>傳送</button> </form>
送出表單的人會看到確認頁面。訊息會送進您的收件匣,AI 會加上 ★ 與標籤。
欄位名稱
欄位名稱可以自由命名。送出的每個欄位都會原樣顯示在收件匣與通知郵件中。
用於回覆的電子郵件地址,會從名為 email 的欄位讀取,也可以用 mail 或 _replyto。寄件者姓名會從 name 或 fullname 讀取。
每次送出最多 64 KB、50 個欄位,每個欄位最多 5,000 個字元。
送出之後
若未做任何設定,Formchan 會顯示自己的確認頁面,並附上返回上一頁的連結。

若要導向您自己的頁面,請把網址放進名為 _next 的隱藏欄位。
<input type="hidden" name="_next" value="https://example.com/thanks">
從 JavaScript 送出
加上 Accept: application/json 標頭送出,Formchan 會以 JSON 回應,而不是顯示頁面。訪客會留在您的頁面上。
const res = await fetch('https://formchan.app/f/YOUR_FORM_KEY', { method: 'POST', headers: { Accept: 'application/json' }, body: new FormData(form), }); const data = await res.json(); // { ok: true }
成功時回傳 ok: true;失敗時回傳 ok: false 與下列其中一個錯誤代碼。
| 代碼 | HTTP | 說明 |
|---|---|---|
not_found | 404 | 表單不存在 |
origin | 403 | 從此表單不接受的網站送出 |
rate | 429 | 短時間內送出太多次 |
body | 400 | 無法讀取內容 |
empty | 400 | 所有欄位都是空的 |
防範垃圾訊息
在表單中加入名為 _gotcha 的隱藏欄位。人看不到這個欄位,但機器人會填寫它。這類送出表面上會被接受,實際上會直接丟棄。
<input name="_gotcha" style="display:none" tabindex="-1" autocomplete="off">
同一來源在短時間內多次送出的訊息會被拒絕。
在表單設定中,可以列出允許送出的網站。來自其他網站的送出會被拒絕。
在 WordPress、Webflow 等平台使用
- HTML
- 直接使用上方的表單程式碼。
- WordPress
- 將表單程式碼貼到「自訂 HTML」區塊。
- Webflow
- 在表單設定中,將網址填入 Action,並把 Method 設為 POST。
- React / Next.js
- 依照「從 JavaScript 送出」的說明,使用 fetch 送出。
通知
★3 訊息一送達,就會寄到您的通知信箱。新增信箱時,我們會寄出確認信,點擊信中的連結後才會開始通知。

★1 與 ★2 每天整合成一封郵件寄出。寄送時間可以更改,沒有新訊息的日子不會寄信。



專業方案以上,還能將訊息傳送到 Slack、Chatwork、Microsoft Teams、Google Chat 與 Discord。

Webhook
使用商務方案時,每則訊息送達並由 AI 讀完後,Formchan 會以 POST 將 JSON 傳送到您指定的網址。

X-Formchan-Signature 標頭包含以您的 Webhook 簽章金鑰對請求內容簽署的 HMAC-SHA256,格式為 sha256=…。請在您這端計算相同的值,確認請求確實來自 Formchan。
內容範例
{
"event": "submission.created",
"at": "2026-10-12T09:29:41.000Z",
"workspace": { "id": "w_…", "name": "Harbor Design Studio" },
"submission": {
"id": "sb_…",
"number": 1,
"form": { "id": "fm_…", "name": "Contact" },
"received_at": "2026-10-12T09:29:38.000Z",
"name": "Emily Parker",
"email": "emily@example.com",
"fields": { "name": "Emily Parker", "email": "emily@example.com", "message": "…" },
"stars": 3,
"tags": [{ "id": "tg_…", "name": "Inquiry", "by": "ai" }],
"summary": "Wants a consultation on adding a second floor.",
"reason": "Concrete request with budget and timeline.",
"done": false
}
}驗證簽章(Node.js)
import crypto from 'node:crypto'; // rawBody: the request body as a string, before JSON.parse function isFromFormchan(rawBody, signature, secret) { const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex'); const a = Buffer.from(expected), b = Buffer.from(signature || ''); return a.length === b.length && crypto.timingSafeEqual(a, b); }
如果收不到訊息,請檢查 action 網址,以及表單設定中的「僅接受來自這些網站的提交」。