n8n + WordPress permet d’automatiser la publication, la récupération de contenus, la gestion des formulaires et les alertes sans développer un plugin complet. La méthode la plus fiable consiste à créer un mot de passe d’application WordPress, à le stocker dans les credentials n8n, puis à utiliser le nœud WordPress ou le nœud HTTP Request avec l’API REST. En pratique, vous pouvez déclencher un workflow avec un formulaire ou un webhook, filtrer les données, créer un brouillon et notifier l’équipe en quelques minutes.

Vous avez peut-être déjà copié manuellement des commandes WooCommerce, des articles ou des leads entre plusieurs outils. Le premier workflow présenté ici automatise une tâche concrète tout en gardant une validation humaine avant publication. Il évite aussi les erreurs classiques de droits, d’URL et de secrets.

Que peut faire n8n avec WordPress ?

n8n est un orchestrateur de workflows. Il reçoit un événement, transforme les données, appelle un service puis traite la réponse. Avec WordPress, le connecteur officiel sait notamment créer, lire et modifier des articles, des pages et des utilisateurs. Pour une opération absente du nœud, le nœud HTTP Request peut appeler directement la REST API WordPress.

Les usages les plus utiles sont la création d’un brouillon depuis un formulaire, la notification d’un nouvel article dans une messagerie, la synchronisation d’un catalogue, l’archivage d’un contenu dans une base et le contrôle périodique des erreurs. Commencez par une seule action mesurable. Un workflow court se teste mieux et se restaure plus facilement qu’une chaîne qui modifie simultanément les articles, les médias et les utilisateurs.

La REST API expose les ressources selon des routes comme /wp-json/wp/v2/posts. Les contenus publics peuvent être lus sans authentification, tandis que la création et la modification nécessitent un compte autorisé. La documentation officielle de la REST API WordPress décrit cette séparation.

Préparer WordPress et n8n sans exposer le mot de passe

Utilisez un compte WordPress dédié à l’automatisation, avec le rôle minimal nécessaire. Pour publier des articles, un auteur ou un éditeur peut suffire selon votre processus. N’utilisez pas le compte administrateur principal dans n8n. Activez HTTPS sur le site et vérifiez que l’API répond avant de configurer le workflow.

Dans le profil du compte, créez un mot de passe d’application nommé n8n. WordPress n’affiche la valeur complète qu’au moment de sa création. Copiez-la dans le gestionnaire de credentials n8n, pas dans un champ texte d’un nœud et pas dans un dépôt Git. Une fois le test terminé, révoquez les credentials inutiles.

# Vérifier que la REST API répond
curl -i https://exemple.fr/wp-json/wp/v2/types/post

# Tester une lecture publique des articles
curl -s 'https://exemple.fr/wp-json/wp/v2/posts?per_page=1' | head -c 500

Les mots de passe d’application sont adaptés à l’accès distant de la REST API. Ils ne remplacent pas le mot de passe habituel et peuvent être révoqués séparément. Consultez la documentation WordPress sur l’authentification avant de donner un accès à une nouvelle instance n8n.

Créer le credential WordPress dans n8n

Dans n8n, ouvrez la section des credentials, choisissez le credential WordPress puis sélectionnez l’authentification Basic. Saisissez l’URL complète du site, le nom d’utilisateur du compte dédié et son mot de passe d’application. Ne confondez pas l’URL de l’administration avec l’URL publique du site. En général, n8n doit recevoir https://exemple.fr, sans ajouter manuellement wp-json.

Enregistrez puis lancez le test du credential. Si le test échoue, vérifiez d’abord le certificat TLS, les redirections et la présence de l’API. Certains hébergeurs filtrent les requêtes sortantes, certains pare-feu bloquent l’en-tête Authorization et certains plugins de sécurité limitent les routes REST. Le message exact dans l’historique n8n permet de distinguer un refus d’authentification d’un problème réseau.

