Dépasser les formulaires intégrés7 min de lecture
Formulaires Carrd : envoyer les soumissions vers un backend de formulaires
Le formulaire de contact de Carrd ne fait que vous envoyer un e-mail et les formulaires personnalisés nécessitent Pro Plus, alors utilisez Send to URL sur Plus ou une intégration HTML sur Standard pour stocker chaque soumission.
Les formulaires de Carrd nécessitent une offre Pro : Pro Standard propose des formulaires de contact et d'inscription, et Pro Plus ajoute des formulaires personnalisés qui peuvent envoyer vers n'importe quelle URL. Sur Pro Plus, réglez un formulaire personnalisé sur Send to URL avec votre endpoint Ikiform et Carrd garde son propre message de succès. Sur Pro Standard, collez un formulaire HTML dans un élément Embed, ce qui vous donne des champs personnalisés sans changer d'offre.
Ce qui change sur Carrd
Carrd ne plafonne pas les soumissions. Il réserve des fonctionnalités de formulaire selon l'offre, et chaque offre est un prix annuel pour un nombre donné de sites. En octobre 2026, la tarification et la documentation de Carrd placent les limites ainsi :
| Offre | Formulaires disponibles | Ce que cela signifie |
|---|---|---|
| Gratuit et Pro Lite | Aucun | Pas d'élément de formulaire ni d'intégrations. Faites un lien vers un formulaire ailleurs, ou changez d'offre |
| Pro Standard, à partir de 19 $ par an | Des formulaires Contact qui envoient un e-mail à cinq destinataires au maximum, des formulaires Signup qui ajoutent les personnes à un outil d'e-mailing, et des éléments Embed | Les formulaires de contact ont des champs fixes. Les intégrations acceptent n'importe quel HTML, y compris votre propre formulaire |
| Pro Plus, à partir de 49 $ par an | Tout ce qui précède, plus les formulaires Custom : envoi par e-mail, ou vers Airtable, Make, n8n, Zapier, une URL ou votre propre code | N'importe quels champs, et Send to URL les envoie où vous voulez |
Un formulaire de contact Carrd livre chaque message par e-mail depuis @mail.carrd.site, donc votre boîte de réception fait office d'historique et un message classé en indésirable passe facilement inaperçu. C'est la raison habituelle de migrer : vous voulez une liste stockée et consultable, un export et des alertes pour toute l'équipe, pas une seule boîte mail.
Si vous avez seulement besoin d'ajouter de nouveaux abonnés dans Mailchimp, Kit ou un autre outil d'e-mailing, le formulaire Signup de Carrd le fait déjà sur Pro Standard et c'est le meilleur choix. Ikiform n'a pas d'intégrations en un clic avec les outils d'e-mailing.
- Sur l'offre gratuite ou Pro Lite, il n'y a ni élément de formulaire ni intégration, donc rien à connecter. Changez d'offre, ou faites un lien vers un formulaire hébergé ailleurs.
- Sur Pro Standard, collez un formulaire HTML dans un élément Embed. Le navigateur du visiteur l'envoie à Ikiform.
- Sur Pro Plus, construisez un formulaire Custom dans l'éditeur de Carrd et réglez-le sur Send to URL avec la méthode AJAX. Le formulaire de Carrd envoie à Ikiform et affiche son propre message de succès.
Pro Plus : Send to URL
Cette méthode garde l'éditeur de formulaires et le style de Carrd, sans code. Les champs ci-dessous correspondent à une demande de réservation chez un photographe ; utilisez les vôtres.
- Cliquez sur Add Element > Form, réglez Type sur Custom, puis Send to URL.
- Collez votre endpoint comme URL.
- Réglez Method sur AJAX et Format sur Default. Carrd interprète toute réponse
2xxcomme un succès, et Ikiform répond201quand il stocke l'envoi. - Ajoutez les champs : Text
name, Emailemail, Selectservice, Datepreferred_date, Text Areadetails. Définissez l'ID de chaque champ ; sinon Carrd en génère un à partir du libellé. - Sous On Success, choisissez un message ou une section à afficher. Sous On Failure, gardez un texte général. Carrd n'affiche pas le message d'erreur d'Ikiform.
- Publiez. Les formulaires n'envoient que depuis le site publié.
https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx| Paramètre Carrd | À utiliser | À éviter |
|---|---|---|
| Method | AJAX : les visiteurs restent sur la page | POST : le navigateur part vers la page de remerciement d'Ikiform, et On Success ne s'exécute jamais |
| Format | Default, ou JSON | XML : Ikiform le refuse avec 415 unsupported_media_type |
| Collect UTM parameters | Possible, mais ajoutez les cinq champs utm_ à toute définition de champs | L'activer après avoir défini les champs : chaque envoi depuis un lien avec des tags UTM échoue avec un champ inconnu |
| Champ File | Pas du tout | L'envoi de fichiers n'est pas encore pris en charge. Un envoi avec un fichier reçoit 422 files_not_supported. |
| Spam Protection | Aucun sur ce formulaire | Un fournisseur de captcha : la documentation de Carrd ne dit pas qu'il vérifie le jeton pour un formulaire Send to URL, et Ikiform ne vérifie un jeton Turnstile qu'avec vos propres clés enregistrées dans Ikiform |
Un champ Hidden envoie toujours sa valeur prédéfinie, donc il ne peut pas servir de honeypot ici. Le score de spam, les limites de débit et les domaines autorisés d'Ikiform s'appliquent quand même à chaque envoi. Laissez le Spam check d'Ikiform désactivé pour ce formulaire : un envoi AJAX ne peut pas afficher la vérification, et échouerait avec 403 challenge_required.
Pro Standard : un élément Embed
Sur Pro Standard, vous ne pouvez pas construire de formulaire personnalisé dans Carrd, mais vous pouvez en coller un. Cliquez sur Add Element > Embed, réglez Type sur Code et Style sur Inline, et collez ceci. Il embarque ses propres styles, car les styles de formulaire de Carrd n'atteignent pas le code intégré.
<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>- Le script envoie avec
fetchet remplace le formulaire par la ligne de remerciement, donc la page ne change pas. - L'input masqué
_gotchaest ici un vrai honeypot, contrairement à un champ Hidden de Carrd. - Si le script ne se charge pas, le formulaire envoie quand même normalement.
target="_top"empêche le résultat de s'ouvrir dans un cadre. - Les intégrations ne s'exécutent pas dans l'éditeur de Carrd. Publiez pour voir le formulaire.
Les deux versions envoient les mêmes champs. Définissez-les dans Ikiform une fois qu'un test est arrivé :
Aperçu
Exécute le validateur d'Ikiform dans votre navigateur. Rien n'est envoyé.
preferred_date est un champ date, donc Ikiform accepte YYYY-MM-DD, ce qu'envoient à la fois le champ Date de Carrd et un input date du navigateur.Domaines autorisés sur Carrd
Ajoutez your-site.carrd.co, ou your-site.crd.co sur Pro, et votre domaine personnalisé. N'ajoutez pas carrd.co seul ; tous les sites Carrd seraient autorisés à envoyer. Le guide Carrd de la documentation liste chaque paramètre avec sa raison.
Vérifier que tout fonctionne sur Carrd
- Dans Allowed domains du formulaire, ajoutez le domaine de votre site, plus
localhostpendant le développement. Laissez vide pour accepter les envois de partout. - Publiez, puis envoyez le formulaire sur le site publié.
- Vérifiez que Carrd affiche On Success, ou que l'intégration affiche sa ligne de remerciement.
- Ouvrez Submissions dans le tableau de bord. La nouvelle soumission y est, avec tous les champs envoyés.
- Vérifiez que les noms sont vos ID, que
preferred_dateressemble à2026-11-14, et qu'aucun champutm_n'est arrivé sauf si vous l'attendiez. - Vérifiez la boîte de réception de chaque destinataire des notifications. Chacun reçoit un e-mail avec les champs, et Reply répond à l'expéditeur quand le formulaire a un champ
email.
Pièges
| Problème | Que faire |
|---|---|
| Carrd affiche On Failure à chaque fois | Format XML (415), un champ File (422), un champ inconnu issu de la collecte UTM, ou le Spam check d'Ikiform activé (403). Corrigez le cas qui s'applique. |
| Les noms de champs ressemblent à des libellés | ID et Submitted ID étaient vides. Remplissez-les et republiez. |
| L'intégration est vide dans l'éditeur | Carrd n'exécute pas le code intégré dans l'éditeur. Publiez et vérifiez le site en ligne. |
403 origin_not_allowed, ou tous les envois finissent en spam | Le domaine de la page n'est pas dans les Allowed domains du formulaire. Ajoutez-le, plus localhost pour les tests en local. Les sous-domaines d'un domaine listé sont autorisés. |
403 challenge_required | Le spam check du formulaire est réglé sur Ikiform et un envoi fetch n'avait pas de jeton. Obtenez-en un avec challenge(formId) de @ikiform/sdk avant chaque envoi, ou désactivez la vérification. |
Questions
Pro Plus. Les formulaires personnalisés, y compris Send to URL, font partie des Advanced Forms. Sur Pro Standard, vous pouvez plutôt coller votre propre formulaire HTML dans un élément Embed.
AJAX. Il garde les visiteurs sur votre page Carrd et applique vos réglages On Success et On Failure. POST envoie plutôt le navigateur vers la page de remerciement d'Ikiform ou vers votre redirection.
Non. Un champ Hidden envoie toujours sa valeur prédéfinie, donc il ne peut pas distinguer les bots des personnes. Le score de spam, les limites de débit et les domaines autorisés d'Ikiform vérifient quand même chaque envoi, et la version intégrée peut contenir un vrai honeypot.
Oui, et c'est sans doute préférable. Il ajoute les personnes directement à votre outil d'e-mailing. Utilisez Ikiform pour les formulaires dont vous voulez garder une trace, comme les demandes et les réservations.
Non, il n'y a pas d'offre gratuite. Les tests sont gratuits : vous pouvez envoyer 50 soumissions de test par mois depuis localhost avant de payer. Pour passer en production, Pro commence à 6 $/mois pour 500 soumissions, ou vous pouvez payer une seule fois 10 000 soumissions pour 49 $ ou 50 000 soumissions pour 149 $, avec des crédits qui n'expirent jamais.
Une étape vous bloque, ou vous voulez un guide pour votre cas ? Écrivez à hello@ikiform.com.