Guides

Guides19 min de lecture

Un formulaire d'inscription à la newsletter sans l'embed de Mailchimp

Créez un formulaire d'inscription à la newsletter avec votre propre markup, enregistrez le consentement, bloquez les inscriptions de bots et transmettez chaque abonné à Kit, MailerLite, beehiiv ou n'importe quel outil.

Preet SutharFondateur, Ikiform

Écrivez le formulaire d'inscription dans votre propre HTML et faites-le pointer vers un backend de formulaires au lieu de coller le code d'embed de votre outil d'e-mailing. Le backend valide l'adresse et la case de consentement, filtre les bots et envoie un webhook signé, et un petit relais ajoute l'abonné via l'API de votre outil d'e-mailing. L'outil envoie ensuite l'e-mail de confirmation, la newsletter et les liens de désinscription : changer d'outil plus tard revient à changer le relais, pas chaque formulaire.

Chaque outil d'e-mailing vous donne un embed : un bloc de markup généré à coller dans votre page. Ça fonctionne, mais le formulaire appartient alors à l'outil. Il envoie directement chez ce fournisseur, il porte son markup et souvent ses styles et ses scripts, et le jour où vous passez à un autre outil, vous traquez chaque copie sur tout votre site. Ce guide construit un formulaire d'inscription qui vous appartient, dans le markup et le framework que vous utilisez déjà, et le relie à l'outil qui envoie votre newsletter.

Le trajet d'une inscription

Il y a deux tâches ici, et elles ont leur place à des endroits différents. Recueillir une inscription est une tâche de formulaire : valider l'adresse, vérifier la case de consentement, bloquer les bots, enregistrer le moment. Envoyer une newsletter est une tâche d'e-mailing : confirmer l'adresse, envoyer les numéros, gérer les désinscriptions et les rebonds. Ikiform fait la première. Votre outil d'e-mailing fait la seconde. Un webhook signé les relie.

Comment une inscription à la newsletter voyage de votre page à votre outil d'e-mailingvotreformulaired'inscriptionpied de page,barre latéraleou articleIkiformvérifieconsentement etspamtableau debordchaqueinscriptionavec sonconsentemente-mail denotificationà vous,facultatifwebhooksignésubmission.createdoutild'e-mailingconfirme,envoie,désinscritenvoirelaisComment une inscription à la newsletter voyage de votre page à votre outil d'e-mailingvotreformulaired'inscriptionpied de page,barre latéraleou articleIkiformvérifieconsentementet spamtableau de bordchaque inscriptionavec sonconsentemente-mail denotificationà vous, facultatifwebhook signésubmission.createdoutild'e-mailingconfirme, envoie,désinscritenvoirelais
  1. Un lecteur remplit le formulaire d'inscription de votre page, qui envoie à votre endpoint Ikiform.
  2. Ikiform vérifie l'adresse, la case de consentement obligatoire, le honeypot, le score de spam et la limite de débit.
  3. L'inscription acceptée est stockée dans le tableau de bord avec son horodatage, son origine et son referrer.
  4. Ikiform peut vous écrire à chaque inscription. Il n'écrit jamais au lecteur.
  5. Ikiform envoie un webhook submission.created signé.
  6. Un relais vérifie la signature et ajoute le lecteur à votre outil d'e-mailing, qui envoie la confirmation puis chaque numéro.
Le relais est la seule partie qui sait quel outil d'e-mailing vous utilisez. Le formulaire, le filtrage du spam et l'enregistrement stocké ne changent pas quand l'outil change.

Quatre façons de recueillir des inscriptions à une newsletter

ApprochePoints fortsCompromis
L'embed de l'outil d'e-mailing, de Mailchimp, Kit, MailerLite ou beehiivRien à faire tourner. La confirmation, les tags et l'e-mail de bienvenue se configurent dans les réglages de l'outil.Le markup et le comportement sont ceux de l'outil. Mailchimp précise que ses formulaires intégrés héritent des styles de votre site et peuvent donc avoir un autre rendu sur votre page, et activer son reCAPTCHA sur un formulaire existant oblige à générer et coller un nouveau code. Chaque copie est liée à un seul fournisseur.
Votre propre route serveur qui appelle l'API de l'outilContrôle total du formulaire et de la requête, avec la clé d'API gardée sur votre serveur.Vous construisez vous-même la validation, le filtrage des bots, les limites de débit et l'enregistrement du consentement, et il vous faut un serveur même si le site est statique.
Un créateur de formulaires hébergé plus une automatisation, comme Typeform avec ZapierPas de code, et l'outil d'automatisation connaît tous les fournisseurs d'e-mailing.Une iframe qui ne ressemble pas à votre page, plus deux abonnements. Webhooks et personnalisation de la marque dépendent de l'offre.
Un backend de formulaires, comme Ikiform, plus un relaisVotre propre markup sur n'importe quel site, filtrage du spam, un enregistrement du consentement et des webhooks signés, sans serveur pour le formulaire.Ikiform n'envoie aucun e-mail au lecteur. La confirmation et chaque newsletter viennent de votre outil d'e-mailing, via un petit relais ou une automatisation.

