빌더 폼 한계 넘어서기5분 분량
Carrd 폼: 제출을 폼 백엔드로 보내기
Carrd의 문의 폼은 이메일만 보내고 커스텀 폼에는 Pro Plus가 필요하므로, 모든 제출을 저장하려면 Plus에서는 Send to URL을, Standard에서는 HTML 임베드를 쓰세요.
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에는 원클릭 이메일 도구 통합이 없습니다.
- 무료 플랜이나 Pro Lite에는 폼 요소도 임베드도 없으므로 연결할 것이 없습니다. 업그레이드하거나 다른 곳에 호스팅된 폼으로 링크하세요.
- Pro Standard에서는 Embed 요소에 HTML 폼을 붙여 넣으세요. 방문자의 브라우저가 이를 Ikiform으로 POST합니다.
- Pro Plus에서는 Carrd 편집기에서 Custom 폼을 만들고 AJAX 방식의 Send to URL로 설정하세요. Carrd 폼이 Ikiform으로 POST하고 자체 성공 메시지를 보여 줍니다.
Pro Plus: Send to URL 설정
코드 없이 Carrd의 폼 편집기와 스타일을 유지합니다. 아래 필드는 사진작가의 촬영 예약 문의용이니 자신의 필드를 쓰세요.
- Add Element > Form을 클릭하고 Type을 Custom으로, 그다음 Send to URL로 설정하세요.
- 엔드포인트를 URL에 붙여 넣으세요.
- Method를 AJAX로, Format을 Default로 설정하세요. Carrd는 모든
2xx응답을 성공으로 읽고, Ikiform은 POST를 저장하면201로 응답합니다. - 필드를 추가하세요. Text
name, Emailemail, Selectservice, Datepreferred_date, Text Areadetails입니다. 각 필드의 ID를 설정하세요. 그렇지 않으면 Carrd가 레이블에서 생성합니다. - On Success에서 보여 줄 메시지나 섹션을 고르세요. On Failure의 문구는 일반적으로 두세요. Carrd는 Ikiform의 오류 메시지를 보여 주지 않습니다.
- 게시하세요. 폼은 게시된 사이트에서만 POST합니다.
https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx| Carrd 설정 | 사용할 값 | 피할 것 |
|---|---|---|
| Method | AJAX: 방문자가 페이지에 머묾 | POST: 브라우저가 Ikiform의 감사 페이지로 떠나고 On Success는 실행되지 않음 |
| Format | Default 또는 JSON | XML: 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 문서 가이드에 모든 설정과 이유가 있습니다.
Carrd에서 동작 확인하기
- 폼의 Allowed domains에 사이트 도메인을 추가하고, 개발하는 동안에는
localhost도 추가하세요. 비워 두면 어디서든 POST를 받습니다. - 게시한 뒤 게시된 사이트에서 폼을 제출하세요.
- Carrd가 On Success를 보여 주는지, 또는 임베드가 감사 문구를 보여 주는지 확인하세요.
- 대시보드에서 Submissions를 여세요. 보낸 모든 필드가 담긴 새 제출이 있습니다.
- 이름이 설정한 ID인지,
preferred_date가2026-11-14처럼 읽히는지, 예상하지 않은utm_필드가 도착하지 않았는지 확인하세요. - 알림 수신자 각각의 받은편지함을 확인하세요. 각자 필드가 담긴 이메일을 받고, 폼에
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)로 토큰을 받거나 검사를 끄세요. |
질문
Pro Plus입니다. Send to URL을 포함한 커스텀 폼은 Advanced Forms 기능입니다. Pro Standard에서는 대신 Embed 요소에 직접 만든 HTML 폼을 붙여 넣을 수 있습니다.
AJAX입니다. 방문자를 Carrd 페이지에 머물게 하고 On Success와 On Failure 설정을 실행합니다. POST는 대신 브라우저를 Ikiform의 감사 페이지나 설정한 리디렉션으로 보냅니다.
아니요. Hidden 필드는 항상 미리 설정한 값을 제출하므로 봇과 사람을 구분할 수 없습니다. Ikiform의 스팸 점수, 레이트 리밋, 허용 도메인은 여전히 모든 POST를 확인하며, 임베드 버전은 진짜 허니팟을 담을 수 있습니다.
네, 아마 그러는 편이 좋습니다. 사람을 이메일 도구에 바로 추가합니다. 문의나 예약처럼 저장된 기록이 필요한 폼에 Ikiform을 쓰세요.
아니요, 무료 플랜은 없습니다. 테스트는 무료입니다. 결제 전에 localhost에서 테스트 제출을 매월 50건 보낼 수 있습니다. 실제로 운영하려면 Pro가 제출 500건에 월 $6부터이며, 한 번만 결제해 제출 10,000건을 $49에, 50,000건을 $149에 살 수도 있습니다. 크레딧은 만료되지 않습니다.
막히는 단계가 있거나 내 상황에 맞는 가이드가 필요하다면 이메일을 보내세요: hello@ikiform.com.