빌더 폼 한계 넘어서기

빌더 폼 한계 넘어서기5분 분량

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에서는 Embed 요소에 HTML 폼을 붙여 넣으면 업그레이드 없이 커스텀 필드를 쓸 수 있습니다.

Carrd에서 다른 점

Carrd는 제출 수를 제한하지 않습니다. 대신 플랜별로 폼 기능을 나누며, 각 플랜은 정해진 사이트 수에 대한 연간 요금입니다. 2026년 10월 기준 Carrd의 요금과 문서는 다음과 같이 선을 긋습니다.

플랜제공되는 폼의미
Free와 Pro Lite없음폼 요소도 임베드도 없습니다. 다른 곳의 폼으로 링크하거나 업그레이드하세요
Pro Standard, 연 $19부터최대 다섯 명의 수신자에게 이메일을 보내는 Contact 폼, 이메일 도구에 사람을 추가하는 Signup 폼, 그리고 Embed 요소문의 폼은 필드가 고정되어 있습니다. 임베드는 직접 만든 폼을 포함해 어떤 HTML이든 받습니다
Pro Plus, 연 $49부터위의 모든 것에 더해 Custom 폼: 이메일 보내기, 또는 Airtable, Make, n8n, Zapier, URL, 직접 작성한 코드로 보내기어떤 필드든 쓸 수 있고, Send to URL은 원하는 곳으로 POST합니다

Carrd 문의 폼은 각 메시지를 @mail.carrd.site에서 이메일로 전달하므로 받은편지함이 기록이고, 스팸함으로 분류된 메시지는 놓치기 쉽습니다. 이것이 흔히 옮기는 이유입니다. 메일함 하나가 아니라 저장되고 검색 가능한 목록, 내보내기, 팀 전체를 위한 알림을 원하는 것입니다.

Mailchimp, Kit 같은 이메일 도구에 새 구독자만 넣으면 된다면 Pro Standard의 Carrd Signup 폼이 이미 그 일을 하며 더 나은 선택입니다. Ikiform에는 원클릭 이메일 도구 통합이 없습니다.

사용 중인 Carrd 플랜이 폼이 Ikiform에 도달하는 방식을 정합니다Pro Lite 또는 무료폼 없음, 임베드 없음업그레이드 또는 외부 링크Pro StandardEmbed 요소직접 만든 HTML 폼Ikiform브라우저가 POSTPro PlusCustom 폼Send to URL 방식, AJAXIkiformCarrd 폼이 POST사용 중인 Carrd 플랜이 폼이 Ikiform에 도달하는 방식을 정합니다Pro Lite 또는 무료폼 없음, 임베드 없음업그레이드 또는 외부 링크Pro StandardEmbed 요소직접 만든 HTML 폼Ikiform브라우저가 POSTPro PlusCustom 폼Send to URL 방식, AJAXIkiformCarrd 폼이 POST
  1. 무료 플랜이나 Pro Lite에는 폼 요소도 임베드도 없으므로 연결할 것이 없습니다. 업그레이드하거나 다른 곳에 호스팅된 폼으로 링크하세요.
  2. Pro Standard에서는 Embed 요소에 HTML 폼을 붙여 넣으세요. 방문자의 브라우저가 이를 Ikiform으로 POST합니다.
  3. Pro Plus에서는 Carrd 편집기에서 Custom 폼을 만들고 AJAX 방식의 Send to URL로 설정하세요. Carrd 폼이 Ikiform으로 POST하고 자체 성공 메시지를 보여 줍니다.
두 경로 모두 방문자의 브라우저에서 POST를 보내므로 허용 도메인, 레이트 리밋, 스팸 점수가 다른 사이트와 똑같이 동작합니다.

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은 POST를 저장하면 201로 응답합니다.
  4. 필드를 추가하세요. Text name, Email email, Select service, Date preferred_date, Text Area details입니다. 각 필드의 ID를 설정하세요. 그렇지 않으면 Carrd가 레이블에서 생성합니다.
  5. On Success에서 보여 줄 메시지나 섹션을 고르세요. On Failure의 문구는 일반적으로 두세요. Carrd는 Ikiform의 오류 메시지를 보여 주지 않습니다.
  6. 게시하세요. 폼은 게시된 사이트에서만 POST합니다.
URL
https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx
Carrd 설정사용할 값피할 것
MethodAJAX: 방문자가 페이지에 머묾POST: 브라우저가 Ikiform의 감사 페이지로 떠나고 On Success는 실행되지 않음
FormatDefault 또는 JSONXML: Ikiform이 415 unsupported_media_type으로 거부함
Collect UTM parameters괜찮지만, 필드 정의에 utm_ 필드 다섯 개를 추가하세요필드를 정의한 뒤에 켜는 것: UTM 태그가 있는 링크에서 온 모든 POST가 Unknown field로 실패함
File 필드전혀 안 됨파일 업로드는 아직 지원하지 않습니다. 파일이 포함된 POST는 422 files_not_supported를 받습니다.
Spam Protection이 폼에는 없음캡차 제공자: Carrd 문서는 Send to URL 폼에서 토큰을 검증한다고 하지 않으며, Ikiform은 Ikiform에 저장한 자체 키로만 Turnstile 토큰을 확인합니다

Hidden 필드는 항상 미리 설정한 값을 보내므로 여기서는 허니팟으로 쓸 수 없습니다. Ikiform의 스팸 점수, 레이트 리밋, 허용 도메인은 여전히 모든 POST에 실행됩니다. 이 폼의 Ikiform Spam check는 끈 채로 두세요. AJAX POST는 확인을 보여 줄 수 없어 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로 POST하고 폼을 감사 문구로 바꾸므로 페이지가 바뀌지 않습니다.
  • 숨겨진 _gotcha 입력은 Carrd Hidden 필드와 달리 여기서는 진짜 허니팟입니다.
  • 스크립트가 로드되지 않아도 폼은 일반적으로 POST합니다. 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 사이트가 POST할 수 있게 됩니다. Carrd 문서 가이드에 모든 설정과 이유가 있습니다.

폼 하나를 옮겨도 나머지는 옮겨지지 않습니다. 이메일 도구로 보내는 Signup 폼은 Ikiform으로 POST하는 Custom 폼이나 임베드 옆에 그대로 둘 수 있습니다.

Carrd에서 동작 확인하기

  1. 폼의 Allowed domains에 사이트 도메인을 추가하고, 개발하는 동안에는 localhost도 추가하세요. 비워 두면 어디서든 POST를 받습니다.
  2. 게시한 뒤 게시된 사이트에서 폼을 제출하세요.
  3. Carrd가 On Success를 보여 주는지, 또는 임베드가 감사 문구를 보여 주는지 확인하세요.
  4. 대시보드에서 Submissions를 여세요. 보낸 모든 필드가 담긴 새 제출이 있습니다.
  5. 이름이 설정한 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, 또는 모든 POST가 스팸으로 분류됨페이지의 도메인이 폼의 Allowed domains에 없습니다. 도메인을 추가하고, 로컬 테스트용으로 localhost도 추가하세요. 등록된 도메인의 하위 도메인은 허용됩니다.
403 challenge_required폼의 스팸 검사가 Ikiform으로 설정되어 있는데 fetch POST에 토큰이 없었습니다. 제출할 때마다 @ikiform/sdk의 challenge(formId)로 토큰을 받거나 검사를 끄세요.

질문

막히는 단계가 있거나 내 상황에 맞는 가이드가 필요하다면 이메일을 보내세요: hello@ikiform.com.