Un seul site, un seul outil et son embed vous conviennent ? Gardez-les. Construisez le vôtre quand le formulaire doit suivre votre design, s'étend sur plusieurs sites ou risque de survivre à l'outil.

Le formulaire

Un bon formulaire de newsletter est petit : un e-mail, un prénom facultatif pour la salutation, et une case de consentement dont le libellé est la promesse que vous faites. Un input masqué source enregistre l'endroit du site où l'inscription a eu lieu. Choisissez votre stack ; ce choix s'applique à tous les exemples de code de ces guides.

Collez le formulaire dans votre pied de page, votre barre latérale ou à la fin d'un article. Il envoie de façon classique et arrive sur votre propre page de remerciement : il fonctionne donc sans JavaScript.

footer.html
<form id="newsletter" action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post">
  <label for="nl-email">Email</label>
  <input id="nl-email" name="email" type="email" required autocomplete="email" placeholder="you@example.com" />

  <label for="nl-name">First name (optional)</label>
  <input id="nl-name" name="first_name" type="text" maxlength="80" autocomplete="given-name" />

  <label>
    <input name="consent" type="checkbox" value="true" required />
    Email me the newsletter. I can unsubscribe at any time.
  </label>

  <input type="hidden" name="source" value="footer" />
  <input type="hidden" name="_redirect" value="https://example.com/subscribed" />
  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden />

  <button>Subscribe</button>
  <p id="nl-status" role="status" hidden></p>
</form>

Pour garder le lecteur sur l'article, ajoutez ce script après le formulaire. Il envoie avec fetch, remplace le formulaire par une ligne qui l'invite à vérifier sa boîte de réception, et affiche le message du serveur pour l'e-mail ou la case.

newsletter.js
const form = document.querySelector("#newsletter");
const status = document.querySelector("#nl-status");
const button = form.querySelector("button");

form.addEventListener("submit", async (event) => {
  event.preventDefault();
  const body = new FormData(form);
  button.disabled = true;
  status.hidden = false;
  status.textContent = "Subscribing";
  try {
    const response = await fetch(form.action, { method: "POST", headers: { Accept: "application/json" }, body });
    const result = await response.json();
    if (result.ok) {
      form.replaceChildren(status);
      status.textContent = "Almost done. Open the email we sent you and confirm your address.";
      return;
    }
    const fields = result.error.fields ?? {};
    status.textContent = fields.email?.[0] ?? fields.consent?.[0] ?? result.error.message;
  } catch {
    status.textContent = "Couldn't reach the server. Try again.";
  }
  button.disabled = false;
});
  • Remplacez frm_xxxxxxxxxxxxxxxx par l'id de votre formulaire, visible dans le tableau de bord.
  • Gardez email comme nom de l'input e-mail. Ikiform le valide, met le domaine en minuscules et le compare aux domaines d'e-mails jetables.
  • L'input masqué _gotcha est le honeypot. Les humains ne le voient jamais, et les bots qui remplissent tous les inputs se signalent eux-mêmes comme spam.
  • La case envoie true quand elle est cochée. Décochée, elle n'envoie rien, et une case obligatoire est refusée avec This box must be checked.
  • La ligne de succès invite à vérifier la boîte de réception, car votre outil d'e-mailing envoie une confirmation. Si vous avez désactivé le double opt-in, remplacez-la par un simple merci.
  • Les versions côté serveur transmettent l'en-tête Origin du navigateur, car c'est grâce à lui qu'Ikiform reconnaît les tests gratuits depuis localhost, et le fetch d'un serveur n'en envoie aucun.
