Formulaire de contact sur un site statique7 min de lecture
Ajouter un formulaire de contact à votre site portfolio
Un formulaire de contact de portfolio qui pose les questions d'un premier appel : projet, budget, délai et un lien, sans serveur et avec réponses depuis votre boîte.
Demandez les quatre informations dont vous avez besoin avant un premier appel : la nature du projet, une fourchette de budget, la date de démarrage et un lien à consulter. Envoyez le formulaire à Ikiform depuis votre portfolio statique, pour que chaque demande arrive dans votre boîte avec Reply pointant vers le client. Pré-remplissez le type de projet d'après l'étude de cas d'où vient le visiteur, pour savoir ce qui l'a convaincu.
Ce qui change pour un formulaire de portfolio
Sur un portfolio, le formulaire de contact est l'entonnoir de vente. Un formulaire nu avec nom, e-mail et message apporte des messages auxquels vous devez répondre par des questions : quel est le budget, quand voulez-vous démarrer, avez-vous déjà un site. Les poser d'emblée vous épargne un aller-retour d'e-mails, et les réponses vous disent à quelles demandes répondre en premier.
Les portfolios vivent aussi souvent sur un hébergement statique gratuit, construits une fois puis laissés de côté pendant des mois. Le formulaire doit continuer de fonctionner sans serveur à mettre à jour, et sans que vous surveilliez un tableau de bord.
| Champ | Pourquoi ce champ | Type |
|---|---|---|
project | À qui répondre et quoi renvoyer | select, donc sûr pour filtrer |
budget | Des fourchettes se filtrent mieux qu'un nombre libre, et les gens y répondent | radio avec des fourchettes |
start | « Ce mois-ci » et « plus tard, encore en réflexion » appellent des réponses différentes | select |
link | Leur site actuel ou un brief, pour répondre avec quelque chose de précis | url |
message | Le projet avec leurs mots | textarea, au moins 30 caractères |
Laissez de côté les numéros de téléphone et la taille de l'entreprise. Chaque champ obligatoire supplémentaire vous coûte des demandes, et vous apprendrez les deux lors du premier appel.
Aperçu
Exécute le validateur d'Ikiform dans votre navigateur. Rien n'est envoyé.
seen figure dans la définition car un formulaire avec des champs refuse tout input qu'il ne liste pas ; sur la page, c'est un input masqué.422 files_not_supported.Le formulaire
Du HTML simple, qui fonctionne donc dans un portfolio écrit à la main, un thème Jekyll ou Hugo, ou un modèle Astro. Le script final pré-remplit le type de projet d'après le lien qui a amené le visiteur, et enregistre de quelle page il s'agissait :
<form id="enquiry" action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post">
<label for="name">Your name</label>
<input id="name" name="name" autocomplete="name" maxlength="120" required />
<label for="email">Email</label>
<input id="email" name="email" type="email" autocomplete="email" required />
<label for="project">What do you need?</label>
<select id="project" name="project" required>
<option value="website">A website</option>
<option value="branding">Branding</option>
<option value="product">Product design</option>
<option value="other">Something else</option>
</select>
<fieldset>
<legend>Budget</legend>
<label><input type="radio" name="budget" value="under_5k" required /> Under $5k</label>
<label><input type="radio" name="budget" value="5k_15k" /> $5k to $15k</label>
<label><input type="radio" name="budget" value="over_15k" /> Over $15k</label>
<label><input type="radio" name="budget" value="unsure" /> Not sure yet</label>
</fieldset>
<label for="start">When would you like to start?</label>
<select id="start" name="start">
<option value="now">This month</option>
<option value="soon">In 1 to 3 months</option>
<option value="later">Later, still planning</option>
</select>
<label for="link">Your current site or a brief</label>
<input id="link" name="link" type="url" placeholder="https://" />
<label for="message">Tell me about the project</label>
<textarea id="message" name="message" rows="6" minlength="30" required></textarea>
<input type="hidden" name="seen" value="" />
<input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden />
<button type="submit">Send enquiry</button>
</form>
<script>
const params = new URLSearchParams(location.search);
const enquiry = document.querySelector("#enquiry");
const project = params.get("project");
if (project && enquiry.project.querySelector(`option[value="${CSS.escape(project)}"]`)) {
enquiry.project.value = project;
}
enquiry.seen.value = params.get("from") ?? document.referrer;
</script>Sur chaque étude de cas, faites un lien vers le formulaire avec le type de projet et le nom de la page :
<a href="/contact.html?project=branding&from=case-study-northwind">Start a branding project</a>- Le script ne sélectionne qu'une valeur de projet qui existe dans la liste : un lien modifié à la main ne peut donc pas ajouter de nouvelles valeurs.
seencontient le nom de l'étude de cas, ou le référent s'il n'y en a pas. Après quelques mois, le CSV vous dit quels travaux amènent quelles demandes.- Gardez
emailcomme nom de champ. Les e-mails de notification en font l'adresse de réponse, vous répondez donc depuis votre propre boîte. - Pour un portfolio construit avec un framework, le guide principal propose le même modèle de formulaire en Next.js, Astro, SvelteKit, Nuxt, React et Vue. Les générateurs de sites statiques ont leurs propres pages de configuration, comme Jekyll et Hugo.
Répondre d'abord aux bonnes demandes
- Un visiteur arrive depuis une étude de cas, et le formulaire s'ouvre avec le type de projet déjà choisi.
- Le formulaire envoie à Ikiform, qui lance les vérifications anti-spam et stocke la demande.
- Vous recevez un e-mail de notification, et Répondre écrit directement au client.
- Un webhook envoie la même demande vers Telegram ou Slack, où une automatisation peut vous alerter uniquement pour les gros budgets.
- Chaque demande reste dans le tableau de bord : vous pouvez exporter une année entière en CSV et voir quels travaux les ont amenées.
Ikiform envoie chaque demande de la même façon ; le filtrage par budget se fait dans l'outil qui reçoit le webhook. Dans Zapier ou n8n, ajoutez un filtre sur budget avant l'étape du message. Pour être alerté directement sur votre téléphone, suivez Telegram ou Slack.
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. Pour un portfolio, une courte page de remerciement qui indique quand vous répondrez fait l'essentiel de ce que ferait une réponse automatique.
Une page de remerciement qui fait réserver l'appel
Réglez Redirect after submit sur votre propre page de remerciement. Sur un portfolio, elle peut faire plus que remercier : mettez un lien vers votre page de réservation d'agenda pour ceux qui veulent parler tout de suite, et indiquez quand vous répondez aux autres. Ajoutez deux ou trois études de cas qu'ils n'ont pas vues ; ils sont encore en train de se décider.
Excluez la page des résultats de recherche avec une balise meta noindex, et ne comptez pas ses visites comme des conversions dans vos statistiques sans vérifier aussi le tableau de bord, car le spam reçoit la même redirection qu'une vraie demande.
Le spam sur un portfolio
Les portfolios reçoivent un spam bien particulier : offres SEO, propositions d'articles invités et modèles « refaites votre site ». Le score d'Ikiform ajoute +2 pour les formules de spam connues, +3 pour un lien dans le champ nom et +2 pour trois liens ou plus ; à 5, un message est stocké comme spam et n'envoie aucun e-mail.
Un client envoie rarement deux demandes en dix minutes : réglez donc la limite de débit sur Strict, 2 toutes les 10 minutes par visiteur. Ajoutez votre domaine dans Allowed domains, et jetez de temps en temps un œil au filtre Spam les premières semaines : une vraie demande avec trois liens vers des travaux passés peut obtenir un score élevé.
Vérifiez que tout fonctionne
- Dans Allowed domains du formulaire, ajoutez le domaine de votre site, plus
localhostpendant le développement. Laissez vide pour accepter les envois de partout. - Ouvrez
contact.html?project=branding&from=testet vérifiez que Branding est sélectionné. - Envoyez une demande. Dans Submissions,
seendoit valoirtest. - Retirez
minlengthdu textarea dans les outils de développement du navigateur et envoyez un message de trois mots. Ikiform le refuse avec422 validation_failed, en nommantmessage. - 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. - 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.
Pièges
| Problème | Que faire |
|---|---|
422 validation_failed pour budget | Une value de radio dans le HTML ne correspond pas aux options de la définition. Elles doivent correspondre exactement, tirets bas compris. |
| Le projet n'est pas pré-rempli | La valeur project du lien ne fait pas partie des valeurs d'option. Vérifiez l'orthographe et la casse. |
| La demande d'un vrai client est dans les spams | Trois liens ou plus augmentent le score, et avec en plus une formule de la liste de spam ou une adresse jetable, le seuil est franchi. Marquez-la comme non-spam ; son e-mail et ses webhooks partent alors. |
422 files_not_supported | Le formulaire a un <input type="file"> avec un fichier choisi. L'envoi de fichiers n'est pas encore pris en charge ; retirez l'input ou demandez plutôt un lien. |
Questions
En général oui, sous forme de fourchettes plutôt que d'un nombre. Les fourchettes sont faciles à remplir, et elles vous disent quelles demandes appellent une réponse rapide. Ajoutez une option Je ne sais pas encore pour que personne ne parte.
Pas encore via Ikiform. Demandez plutôt un lien : un document partagé, un dossier drive ou leur site actuel. Le champ url vérifie qu'il s'agit d'une vraie adresse web.
Non. Le portfolio reste statique sur n'importe quel hébergeur, et le formulaire envoie à Ikiform, qui stocke chaque demande et vous l'envoie par e-mail.
Dans le champ seen de chaque soumission. Filtrez-le ou recherchez-le dans le tableau de bord, ou exportez un CSV et comptez les demandes par page tous les quelques mois.
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.