La documentation n8n précise que l’intégration utilise le nom d’utilisateur, le mot de passe d’application et l’URL WordPress. Elle distingue aussi l’authentification Basic, adaptée à un WordPress auto-hébergé, de l’OAuth2 réservé à WordPress.com dans ce credential. Voir la page officielle des credentials WordPress dans n8n.

Construire un workflow simple avec un formulaire

Pour un premier scénario, ajoutez un nœud Form Trigger, un nœud Set, un nœud WordPress et un nœud de notification. Le formulaire demande un titre, un texte et une adresse de contact. Le nœud Set normalise les champs. Le nœud WordPress crée un brouillon. La notification indique le lien et la personne qui doit relire le contenu.

Dans le nœud WordPress, choisissez la ressource Post puis l’opération Create. Affectez le titre reçu au champ Title et le texte au champ Content. Choisissez le statut Draft au début. Une publication automatique sans contrôle éditorial peut envoyer un contenu incomplet, un texte dupliqué ou une donnée personnelle sur le site.

{
  "title": "={{ $json.titre }}",
  "content": "={{ $json.contenu }}",
  "status": "draft",
  "categories": [12]
}

Les expressions n8n utilisent les données du nœud précédent. Le nom exact d’un champ dépend du formulaire. Exécutez chaque nœud séparément et inspectez la sortie avant de relier l’étape suivante. Pour les catégories et les étiquettes, récupérez d’abord les identifiants avec une lecture de la collection correspondante. WordPress attend des identifiants numériques dans plusieurs opérations REST, pas toujours le nom visible dans l’interface.

Utiliser un webhook pour déclencher l’automatisation

Un webhook permet à un service externe d’appeler n8n lorsqu’un événement se produit. Ajoutez un nœud Webhook, choisissez la méthode attendue et copiez l’URL de production. Activez le workflow avant de tester. L’URL de test ne sert que pendant l’écoute dans l’éditeur et ne doit pas être enregistrée dans un service permanent.

curl -i -X POST 'https://n8n.exemple.fr/webhook/wordpress-contenu' 
  -H 'Content-Type: application/json' 
  -H 'X-Webhook-Secret: valeur-temporaire' 
  -d '{"titre":"Brouillon depuis n8n","contenu":"Texte à relire"}'

Ajoutez une vérification du secret ou de la signature avant le nœud WordPress. Validez aussi le type de contenu, la longueur du titre et l’existence du champ obligatoire. Un webhook public doit répondre rapidement. Si la rédaction ou l’analyse prend du temps, retournez une réponse immédiate puis poursuivez le traitement dans le workflow.

Si le webhook ne reçoit rien, contrôlez l’URL publique, le DNS, le certificat, le reverse proxy et l’état du workflow. Notre guide n8n webhook ne fonctionne pas détaille les erreurs de mode test, de proxy et de méthode HTTP.

Publier un article WordPress avec une validation humaine

Le meilleur compromis consiste à créer un brouillon puis à demander une validation. Ajoutez un nœud IF qui vérifie une valeur comme valide = true. La branche positive peut modifier le statut en publish, tandis que la branche négative envoie le brouillon à un rédacteur. Cette étape limite les publications accidentelles et crée un historique clair.

Avant de publier, vérifiez au minimum le titre, le slug, le contenu vide, les liens et le statut. Vous pouvez ajouter un nœud Code pour refuser un contenu trop court. Évitez toutefois d’y mettre des règles éditoriales fragiles qui seraient difficiles à maintenir. Les contrôles critiques doivent rester visibles dans des nœuds simples.

const titre = String($json.titre ?? '').trim();
const contenu = String($json.contenu ?? '').trim();

if (titre.length <  10 || contenu.length < 300) {
  throw new Error('Titre ou contenu trop court');
}

return [{ json: { ...$json, pret_a_relire: true } }];