Les versions côté serveur envoient avec une clé secrète, donc Ikiform ignore Allowed domains et sa vérification humaine. Chaque envoi vient alors de l'IP de votre serveur, et la limite Standard de 5 par minute et par visiteur compte tous vos visiteurs ensemble. Choisissez la limite de débit Relaxed ou Custom pour un formulaire que vous envoyez via un serveur, et gardez IKIFORM_SECRET_KEY dans des variables d'environnement réservées au serveur.

La configuration des frameworks est dans la documentation : Next.js, Astro, SvelteKit, Nuxt, React, Vue et HTML simple. Le modèle de formulaire de newsletter génère les mêmes champs en HTML, en React et en server action Next.js.

Les champs et la définition

Collez la définition ci-dessous dans l'onglet Fields du formulaire et Ikiform l'applique côté serveur, quoi qu'envoie la page. L'aperçu exécute le même validateur dans votre navigateur : laissez la case décochée et envoyez pour voir l'erreur que recevrait un bot ou une page cassée.

Aperçu

Exécute le validateur d'Ikiform dans votre navigateur. Rien n'est envoyé.

Dans votre page, source est un input masqué. Il n'est affiché ici en champ texte que pour que vous puissiez l'essayer.
ChampPourquoiÀ garder en tête
emailLa personne abonnéeObligatoire. type="email" affiche le bon clavier sur mobile
first_nameUne salutation dans chaque numéroFacultatif. La plupart des outils d'e-mailing ont un champ prénom auquel l'associer
consentUne preuve que la personne a demandé à recevoir des e-mailsCase obligatoire. Stockée comme true
sourceQuel formulaire du site a fonctionné : pied de page, article, popupMasqué. Définissez une valeur différente par emplacement, et transmettez-la comme tag ou champ

Une fois les champs définis, Ikiform refuse tout input qu'il ne connaît pas avec unknown_field : ajoutez donc un champ à la définition avant d'ajouter un input à la page. Les noms qui commencent par _, comme _redirect, sont des instructions pour Ikiform et ne comptent jamais comme des champs.

Une newsletter, ce sont des e-mails que quelqu'un a demandés. La case rend cette demande explicite, et la soumission stockée l'enregistre. Voici ce qu'Ikiform conserve pour chaque inscription acceptée :

data.fields
{
  "email": "ada@example.com",
  "first_name": "Ada",
  "consent": true,
  "source": "footer"
}

À côté des champs, chaque soumission a son horodatage created_at, l'origine et le referrer de la page, le pays et le user agent du navigateur. Ensemble, ils montrent quand et où la personne a coché la case. Deux habitudes rendent cet enregistrement utile par la suite :

  1. Rédigez le libellé comme une promesse. « Envoyez-moi la newsletter. Je peux me désinscrire à tout moment. » dit ce que la personne reçoit. Si vous envoyez aussi des offres, dites-le dans le libellé.
  2. Notez la date quand la formulation change. Un true stocké dit que la personne a accepté, pas quel texte. Tenez un court historique daté du libellé, pour pouvoir rapprocher chaque inscription des mots qu'elle a vus.

Ikiform conserve l'enregistrement ; il ne peut pas vous dire ce qu'exigent les règles là où vous et vos lecteurs vivez. Vérifiez-les avec quelqu'un qui les connaît.

Les e-mails de confirmation viennent de votre outil d'e-mailing

Ikiform n'envoie pas d'e-mail à la personne qui remplit le formulaire. Les e-mails de notification vont uniquement à vous et à votre équipe : il n'y a donc ni réponse automatique, ni e-mail de confirmation, ni double opt-in. Envoyez-les depuis votre outil d'e-mailing, déclenché par un webhook. Cette séparation est voulue. L'outil qui envoie votre newsletter suit déjà qui a confirmé, qui s'est désinscrit et quelles adresses rebondissent. Si un second système envoyait les confirmations, ces données finiraient par diverger.

Le relais ajoute donc le lecteur dans un état qui pousse l'outil d'e-mailing à envoyer sa propre confirmation, et l'outil le marque comme actif quand il clique. Chaque outil active cela différemment : un réglage du formulaire, une option du compte, ou un paramètre de la requête API. Le guide du double opt-in couvre les trois cas, et ce qui se passe quand un abonné connu s'inscrit à nouveau.

Le relais

Un relais est une courte fonction qui reçoit le webhook d'Ikiform, vérifie sa signature et appelle l'API de votre outil d'e-mailing. Il lui faut une URL HTTPS publique et un secret de chaque côté. Celui-ci est un route handler Next.js ; le même code tourne dans tout runtime qui dispose de fetch.

