# Carrd 폼: 제출을 폼 백엔드로 보내기

> Carrd의 문의 폼은 이메일만 보내고 커스텀 폼에는 Pro Plus가 필요하므로, 모든 제출을 저장하려면 Plus에서는 Send to URL을, Standard에서는 HTML 임베드를 쓰세요.

2026-10-25 게시 · https://ikiform.com/ko/guides/website-builder-forms/carrd-forms

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에 도달하는 방식을 정합니다

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`:

```text
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의 폼 스타일은 임베드 코드에 적용되지 않으므로 자체 스타일을 담고 있습니다.

`임베드`:

```html
<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에서 정의하세요.

폼: Booking enquiry

- **이름** (`name`, text, 필수)
- **이메일** (`email`, email, 필수)
- **무엇이 필요하신가요?** (`service`, select, 필수)
- **희망 날짜** (`preferred_date`, date)
- **그 밖에 전할 내용이 있나요?** (`details`, textarea)

`preferred_date`는 `date` 필드이므로 Ikiform은 `YYYY-MM-DD`를 받으며, 이는 Carrd의 Date 필드와 브라우저 날짜 입력이 모두 보내는 형식입니다.

## Carrd의 허용 도메인

`your-site.carrd.co`, Pro에서는 `your-site.crd.co`와 커스텀 도메인을 추가하세요. `carrd.co`만 단독으로 추가하지 마세요. 모든 Carrd 사이트가 POST할 수 있게 됩니다. [Carrd 문서 가이드](https://ikiform.com/ko/docs/guides/carrd.md)에 모든 설정과 이유가 있습니다.

> 폼 하나를 옮겨도 나머지는 옮겨지지 않습니다. 이메일 도구로 보내는 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)`로 토큰을 받거나 검사를 끄세요. |

## 질문

### URL로 보내는 폼에는 어떤 Carrd 플랜이 필요한가요?

Pro Plus입니다. Send to URL을 포함한 커스텀 폼은 Advanced Forms 기능입니다. Pro Standard에서는 대신 Embed 요소에 직접 만든 HTML 폼을 붙여 넣을 수 있습니다.

### Carrd Send to URL 폼에는 AJAX와 POST 중 무엇을 써야 하나요?

AJAX입니다. 방문자를 Carrd 페이지에 머물게 하고 On Success와 On Failure 설정을 실행합니다. POST는 대신 브라우저를 Ikiform의 감사 페이지나 설정한 리디렉션으로 보냅니다.

### Carrd Hidden 필드를 허니팟으로 쓸 수 있나요?

아니요. Hidden 필드는 항상 미리 설정한 값을 제출하므로 봇과 사람을 구분할 수 없습니다. Ikiform의 스팸 점수, 레이트 리밋, 허용 도메인은 여전히 모든 POST를 확인하며, 임베드 버전은 진짜 허니팟을 담을 수 있습니다.

### 뉴스레터용 Carrd 가입 폼은 그대로 둬도 되나요?

네, 아마 그러는 편이 좋습니다. 사람을 이메일 도구에 바로 추가합니다. 문의나 예약처럼 저장된 기록이 필요한 폼에 Ikiform을 쓰세요.

### Ikiform은 무료인가요?

아니요, 무료 플랜은 없습니다. 테스트는 무료입니다. 결제 전에 localhost에서 테스트 제출을 매월 50건 보낼 수 있습니다. 실제로 운영하려면 Pro가 제출 500건에 월 $6부터이며, 한 번만 결제해 제출 10,000건을 $49에, 50,000건을 $149에 살 수도 있습니다. 크레딧은 만료되지 않습니다.

## 가이드 더 보기

- [빌더 폼 한계 넘어서기](https://ikiform.com/ko/guides/website-builder-forms.md): Webflow, Netlify, Carrd, Framer 폼이 한도나 빠진 기능에 부딪히면, 디자인한 폼은 그대로 두고 대신 폼 백엔드를 가리키게 하세요.
- [Webflow 제출 한도](https://ikiform.com/ko/guides/website-builder-forms/webflow-submission-limit.md): Webflow의 무료 Starter 플랜은 사이트당 폼 제출 50건 이후로 수집을 멈추고 내보낸 사이트는 아예 수집하지 않으니, 대신 Form Block이 Ikiform을 가리키게 하세요.
- [Framer 폼](https://ikiform.com/ko/guides/website-builder-forms/framer-forms.md): Framer 폼은 이미 이메일, Sheets, 웹훅으로 보냅니다. 저장되고 걸러진 제출, 팀 알림, 더 많은 목적지를 원한다면 Ikiform을 웹훅으로 추가하세요.
- [Netlify Forms 한도](https://ikiform.com/ko/guides/website-builder-forms/netlify-forms-limit.md): 레거시 Netlify 플랜은 사이트별 폼 제출을 계량해 자동으로 업그레이드하고, 크레딧 플랜은 사이트를 일시 중지할 수 있으니 폼을 백엔드로 옮기세요.
