Connectez mailcheck.fr
à tous vos outils
Pas d'intégration native requise, notre API REST s'intègre avec n'importe quel outil en quelques lignes de code ou via Zapier. Voici comment connecter les outils les plus courants.
Comment ça fonctionne
À chaque soumission de formulaire, appelez d'abord l'API mailcheck.fr pour valider l'adresse.
Si le statut est valid ou risky avec un score
suffisant, déclenchez l'appel à l'API Brevo pour ajouter le contact à votre liste.
Les adresses invalid et disqualifie sont
simplement ignorées, elles n'entrent jamais dans Brevo.
const MAILCHECK_KEY = process.env.MAILCHECK_API_KEY;
const BREVO_KEY = process.env.BREVO_API_KEY;
async function addContactToBrevo(email, firstName, lastName) {
// Étape 1 : vérifier l'email avec mailcheck.fr
const check = await fetch("https://api.mailcheck.fr/v1/verify", {
method: "POST",
headers: { "Authorization": `Bearer ${MAILCHECK_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ email })
}).then(r => r.json());
// Étape 2 : rejeter les invalides
if (check.status === "invalid" || check.status === "disqualifie") {
return { success: false, reason: check.status };
}
// Étape 3 : ajouter dans Brevo
await fetch("https://api.brevo.com/v3/contacts", {
method: "POST",
headers: { "api-key": BREVO_KEY, "Content-Type": "application/json" },
body: JSON.stringify({
email,
attributes: { PRENOM: firstName, NOM: lastName },
listIds: [42],
updateEnabled: true
})
});
return { success: true, score: check.score };
} Méthode 1 : Nettoyage de liste existante (CSV)
- Exportez votre audience Mailchimp depuis Audience > Export Audience
- Importez le CSV dans mailcheck.fr et lancez la vérification
- Exportez le CSV filtré (valides uniquement)
- Dans Mailchimp, archivez les contacts invalides via Archive Contacts en important la liste des emails à supprimer
Méthode 2 : Validation en temps réel via Zapier
Créez un Zap avec le déclencheur "New Subscriber in Mailchimp", puis ajoutez
une action Webhooks by Zapier > POST vers
https://api.mailcheck.fr/v1/verify avec le Bearer token.
Ajoutez un filtre conditionnel : si status != valid, utilisez
l'action Mailchimp > Unsubscribe Contact pour retirer l'adresse.
Configuration via HubSpot Workflows
- Dans HubSpot, allez dans Automations > Workflows > Create Workflow
- Déclencheur : "Contact is created" ou "Form submitted"
- Ajoutez une action "Send a webhook" avec la méthode POST vers
https://api.mailcheck.fr/v1/verify - Dans les headers, ajoutez
Authorization: Bearer YOUR_API_KEY - Corps JSON :
{"email": "{{contact.email}}"} - Ajoutez une branche conditionnelle sur la réponse webhook : si
status = invalid, définissez une propriétéEmail Quality = Invalidet supprimez de vos séquences marketing
Email Quality Score (type Number) et enregistrez le score mailcheck.fr (0–100) pour pouvoir filtrer et segmenter vos contacts par qualité d'email.
Script à ajouter dans le Custom Code de votre page Webflow
Dans les paramètres de votre page Webflow (Page Settings > Custom Code > Before </body>), ajoutez le script suivant. Il intercepte la soumission du formulaire, valide l'email en temps réel et n'autorise la soumission que si l'adresse est valide.
// Remplacez YOUR_API_KEY par votre clé mailcheck.fr
// Ne commitez jamais une clé API côté client en production !
// Pour la prod, proxiez via votre backend.
const MAILCHECK_KEY = "mc_live_xxxxxxxxxxxxxxxxxxxx";
document.querySelectorAll("form[data-name]").forEach(function(form) {
form.addEventListener("submit", async function(e) {
const emailInput = form.querySelector('input[type="email"]');
if (!emailInput) return;
e.preventDefault();
const btn = form.querySelector('input[type="submit"]');
const originalText = btn ? btn.value : "";
if (btn) btn.value = "Vérification...";
try {
const res = await fetch("https://api.mailcheck.fr/v1/verify", {
method: "POST",
headers: {
"Authorization": `Bearer ${MAILCHECK_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({ email: emailInput.value })
});
const data = await res.json();
if (data.status === "invalid" || data.status === "disqualifie") {
// Afficher un message d'erreur
let err = form.querySelector(".email-error");
if (!err) {
err = document.createElement("div");
err.className = "email-error";
err.style.cssText = "color:#c92a2a;font-size:0.85rem;margin-top:6px;";
emailInput.parentNode.insertBefore(err, emailInput.nextSibling);
}
err.textContent = "Cette adresse email semble invalide. Vérifiez et réessayez.";
if (btn) btn.value = originalText;
} else {
// Email valide, soumettre normalement
form.submit();
}
} catch (err) {
// En cas d'erreur API, laisser passer (fail open)
form.submit();
}
});
}); Validation inline sur n'importe quel formulaire
Ce snippet s'attache à tous les champs email d'une page et valide l'adresse au moment où
l'utilisateur sort du champ (blur), avant même la soumission.
Retour visuel immédiat avec un badge vert/rouge.
(function() {
const PROXY_URL = "/api/verify-email"; // Votre endpoint proxy backend
function injectBadge(input, status, score) {
let badge = input.parentNode.querySelector(".mc-badge");
if (!badge) {
badge = document.createElement("span");
badge.className = "mc-badge";
badge.style.cssText = "margin-left:8px;font-size:.8rem;font-weight:600;padding:2px 8px;border-radius:10px;";
input.parentNode.style.position = "relative";
input.parentNode.appendChild(badge);
}
if (status === "valid") {
badge.textContent = "✓ Valide";
badge.style.background = "#e6faf0";
badge.style.color = "#00873d";
} else {
badge.textContent = "✕ Invalide";
badge.style.background = "#ffe8e8";
badge.style.color = "#c92a2a";
}
}
document.querySelectorAll('input[type="email"]').forEach(function(input) {
input.addEventListener("blur", async function() {
if (!input.value || !input.value.includes("@")) return;
try {
const res = await fetch(PROXY_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ email: input.value })
});
const data = await res.json();
injectBadge(input, data.status, data.score);
} catch(e) { /* silencieux */ }
});
});
})(); Besoin d'aide pour intégrer ?
Notre documentation API couvre tous les endpoints avec des exemples complets. Notre équipe répond sous 24h.