app/api/newsletter/route.ts
import { verifyWebhook, WebhookVerificationError } from "@ikiform/sdk/webhooks";
import { addSubscriber } from "@/lib/email-tool";

export async function POST(request: Request) {
  const payload = await request.text();
  let event;
  try {
    event = await verifyWebhook({ payload, headers: request.headers, secret: process.env.IKIFORM_WEBHOOK_SECRET! });
  } catch (error) {
    if (error instanceof WebhookVerificationError) return new Response(error.reason, { status: 400 });
    throw error;
  }
  if (event.type !== "submission.created") return new Response(null, { status: 204 });

  const fields = event.data.fields;
  if (fields.consent !== true) return new Response("No consent, skipped", { status: 200 });

  const answer = await addSubscriber({
    email: String(fields.email),
    firstName: typeof fields.first_name === "string" ? fields.first_name : undefined,
    source: typeof fields.source === "string" ? fields.source : "unknown",
    referrer: typeof event.data.meta.referrer === "string" ? event.data.meta.referrer : undefined,
  });
  if (answer.status === 429) {
    return new Response("Email tool rate limit", {
      status: 503,
      headers: { "retry-after": answer.headers.get("retry-after") ?? "60" },
    });
  }
  if (!answer.ok) return new Response(`Email tool answered ${answer.status}`, { status: 502 });
  return new Response(null, { status: 204 });
}
  • verifyWebhook vérifie la signature HMAC et l'horodatage. Sans lui, quiconque trouve l'URL peut ajouter des adresses à votre liste.
  • Les événements endpoint.test, envoyés par Send test dans le tableau de bord, reçoivent 204 et sont ignorés.
  • La vérification du consentement est un second verrou derrière la définition du formulaire.
  • addSubscriber est la seule partie qui dépend de l'outil. Son contenu pour chaque outil est sur les pages Kit, MailerLite et beehiiv.

Ce que répond le relais décide de ce que fait Ikiform ensuite :

Ce que le relais répond à Ikiform pour chaque réponse de l'outil d'e-mailing200 ou 201ajouté ou mis à jour204pas de contenuterminélivraison réussie429débit limité503avec Retry-Afterattendpuis réessaie4xx ou 5xxrefusé ou en panne502avec le statut de l'outilnouvellestentativesmême webhook-idl'outil d'e-mailing répondle relais répondIkiformCe que le relais répond à Ikiform pour chaque réponse de l'outil d'e-mailing200 ou201ajouté oumis àjour204pas decontenuterminélivraisonréussie429débitlimité503avecRetry-Afterattendpuisréessaie4xx ou5xxrefusé ouen panne502avec lestatut del'outilnouvellestentativesmêmewebhook-idl'outild'e-mailingrépondle relaisrépondIkiform
  1. L'outil d'e-mailing ajoute ou met à jour l'abonné : le relais répond 204 et la livraison est marquée comme réussie.
  2. L'outil d'e-mailing limite le débit : le relais répond 503 avec Retry-After, et Ikiform attend ce délai avant la tentative suivante.
  3. L'outil d'e-mailing refuse la requête ou est en panne : le relais répond 502, et Ikiform réessaie selon son calendrier avec le même webhook-id.
Chaque tentative figure dans le journal de livraison de l'endpoint avec la réponse de votre relais : un 502 qui indique le statut de l'outil vous dit quoi corriger.

Ajoutez l'URL du relais sous Webhooks dans le tableau de bord, choisissez le formulaire de newsletter et copiez le secret whsec_ dans IKIFORM_WEBHOOK_SECRET. Un espace de travail a jusqu'à 3 endpoints. L'URL doit être en HTTPS public sur le port 443 ; les noms d'hôte workers.dev et pages.dev sont refusés, donnez donc un domaine personnalisé à un Worker. Les nouvelles tentatives, les payloads et le schéma de signature sont dans la documentation des webhooks, et les soumissions de formulaire vers votre propre serveur propose une version qui stocke chaque livraison une seule fois.

Pas de code ? Faites pointer le webhook vers un outil d'automatisation et utilisez son action pour votre outil d'e-mailing au lieu d'un relais. Voir Zapier, Make ou n8n. Il n'y a pas d'intégrations en un clic. Chaque outil est atteint par un webhook signé, directement ou via un outil d'automatisation comme Zapier ou n8n.

Tenir à l'écart les bots et le list bombing

