Brancher des formulaires · Publié le · Emmanuel Sauvage

Webhook WordPress : envoyer vos formulaires vers e-mail, Slack ou SMS

Les e-mails de formulaires WordPress finissent trop souvent en spam ou ne partent pas du tout. Envoyer les soumissions vers un webhook permet de fiabiliser l’envoi (via un service comme Mailjet), de prévenir votre équipe sur Slack ou par SMS, et de garder un historique de chaque envoi.

Principe

  1. Le visiteur envoie le formulaire WordPress.
  2. WordPress transmet les données en POST à l’URL de votre webhook.
  3. Le service de webhooks exécute les actions : e-mail, notification, SMS, appel d’API.

Option 1 : la fonction webhook de votre extension

Si votre extension de formulaires propose une option ou un module « Webhook », indiquez l’URL de votre webhook Webhooky, la méthode POST et, si possible, le format JSON. Faites correspondre les noms de champs (name, email, message) à ceux attendus par vos actions.

Option 2 : un hook PHP (exemple Contact Form 7)

Pas de module webhook ? Quelques lignes de PHP suffisent. Stockez d’abord l’URL dans wp-config.php pour ne pas l’exposer dans le thème :

wp-config.php
// wp-config.php
define('WEBHOOKY_URL', 'https://webhooky.builders/webhook/form/VOTRE_JETON');

Puis branchez-vous sur l’action wpcf7_mail_sent :

PHP — Contact Form 7 vers webhook
<?php
// Extension maison ou functions.php du thème enfant.
// Envoie chaque formulaire Contact Form 7 vers un webhook après l'envoi.
add_action('wpcf7_mail_sent', function (WPCF7_ContactForm $form) {
    $submission = WPCF7_Submission::get_instance();
    if (!$submission) {
        return;
    }
    $data = $submission->get_posted_data();

    wp_remote_post(WEBHOOKY_URL, [ // constante définie dans wp-config.php
        'headers'  => ['Content-Type' => 'application/json', 'Accept' => 'application/json'],
        'body'     => wp_json_encode([
            'form'    => $form->title(),
            'name'    => sanitize_text_field($data['your-name'] ?? ''),
            'email'   => sanitize_email($data['your-email'] ?? ''),
            'message' => sanitize_textarea_field($data['your-message'] ?? ''),
        ]),
        'timeout'  => 10,
        'blocking' => false, // ne ralentit pas la réponse au visiteur
    ]);
});

Adaptez les clés (your-name, your-email…) aux noms de champs de votre formulaire. Pour tester, passez temporairement blocking à true et inspectez la réponse.

Configurer les actions dans Webhooky

Agences : un circuit pour tous vos sites clients

Chaque site client peut avoir son webhook, rattaché à une organisation distincte, avec ses propres connecteurs et journaux. Vous diagnostiquez un e-mail non reçu sans vous connecter au back-office de chaque site. Voir Webhooky pour les agences.

Questions fréquentes

Quelles extensions de formulaires gèrent les webhooks ?

Plusieurs extensions populaires proposent un envoi par webhook, soit nativement, soit via un module complémentaire parfois payant. Consultez la documentation de votre extension ; à défaut, le hook PHP présenté ici fonctionne avec Contact Form 7.

Le webhook ralentit-il mon site ?

Avec l’option non bloquante de wp_remote_post, l’appel part sans attendre la réponse. Le visiteur ne voit pas de différence.

Puis-je désactiver les e-mails WordPress du formulaire ?

Oui, si Webhooky envoie déjà l’e-mail via Mailjet. Gardez-les le temps de valider le nouveau circuit, puis désactivez-les dans votre extension.

Guide détaillé : intégration WordPress + Webhooky.

Passez de l’idée au premier webhook en quelques minutes

Créez un compte gratuit, générez une URL et connectez votre première action.

Forfait Free · sans carte bancaire · 100 événements inclus

Cette page vous a-t-elle été utile ?