コンテンツにスキップ

外部受付口

受付口は、ふつうの HTML フォームの送信先にできる URL です。送信内容は Minion のフォームに 届き、「回答」タブで読むか CSV で書き出せます。

狙いは、ページにメールアドレスを載せなくて済むことです。載るのは受付口の URL だけで、 これを拾ってもスパムの送り先にはなりません。

送信内容を Minion に保存できる
JavaScript なしで動くできる
画面で読む / CSV で書き出すできる
ミニオン (AI エージェント) から読むできる — 既存の Forms API
メール通知まだありません。 「回答」タブを見るか、ミニオンに定期的に拾わせてください
送信者への自動返信まだありません
ファイル添付対応していません。 ファイル付きの送信は拒否されます
  1. Minion でフォームを開き、外部受付口タブ → 受付口を発行
  2. 許可するサイトにフォームを置くサイトを、送信後の戻り先に同じサイトのページを 入れます。
  3. 送信先 URL、または埋め込みコードをコピーします。

これで全部です。JavaScript もビルド手順も要りません。

<form action="https://YOUR-HQ/api/public/forms/e/YOUR-TOKEN" method="POST">
<input type="text" name="name" placeholder="お名前">
<input type="email" name="email" placeholder="メールアドレス">
<textarea name="message" placeholder="お問い合わせ内容"></textarea>
<!-- いたずら対策。隠したまま・空のままにしてください -->
<input type="text" name="_gotcha" tabindex="-1" autocomplete="off" style="display:none">
<button type="submit">送信</button>
</form>

項目を Minion 側で定義する必要はありません。 使った name がそのまま「回答」タブの列に なります。名前を変えても、増やしても、減らしても、Minion 側で合わせる作業はありません。

_gotcha は人には見えず、人は絶対に入力しない項目です。ボットは見つけた項目をすべて埋めるので、 ここに値が入っている送信は捨てられます。

company ではない点に注意してください。問い合わせフォームで「会社名」は実在する正当な 項目なので、これを罠に使うと会社名を書いた本物の問い合わせが黙って消えます

_ で始まる名前は受付口への指示として扱われ、保存されません

名前意味
_gotchaいたずら対策 (上記)
_nextこのフォームだけ戻り先を上書きする (許可するサイトの範囲内)

自分の項目名に _ を使うと消えてしまうので避けてください。

素の HTML フォームの送信はページ遷移なので、ブラウザは受付口の URL に着地します。そこに あなたのページは介入できません。 そこで受付口が、送信者をあなたのサイトへ戻します

  • 通常は、設定した送信後の戻り先へ。
  • _next を送っていて、それが許可するサイトを指していれば、そちらへ。

どちらも使えない場合は、Minion が素っ気ない「受け付けました」の画面を出します。動きはしますが、 送信者が見知らぬドメインの飾り気のない画面を見ている状態なので、戻り先は設定してください。

Minion 側にカスタマイズできるサンキューページはありません。 そのページはあなたのサイトに あるべきもので、デザインもコンバージョン計測もそちらにあるからです。

フォームを置くサイトを1行に1つ (https://example.com) 書きます。1つでも入れると、それ以外の サイトからの送信は拒否されます。

  • サブドメインは含まれません。 https://example.comhttps://www.example.com は 別々に書きます。
  • http://https:// も別物です。
  • 空のままだとどのサイトからでも送信できます。試している間はそれで構いませんが、公開前に 埋めてください。

結果を自分で扱いたい場合は JSON で送ります。リダイレクトはせず JSON が返ります。

const res = await fetch(endpointUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name, email, message }),
})
if (res.ok) { /* 201 { ok: true } */ }

ブラウザがレスポンスを受け取るには、サイトの origin が許可するサイトに入っている必要が あります。

1送信あたりの項目数50
項目名の長さ64 文字
値の長さ10,000 文字
送信全体64 KB
IP ごと10 件/分
受付口ごと1日の受付上限 (既定 500)

1日の受付上限はいたずら対策の線であって割り当てではありません。実際の件数よりかなり大きく しておいて構いません。超えた送信は拒否され、保存されません

JSON で送った場合は { "error": "<コード>" } が返ります。素のフォームの場合は、同じコードが 書かれた最小限の画面が出ます。

コードステータス内容
not_found404トークンが違うか、受付口が失効している
origin_not_allowed403送信元が許可するサイトに入っていない
not_accepting403フォームが未公開・受付終了・締切後
rate_limited429同一 IP からの送信が多すぎる
daily_limit_reached429受付口の1日の上限
empty_submission400保存するものが無い (全項目が空か予約名)
too_many_fields / value_too_long / payload_too_large400上記の上限超過
attachments_not_supported400ファイルが添付されている

受付口を失効させてください。貼り付け済みのフォームからは即座に送信できなくなり、すでに 届いた問い合わせはそのまま残ります。失効は埋め込み側から見ると取り消せません — 新しい受付口は 新しい URL になるので、ページの更新が必要になります。

1つのフォームに複数の受付口を持てます。サイトごとに分けて発行しておくと、片方だけを 止められます。