Récemment, j’ai réalisé que je pouvais créer une interface web simple pour les autres, sans exposer mon serveur comme une auberge espagnole. Et tout ça… sans coder une API. Magie de n8n.
📌 Contexte
Je suis plutôt du genre à utiliser des formulaires n8n, pas des webhooks directs. Mais ça, ça fonctionne bien pour un usage perso, quand on a accès à son workflow n8n.
Quand on veut faire profiter son automatisation aux autres, ça fonctionne beaucoup moins bien :
- les URLs sont très longues
- ça nécessite d'utiliser les mêmes canaux de distribution (mail, Telegram...)
Mais récemment, j’ai eu une révélation : si je veux me professionnaliser en automatisation, il faut que les autres puissent interagir avec mes outils.
Et comme je refuse de redéployer une API sur mon VPS (traumatisme post-hack oblige — cf. cet article), j’ai cherché une méthode alternative.
💡 La solution : le double webhook
Voici le principe :
- Webhook 1 (GET) : tu ouvres une URL publique (ex :
https://mon-vps.com/webhook/formulaire
) qui sert une page HTML.
➔ C’est là que l’utilisateur arrive et voit le "formulaire". - Webhook 2 (POST) : c’est l’adresse à laquelle le formulaire envoie les données.
➔ Il est invisible, mais c’est lui qui va à proprement parler gérer les données de l’automatisation.
➔ Et c’est aussi lui qui va afficher la réponse finale sur la même page, sans même devoir la recharger.
Résultat : tu as un mini-service web, avec lequel l'utilisateur peut envoyer et recevoir de la donnée, totalement géré par n8n, sans exposer d’API vulnérable.
🛠 Exemple concret : un convertisseur d’image
Je vais te montrer un mini service que j’ai construit pour moi-même. L’idée m’est venue en générant des images avec ChatGPT : il produit des PNG super lourds. Du coup, j’ai bricolé un convertisseur qui transforme ces fichiers en JPEG allégés.
🧰 Pré-requis
- Une instance n8n fonctionnelle
- Le community node Image Sharp installé
Cette automatisation repose sur deux workflows distincts, chacun avec son propre webhook. C’est ce système de double webhook dont je te parlais plus haut.
🖼️ Workflow 1 : Le formulaire HTML hébergé

Ton premier webhook permet d’héberger ce code HTML :
<form action="https://mon-vps.com/webhook/traitement" method="POST" enctype="multipart/form-data">
<input type="file" name="data" multiple required />
<button type="submit">Envoyer</button>
</form>
Ce formulaire est entièrement généré dans un nœud Code et affiché via un Respond to Webhook
. L’utilisateur peut y charger ses photos.
📤 Workflow 2 : Le traitement de l'image en arrière-plan

Les fichiers sont alors :
- reçus par le second webhook,
- décomposés (si multiples),
- convertis et allégés en JPEG,
- puis renvoyés à l’utilisateur sous forme de liens de téléchargement dans une page HTML personnalisée.
Le Respond to Webhook
du second workflow se charge de toute la mise en page.
💡 Pourquoi pas du binaire ?
On ne stocke pas les fichiers convertis dans un bucket ou sur disque. Ils sont affichés en base64 directement dans la page.
Pourquoi ? Parce que ça évite de surcharger le VPS avec des fichiers inutiles à long terme — meilleure scalabilité, moins de nettoyage.
🔐 Et côté sécurité ?
- Le webhook d’affichage (GET) ne fait que renvoyer du HTML. Il peut être protégé par authentification HTTP si besoin.
- Le webhook de traitement (POST) peut :
- rester désactivé par défaut,
- être limité à certaines IPs,
- ou bien recevoir une authentification si tu veux ouvrir l’accès.
À tester chez toi
Tu veux tester ce système ? Voici les grandes étapes :
- Crée 2 webhooks dans n8n : un GET (affichage) et un POST (traitement)
- Utilise des nœuds
Code
pour générer ton HTML - Réponds avec
Respond to Webhook
pour afficher la réponse finale
Et voilà : mini-service web déployé, sans backend, sans stress.
Workflows à télécharger et réutiliser
Voici les workflows si tu veux reproduire exactement ce que j’ai fait
Contenu verrouillé
Cet article est réservé aux abonnés
Pour continuer la lecture, inscris-toi et reçois ton accès par e-mail.
Rejoindre maintenantTu as déjà un compte ? Se connecter