ビルダーのフォームを卒業する

ビルダーのフォームを卒業する2 分で読めます

Carrd のフォーム:送信データをフォームバックエンドに送る

Carrd のお問い合わせフォームはメールで届けるだけで、カスタムフォームには Pro Plus が必要です。すべての送信を保存するには、Plus なら Send to URL、Standard なら HTML の埋め込みを使います。

Preet SutharIkiform 創業者

Carrd のフォームには Pro プランが必要です。Pro Standard ではお問い合わせフォームと登録フォームが使え、Pro Plus では任意の URL に送信できるカスタムフォームが加わります。Pro Plus ではカスタムフォームを Ikiform のエンドポイントへの Send to URL に設定すれば、Carrd 自身の成功メッセージも残ります。Pro Standard では HTML のフォームを Embed 要素に貼り付ければ、アップグレードせずに自由なフィールドを使えます。

Carrd ならではの違い

Carrd に送信数の上限はありません。フォームの機能をプランで分けており、各プランは決まった数のサイトに対する年額料金です。2026 年 10 月時点で、Carrd の料金ページとドキュメントでは次のように分かれています。

プラン使えるフォーム意味すること
Free と Pro Liteなしフォーム要素も埋め込みもなし。別の場所のフォームにリンクするか、アップグレードします
Pro Standard(年 $19 から)最大 5 人の受信者にメールを送る Contact フォーム、メールツールに登録者を追加する Signup フォーム、Embed 要素お問い合わせフォームのフィールドは固定です。埋め込みには自作のフォームを含め、どんな HTML でも入れられます
Pro Plus(年 $49 から)上記すべてに加えて Custom フォーム。メールを送るか、Airtable、Make、n8n、Zapier、URL、自分のコードに送信できますフィールドは自由で、Send to URL で好きな場所に送信できます

Carrd のお問い合わせフォームは各メッセージを @mail.carrd.site からメールで届けるので、受信トレイが記録になり、迷惑メールに振り分けられたメッセージは見落としがちです。移行するよくある理由はこれです。1 つのメールボックスではなく、保存されて検索できる一覧、エクスポート、チーム全員への通知がほしいのです。

Mailchimp、Kit などのメールツールに新しい購読者を追加したいだけなら、Pro Standard の Carrd の Signup フォームですでにでき、そちらのほうが適しています。Ikiform にはメールツールとのワンクリック連携はありません。

どの Carrd のプランかで、フォームが Ikiform に届く方法が決まるPro Lite か無料フォームも埋め込みもなしアップグレードかリンクPro StandardEmbed 要素自作の HTML フォームIkiformブラウザーが送信Pro PlusCustom フォームSend to URL、AJAXIkiformCarrd のフォームが送信どの Carrd のプランかで、フォームが Ikiform に届く方法が決まるPro Lite か無料フォームも埋め込みもなしアップグレードかリンクPro StandardEmbed 要素自作の HTML フォームIkiformブラウザーが送信Pro PlusCustom フォームSend to URL、AJAXIkiformCarrd のフォームが送信
  1. 無料プランや Pro Lite にはフォーム要素も埋め込みもないので、つなぐものがありません。アップグレードするか、別の場所でホストしたフォームにリンクしてください。
  2. Pro Standard では、HTML のフォームを Embed 要素に貼り付けます。訪問者のブラウザーがそれを Ikiform に送信します。
  3. Pro Plus では、Carrd のエディターで Custom フォームを作り、AJAX メソッドの Send to URL に設定します。Carrd のフォームが Ikiform に送信し、Carrd 自身の成功メッセージを表示します。
どちらの方法も訪問者のブラウザーから送信するので、許可ドメイン、レート制限、スパムスコアはほかのサイトと同じように機能します。

Pro Plus:Send to URL

Carrd のフォームエディターとスタイルをそのまま使え、コードは不要です。以下のフィールドは写真家の撮影予約の問い合わせ用です。自分のものに置き換えてください。

  1. Add Element > Form をクリックし、Type を Custom に、続いて Send to URL に設定します。
  2. エンドポイントを URL に貼り付けます。
  3. Method を AJAX に、Format を Default に設定します。Carrd は 2xx の応答をすべて成功とみなし、Ikiform は送信を保存すると 201 を返します。
  4. フィールドを追加します:Text name、Email email、Select service、Date preferred_date、Text Area details。各フィールドの ID を設定してください。設定しないと Carrd がラベルから生成します。
  5. On Success で、表示するメッセージかセクションを選びます。On Failure の文言は一般的なものにしておきます。Carrd は Ikiform のエラーメッセージを表示しません。
  6. 公開します。フォームが送信できるのは公開したサイトからだけです。
URL
https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx
Carrd の設定使うもの避ける名前
MethodAJAX:訪問者はページにとどまるPOST:ブラウザーが Ikiform のサンクスページに移動し、On Success は実行されない
FormatDefault か JSONXML:Ikiform は 415 unsupported_media_type で拒否する
Collect UTM parameters問題なし。ただしフィールド定義には utm_ フィールドを 5 つ追加するフィールドを定義したあとでオンにする:UTM タグ付きのリンクからの送信がすべて Unknown field で失敗する
File フィールド使わないファイルのアップロードにはまだ対応していません。ファイル付きの送信には 422 files_not_supported が返ります。
Spam Protectionこのフォームではなしキャプチャのプロバイダー:Carrd のドキュメントには Send to URL のフォームでトークンを検証するとは書かれておらず、Ikiform が Turnstile のトークンを確認するのは自分のキーを Ikiform に保存した場合だけです

