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_found404表單不存在
origin403從此表單不接受的網站送出
rate429短時間內送出太多次
body400無法讀取內容
empty400所有欄位都是空的

防範垃圾訊息

在表單中加入名為 _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 每天整合成一封郵件寄出。寄送時間可以更改,沒有新訊息的日子不會寄信。

通知設定。開啟或關閉 ★3 郵件與每日摘要,並設定摘要的寄送時間。
通知設定。開啟或關閉 ★3 郵件與每日摘要,並設定摘要的寄送時間。
★3 訊息的通知郵件。
★3 訊息的通知郵件。
每日摘要郵件。
每日摘要郵件。

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

聊天工具通知(專業方案以上)。
聊天工具通知(專業方案以上)。

Webhook

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

Webhook 設定(商務方案)。
Webhook 設定(商務方案)。

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 網址,以及表單設定中的「僅接受來自這些網站的提交」。

把心力留給重要的詢問。

每月 100 則以內免費。 只需要電子郵件地址,不需要信用卡。

免費開始