Les inscriptions de bots nuisent davantage à une newsletter qu'à la plupart des formulaires. Une vraie adresse inscrite par un bot reçoit des e-mails qu'elle n'a jamais demandés, et les plaintes de ces personnes nuisent au domaine depuis lequel vous envoyez. Certains bots inscrivent l'adresse d'une victime à des centaines de formulaires d'un coup pour noyer sa boîte de réception, et chaque formulaire qui envoie un e-mail de confirmation y participe.

DéfenseCe qu'elle arrêteConfiguration
HoneypotLes bots qui remplissent tous les inputsL'input masqué _gotcha
Consentement obligatoireLes scripts qui n'envoient qu'un e-mailLa case consent avec required: true dans la définition
Score de spamAdresses jetables (+2), répétitions identiques (+3), liens et phrases de spam. À 5, une inscription est stockée comme spamAucun
Limites de débitUn visiteur qui envoie en boucleActivée par défaut : Standard, 5 par minute et par visiteur
Vérification humaineLes bots qui pilotent un vrai navigateurRéglez Spam check sur Ikiform pour Cloudflare Turnstile, sans clés à gérer
Domaines autorisésL'endpoint de votre formulaire copié sur d'autres sitesListez chaque domaine où apparaît le formulaire

Le spam reçoit la même réponse de succès qu'une vraie inscription et n'envoie aucun webhook : il n'atteint donc jamais votre outil d'e-mailing et ne déclenche jamais d'e-mail de confirmation. Si un vrai lecteur tombe en spam, marquez-le comme non-spam et son webhook part à ce moment-là. La documentation anti-spam explique chaque vérification et son score.

Une limite stricte par visiteur convient à un formulaire de newsletter, car une personne s'abonne une seule fois. Si votre public lit depuis des bureaux ou des campus qui partagent une même IP, Standard les compte ensemble ; Relaxed, 20 par minute par visiteur, est alors le choix le plus sûr. Voir les limites de débit.

Un formulaire sur de nombreuses pages

Un même endpoint peut se trouver dans le pied de page de chaque page, à la fin de chaque article et sur une page /newsletter. Donnez à chaque emplacement sa propre valeur source pour savoir lequel rapporte des inscriptions :

  • footer : vu sur chaque page. Limitez-le à l'e-mail et à la case.
  • post : des lecteurs qui ont fini un article, souvent ceux qui convertissent le mieux.
  • newsletter-page : là où pointent vos profils sociaux. De la place pour un numéro d'exemple.

Chaque soumission enregistre aussi le referrer, qui est la page exacte où se trouvait le lecteur : source vous donne l'emplacement et le referrer l'article. Ajoutez chaque domaine qui affiche le formulaire sous Allowed domains, jusqu'à 20 par formulaire ; les sous-domaines d'un domaine listé sont autorisés automatiquement.

Le même lecteur deux fois

Ikiform ne fusionne ni ne rejette les soumissions répétées par e-mail. Une répétition identique dans les 24 heures ne fait qu'augmenter le score de spam. Dédupliquez là où vit la liste, ou à l'export. Pour une newsletter, c'est rarement un problème : Kit, MailerLite et beehiiv identifient chacun les abonnés par e-mail, donc une répétition met à jour un seul contact au lieu d'en créer un second.

Changer d'outil d'e-mailing plus tard

C'est là que posséder le formulaire est rentable. Passer d'un outil d'e-mailing à un autre implique normalement de remplacer chaque embed du site. Ici, le formulaire ne sait pas quel outil se trouve derrière lui :

Ce qui change quand vous passez à un autre outil d'e-mailingavec un embedavec votre propre formulairechaque pagecode d'embed colléancien outille formulaireenvoie icinouvel outilnouvel embed surchaque pagechaque pageinchangéIkiforminchangérelaisune fonction changeenvoitout remplacerenvoiwebhookCe qui change quand vous passez à un autre outil d'e-mailingavec un embedavec votre propre formulairechaque pagecode d'embed colléancien outille formulaire envoie icinouvel outilnouvel embed sur chaque pagechaque pageinchangéIkiforminchangérelaisune fonction changeenvoitout remplacerenvoiwebhook
  1. Avec un embed, chaque page porte du code qui envoie directement à l'ancien outil : migrer, c'est remplacer chaque copie.
  2. Avec votre propre formulaire, chaque page continue d'envoyer à Ikiform, et Ikiform continue d'envoyer le même webhook.
  3. Seule la fonction addSubscriber du relais change, pour appeler l'API du nouvel outil.