Dans cet exemple, remplacez la valeur invalide de longueur par 10 si vous copiez le code. Le contrôle doit rester explicite, car une expression mal formée bloque tout le workflow. Pour modifier un article existant, récupérez son identifiant puis utilisez l’opération Update plutôt que de créer un doublon.

Appeler la REST API avec HTTP Request

Le nœud WordPress couvre les opérations courantes. Le nœud HTTP Request est préférable pour une route ou un champ que le connecteur ne propose pas encore. Configurez l’URL, la méthode, l’authentification et le corps JSON. Réutilisez le credential enregistré grâce à l’option d’authentification prédéfinie, au lieu de recopier un token.

curl --user 'UTILISATEUR:MOT_DE_PASSE_APPLICATION' 
  -H 'Content-Type: application/json' 
  -X POST 'https://exemple.fr/wp-json/wp/v2/posts' 
  -d '{"title":"Brouillon API","content":"Contenu à relire","status":"draft"}'

La route de création des articles accepte notamment le titre, le contenu et le statut. L’utilisateur doit posséder les droits correspondants. La référence WordPress sur les articles REST liste les champs, les arguments et les réponses. Testez d’abord avec un brouillon dans un environnement de préproduction.

Traitez les codes HTTP explicitement. Un code 401 indique généralement un credential refusé, un code 403 un manque de droits ou une règle de sécurité, et un code 429 une limitation. Configurez une reprise progressive seulement pour les erreurs temporaires. Ne répétez pas automatiquement une création sans identifiant d’idempotence, sinon vous risquez de publier plusieurs fois le même contenu.

Synchroniser les médias et éviter les doublons

La synchronisation d’images demande plus de précautions qu’un article. Téléchargez le fichier depuis une source de confiance, vérifiez son type MIME et envoyez-le à la route médias avec le credential WordPress. Conservez ensuite l’identifiant retourné pour l’associer à l’article. Ne faites pas confiance à un nom de fichier fourni par un visiteur.

Pour éviter les doublons, cherchez d’abord un article avec un slug ou une référence externe stable. Si la réponse indique qu’il existe déjà, utilisez Update. Stockez l’identifiant WordPress dans la base utilisée par le workflow. Une simple comparaison de titre ne suffit pas, car deux contenus peuvent légitimement partager des mots communs.

Ajoutez une branche d’erreur n8n qui conserve la charge utile minimale, le code de réponse et l’identifiant d’exécution. N’enregistrez jamais le mot de passe d’application, les tokens ou des données personnelles inutiles dans les logs. Une alerte concise est plus exploitable qu’un export complet du contenu.

Sécuriser et surveiller la connexion n8n + WordPress

Le credential est le point le plus sensible. Limitez le rôle du compte WordPress, protégez l’instance n8n par HTTPS et une authentification forte, puis restreignez l’accès réseau à l’éditeur. Faites tourner le mot de passe d’application si un collaborateur quitte le projet. N’activez pas l’option qui ignore les problèmes TLS, sauf diagnostic temporaire dans un environnement isolé.

Surveillez les échecs et les temps de réponse. Un workflow qui fonctionne manuellement peut échouer lorsqu’un fournisseur ralentit ou qu’un hébergeur applique une limite. Utilisez une branche d’erreur, une notification et une reprise modérée. Pour une publication critique, ajoutez une vérification après l’écriture en relisant l’article créé avec son identifiant.

Si votre instance n8n est auto-hébergée, sauvegardez la base et la clé de chiffrement. Notre guide n8n avec Docker Compose couvre les volumes, PostgreSQL, HTTPS et la stratégie de mise à jour. La sécurité de WordPress et celle de n8n doivent être traitées ensemble, car une fuite de credential donne un accès direct aux contenus.

Résoudre les erreurs les plus fréquentes