Hidden フィールドは常に設定済みの値を送るので、ここではハニーポットとして機能しません。それでも、Ikiform のスパムスコア、レート制限、許可ドメインはすべての送信に適用されます。このフォームでは Ikiform の Spam check をオフのままにしてください。AJAX の送信ではチェックを表示できず、403 challenge_required で失敗します。

Pro Standard:Embed 要素

Pro Standard では Carrd でカスタムフォームを作れませんが、貼り付けることはできます。Add Element > Embed をクリックし、Type を Code に、Style を Inline にして、これを貼り付けます。Carrd のフォームのスタイルは埋め込みコードには届かないので、独自のスタイルを含めています。

埋め込み
<form id="booking" action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post" target="_top">
  <input name="name" placeholder="Name" autocomplete="name" required>
  <input name="email" type="email" placeholder="Email" autocomplete="email" required>
  <select name="service" required>
    <option value="" disabled selected>What do you need?</option>
    <option value="portrait">Portrait session</option>
    <option value="event">Event coverage</option>
    <option value="product">Product photos</option>
  </select>
  <input name="preferred_date" type="date" aria-label="Preferred date">
  <textarea name="details" rows="4" placeholder="Anything else?" maxlength="2000"></textarea>
  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden>
  <button type="submit">Request a booking</button>
  <p id="booking-note" role="status"></p>
</form>
<style>
  #booking { display: grid; gap: 0.75rem; font: inherit; }
  #booking input, #booking select, #booking textarea { font: inherit; padding: 0.75rem; border: 1px solid #ccc; border-radius: 0.5rem; }
  #booking button { font: inherit; padding: 0.75rem; border: 0; border-radius: 0.5rem; background: #111; color: #fff; }
</style>
<script>
  const booking = document.getElementById("booking");
  booking.addEventListener("submit", async (event) => {
    event.preventDefault();
    const note = document.getElementById("booking-note");
    note.textContent = "Sending";
    try {
      const response = await fetch(booking.action, {
        method: "POST",
        headers: { Accept: "application/json" },
        body: new FormData(booking),
      });
      const result = await response.json();
      if (result.ok) {
        booking.replaceChildren("Thanks. I'll reply with availability.");
        return;
      }
      const fields = result.error.fields ?? {};
      note.textContent = fields.preferred_date?.[0] ?? fields.email?.[0] ?? result.error.message;
    } catch {
      note.textContent = "Couldn't send. Try again, or email me directly.";
    }
  });
</script>
  • スクリプトは fetch で送信し、フォームをお礼の一文に置き換えるので、ページは変わりません。
  • Carrd の Hidden フィールドと違い、非表示の _gotcha 入力欄はここでは本物のハニーポットです。
  • スクリプトの読み込みに失敗しても、フォームは通常どおり送信されます。target="_top" で、結果がフレームの中に開くのを防ぎます。
  • 埋め込みは Carrd のエディターでは動きません。フォームを見るには公開してください。

どちらの版も同じフィールドを送ります。テストが届いたら、Ikiform でフィールドを定義します。

プレビュー

Ikiform のバリデーターをブラウザーで実行します。何も送信されません。

日程に融通がきくなら空欄のままで。

preferred_date は date フィールドなので、Ikiform は YYYY-MM-DD を受け付けます。Carrd の Date フィールドもブラウザーの日付入力も、この形式で送ります。

Carrd の許可ドメイン

your-site.carrd.co(Pro なら your-site.crd.co)と独自ドメインを追加します。carrd.co 単体は追加しないでください。すべての Carrd サイトが送信できるようになってしまいます。Carrd のドキュメントガイドに、すべての設定とその理由があります。

1 つのフォームを移しても、ほかのフォームは移りません。メールツールにつながる Signup フォームは、Ikiform に送信する Custom フォームや埋め込みと並べて、そのまま残せます。

Carrd で動作を確認する

  1. フォームの Allowed domains に自分のサイトのドメインを追加し、開発中は localhost も追加します。空のままにすると、どこからの送信も受け付けます。
  2. 公開し、公開したサイトでフォームを送信します。
  3. Carrd に On Success が表示されるか、埋め込みにお礼の一文が表示されることを確認します。
  4. ダッシュボードで Submissions を開きます。送ったすべてのフィールドを含む新しい送信データがあります。
  5. name が設定した ID になっていること、preferred_date が 2026-11-14 のような形式であること、想定していない utm_ フィールドが届いていないことを確認します。
  6. 通知の各受信者の受信トレイを確認します。それぞれにフィールド入りのメールが届き、フォームに email フィールドがあれば Reply で送信者に返信できます。

ハマりどころ

問題対処法
Carrd で毎回 On Failure が表示されるXML 形式(415)、File フィールド(422)、UTM の収集による Unknown field、または Ikiform の Spam check がオン(403)のどれかです。当てはまるものを直してください。
フィールド名がラベルのようになっているID と Submitted ID が空でした。設定して再公開してください。
エディターで埋め込みが空白になるCarrd はエディターで埋め込みコードを実行しません。公開して本番のサイトで確認してください。
403 origin_not_allowed が返る、またはすべての送信がスパムになるページのドメインがフォームの Allowed domains にありません。ドメインと、ローカルテスト用の localhost を追加してください。登録したドメインのサブドメインは許可されます。
403 challenge_requiredフォームのスパムチェックが Ikiform に設定されていて、fetch の送信にトークンがありませんでした。送信のたびに @ikiform/sdk の challenge(formId) でトークンを取得するか、チェックをオフにしてください。

よくある質問

手順で詰まったときや、あなたの状況に合うガイドがほしいときはメールでどうぞ: hello@ikiform.com