Faites tourner les deux outils pendant une semaine si vous voulez : deux endpoints de webhook, deux relais, un formulaire. Supprimez ensuite l'ancien endpoint.

Migrez les abonnés existants avec l'export de l'ancien outil, car lui seul sait qui a confirmé et qui est parti. L'export CSV d'Ikiform, jusqu'à 100 000 lignes par fichier, sert à vérifier les chiffres, pas à importer.

Choisissez votre cas

Le formulaire ci-dessus est le même partout. Ces pages couvrent les e-mails de confirmation, les sites sans serveur et les appels API exacts pour trois outils d'e-mailing.

Vérifiez que tout fonctionne

Faites ces vérifications avant d'ajouter le formulaire à chaque page. Ikiform n'a pas d'offre gratuite. Les tests sont gratuits : un espace de travail sans offre accepte 50 soumissions de test par mois depuis localhost. Pour passer en production, choisissez Pro à partir de 6 $/mois pour 500 soumissions, ou payez une seule fois : 10 000 soumissions pour 49 $ ou 50 000 soumissions pour 149 $, avec des crédits qui n'expirent jamais. Voir les tarifs.

  1. Dans Allowed domains du formulaire, ajoutez le domaine de votre site, plus localhost pendant le développement. Laissez vide pour accepter les envois de partout.
  2. Envoyez le formulaire avec la case décochée depuis les outils de développement du navigateur, ou retirez required un instant. Vous obtenez 422 avec This box must be checked et rien n'est stocké.
  3. Envoyez-le correctement avec une adresse à vous. Vous voyez la ligne vous invitant à vérifier votre boîte, ou vous arrivez sur votre page de remerciement.
  4. Ouvrez Submissions dans le tableau de bord. La nouvelle soumission y est, avec tous les champs envoyés.
  5. Ouvrez l'endpoint sous Webhooks. La livraison affiche succeeded et la réponse de votre relais.
  6. Ouvrez votre outil d'e-mailing. L'abonné y est, non confirmé si le double opt-in est activé, et l'e-mail de confirmation est dans votre boîte.
  7. Envoyez avec le honeypot rempli, _gotcha=bot. L'envoi reçoit quand même une réponse de succès, mais la soumission est stockée comme spam et n'envoie ni e-mail ni webhook.
  8. Rien n'est arrivé ? Passez le filtre de statut du tableau de bord sur Spam. Le spam reçoit la même réponse de succès qu'une vraie soumission.

Dépannage

ProblèmeQue faire
422 validation_failed avec consentLa case n'a pas été cochée, ou le name de son input n'est pas consent. Une version côté serveur doit envoyer true, "true" ou "on" ; une case décochée n'envoie rien.
422 validation_failed avec unknown_fieldLa page envoie un input que la définition ne liste pas, souvent un source masqué ou un input de suivi ajouté plus tard. Ajoutez-le à la définition, ou supprimez l'input.
403 origin_not_allowed, ou tous les envois finissent en spamLe 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.
429 rate_limitedUn visiteur a envoyé plus que ce que permet la limite de débit du formulaire. Standard autorise 5 envois par minute et par visiteur. Attendez la durée de Retry-After, ou choisissez Relaxed ou Custom pour les formulaires qui envoient depuis une seule IP partagée.
La soumission est dans le tableau de bord mais aucun e-mail ni webhook n'est arrivéElle a été stockée comme spam. Le spam n'envoie rien. Ouvrez-la sous le filtre Spam pour voir les raisons, et marquez-la comme non-spam pour envoyer son e-mail et ses webhooks.
Les inscriptions arrivent dans Ikiform mais pas dans l'outil d'e-mailingLisez le journal de livraison sous Webhooks. 400 signifie que le secret du relais est faux. 502 porte le statut de l'outil d'e-mailing : généralement une clé d'API, un id de liste ou un id de formulaire erroné.
L'abonné est dans l'outil d'e-mailing mais n'a reçu aucun e-mail de confirmationLe double opt-in est désactivé dans l'outil, ou le relais a créé l'abonné comme déjà confirmé. Voir double opt-in pour le réglage de chaque outil.
Le navigateur arrive sur la page de remerciement d'Ikiform au lieu de la vôtre_redirect est ignoré sauf si son domaine figure dans Allowed domains et qu'il s'agit d'une URL https:. Ajoutez le domaine, ou définissez plutôt Redirect after submit dans les réglages du formulaire.

Questions

Une étape vous bloque, ou vous voulez un guide pour votre cas ? Écrivez à hello@ikiform.com.