Une erreur 404 sur la REST API vient souvent d’une URL incorrecte, de permaliens mal réécrits ou d’une route désactivée. Une erreur 401 vient du nom d’utilisateur, du mot de passe d’application ou d’un proxy qui retire l’en-tête Authorization. Une erreur 403 peut être produite par le rôle WordPress, un plugin de sécurité ou le pare-feu de l’hébergeur.

Si n8n signale un délai d’attente, testez la route depuis le serveur qui héberge n8n avec curl. Vérifiez ensuite le DNS et les journaux du proxy. Si la création fonctionne mais que les champs sont vides, inspectez la sortie du nœud précédent et les expressions. Les erreurs de mapping sont souvent visibles avant même l’appel à WordPress.

# Afficher uniquement les en-têtes et le statut
curl -sS -o /dev/null -D - 
  https://exemple.fr/wp-json/wp/v2/posts?per_page=1

Ne désactivez pas durablement un plugin de sécurité pour contourner une erreur. Identifiez la règle, autorisez uniquement le compte ou la route nécessaire, puis refaites un test avec un payload sans donnée sensible.

Checklist avant de mettre le workflow en production

  • Le compte WordPress dédié possède uniquement les droits nécessaires.
  • Le mot de passe d’application est enregistré dans un credential n8n.
  • L’URL du site utilise HTTPS et répond depuis le serveur n8n.
  • Le workflow utilise l’URL de production du webhook.
  • Les créations commencent en brouillon avec une validation humaine.
  • Les erreurs 401, 403, 404 et 429 sont distinguées.
  • Les doublons sont évités avec un identifiant stable.
  • Les branches d’erreur et les alertes ne révèlent aucun secret.

Une fois ces contrôles passés, activez le workflow pendant une période d’observation. Vérifiez quelques exécutions réelles, relisez les contenus créés et mesurez le taux d’erreur. L’automatisation doit réduire une tâche répétitive sans devenir une boîte noire qui publie sans contrôle.

FAQ n8n + WordPress

n8n peut-il publier automatiquement dans WordPress ?

Oui. Le nœud WordPress peut créer ou modifier un article si le credential dispose des droits requis. Commencez par le statut brouillon, puis ajoutez une validation avant d’autoriser la publication.

Quel mot de passe utiliser entre n8n et WordPress ?

Utilisez un mot de passe d’application associé à un compte WordPress dédié. Ne transmettez pas le mot de passe principal et ne stockez pas la valeur dans un nœud ou un dépôt.

Pourquoi n8n reçoit-il une erreur 401 avec WordPress ?

Vérifiez l’utilisateur, le mot de passe d’application, l’URL du site et l’en-tête Authorization. Un reverse proxy ou un plugin de sécurité peut aussi supprimer ou bloquer l’authentification.

Faut-il utiliser le nœud WordPress ou HTTP Request ?

Le nœud WordPress est le choix le plus simple pour les articles, pages et utilisateurs. HTTP Request convient lorsqu’une route REST ou un champ n’est pas disponible dans le connecteur.

Comment éviter les articles en double avec n8n ?

Recherchez une référence externe ou un slug stable avant la création. Si l’article existe, utilisez l’opération Update avec son identifiant au lieu de lancer une nouvelle création.

Sources

  1. Documentation n8n du nœud WordPress
  2. Documentation n8n des credentials WordPress
  3. Documentation n8n du nœud Webhook
  4. Manuel officiel de la REST API WordPress
  5. Référence officielle WordPress des articles
  6. Authentification officielle de la REST API WordPress
  7. Documentation n8n du nœud HTTP Request
N
· Développeur WordPress & fullstack · Expert IA

Natsou développe sur WordPress depuis plus de 10 ans. Développeur fullstack et expert en intelligence artificielle, il conçoit, débogue et sécurise des sites en production et automatise les workflows d'agence. Sur WP Admin Lab, il partage des procédures testées en conditions réelles : diagnostics reproductibles, correctifs vérifiés et retours de terrain, sans jargon inutile.