Automatisation de la génération et de la publication de contenu de blog avec OpenAI et WordPress

Intermédiaire

Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 6 nœuds.Utilise principalement des nœuds comme Set, OpenAi, WordPress, ManualTrigger. Utiliser OpenAI et WordPress pour automatiser la génération et la publication de contenu de blog

Prérequis
  • Clé API OpenAI
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "nodes": [
    {
      "name": "Déclencheur manuel",
      "type": "n8n-nodes-base.manualTrigger",
      "notes": {
        "text": "### 1. Start Workflow\n\nThis `Manual Trigger` node is used for easy testing. \n\n**To trigger the workflow manually:** Click the 'Execute Workflow' button in the top right.\n\n**For production:** Consider replacing this with a `Cron` node (for scheduled posts) or a `Webhook` node (to trigger from another app, like a Google Sheet entry or a custom form).\n",
        "position": "right"
      },
      "position": [
        240,
        300
      ],
      "parameters": {},
      "typeVersion": 1,
      "id": "D-clencheur-manuel-0"
    },
    {
      "name": "Définir le sujet du blog",
      "type": "n8n-nodes-base.set",
      "notes": {
        "text": "### 2. Define Blog Topic\n\nThis `Set` node defines the core topic for your blog post.\n\n**How to use:**\n* **For testing:** Directly edit the 'Value' field with your desired topic.\n* **For production:** You can replace this fixed value with data from a previous node (e.g., a Google Sheet, an Airtable record, or a Webhook input) using an expression like `{{ $json.yourInputFieldName }}`.",
        "position": "right"
      },
      "position": [
        460,
        300
      ],
      "parameters": {
        "values": [
          {
            "name": "blogTopic",
            "value": "The Future of Remote Work: Trends and Challenges"
          }
        ],
        "options": {}
      },
      "typeVersion": 2,
      "id": "D-finir-le-sujet-du-blog-1"
    },
    {
      "name": "Générer le titre",
      "type": "n8n-nodes-base.openAi",
      "notes": {
        "text": "### 3. Generate Blog Post Title (AI)\n\nThis `OpenAI` node calls the OpenAI API to generate a compelling title based on the `blogTopic`.\n\n**Setup:**\n1.  **OpenAI Credential:** Click on 'Credentials' (above the 'Model' dropdown) and select 'New Credential'. Provide your OpenAI API Key (starts with `sk-`). Save it.\n2.  **Model:** You can change `gpt-3.5-turbo` to `gpt-4o` for potentially better results (but higher cost), or if you prefer a different model.\n\n**Output:** The generated title will be available in `{{ $node[\"Generate Title\"].json.choices[0].message.content }}`.",
        "position": "right"
      },
      "position": [
        700,
        300
      ],
      "parameters": {
        "model": "gpt-3.5-turbo",
        "options": {},
        "messages": [
          {
            "role": "system",
            "content": "You are a professional blogger. Your task is to generate concise and engaging blog post titles."
          },
          {
            "role": "user",
            "content": "Generate a blog post title for the topic: {{ $json.blogTopic }}"
          }
        ]
      },
      "credentials": {
        "openAiApi": {
          "id": "YOUR_OPENAI_CREDENTIAL_ID",
          "resolve": false
        }
      },
      "typeVersion": 1,
      "id": "G-n-rer-le-titre-2"
    },
    {
      "name": "Générer le corps",
      "type": "n8n-nodes-base.openAi",
      "notes": {
        "text": "### 4. Generate Blog Post Body (AI)\n\nThis second `OpenAI` node generates the full content of your blog post.\n\n**Setup:**\n1.  **Credentials:** Select the same OpenAI credential you created for the 'Generate Title' node.\n2.  **Model:** Ensure this matches your preference (e.g., `gpt-3.5-turbo` or `gpt-4o`).\n3.  **Prompts:** The 'User' prompt feeds in both the original topic and the title generated in the previous step, providing context for the AI.\n\n**Output:** The full blog post body will be in `{{ $node[\"Generate Body\"].json.choices[0].message.content }}`.",
        "position": "right"
      },
      "position": [
        940,
        300
      ],
      "parameters": {
        "model": "gpt-3.5-turbo",
        "options": {},
        "messages": [
          {
            "role": "system",
            "content": "You are a professional blogger. Write a detailed, well-structured blog post with an introduction, several body paragraphs, and a clear conclusion. Use Markdown for headings, bold text, and lists. Ensure the content is engaging and informative for a general audience."
          },
          {
            "role": "user",
            "content": "Write a blog post about: {{ $json.blogTopic }}\n\nUse the title: {{ $node[\"Generate Title\"].json.choices[0].message.content }}"
          }
        ]
      },
      "credentials": {
        "openAiApi": {
          "id": "YOUR_OPENAI_CREDENTIAL_ID",
          "resolve": false
        }
      },
      "typeVersion": 1,
      "id": "G-n-rer-le-corps-3"
    },
    {
      "name": "Préparer le contenu",
      "type": "n8n-nodes-base.set",
      "notes": {
        "text": "### 5. Prepare Content for Publishing\n\nThis `Set` node consolidates and renames the generated title and body into easily accessible fields (`blogPostTitle` and `blogPostBody`). This makes it cleaner to reference them in the final WordPress publishing step.\n\n**No specific setup needed here**, it just maps the data from the previous AI nodes.",
        "position": "right"
      },
      "position": [
        1180,
        300
      ],
      "parameters": {
        "values": [
          {
            "name": "blogPostTitle",
            "value": "={{ $node[\"Generate Title\"].json.choices[0].message.content }}"
          },
          {
            "name": "blogPostBody",
            "value": "={{ $node[\"Generate Body\"].json.choices[0].message.content }}"
          }
        ],
        "options": {}
      },
      "typeVersion": 2,
      "id": "Pr-parer-le-contenu-4"
    },
    {
      "name": "Publier sur WordPress",
      "type": "n8n-nodes-base.wordPress",
      "notes": {
        "text": "### 6. Publish to WordPress\n\nThis `WordPress` node creates a new post on your WordPress site using the AI-generated content.\n\n**Setup:**\n1.  **WordPress Credential:** Click 'Credentials' and select 'New Credential'.\n    * **Authentication:** Choose `User & Password`.\n    * **WordPress URL:** Enter your full WordPress site URL (e.g., `https://yourdomain.com`).\n    * **Username:** Your WordPress admin username.\n    * **Password:** Your WordPress admin password.\n2.  **Title & Content:** These fields are pre-filled with expressions to pull data from the 'Prepare Content' node.\n3.  **Status:** Set to `publish` to make the post live immediately. Change to `draft` if you want to review it manually before publishing.\n\n**After successful execution, visit your WordPress site to see the new post!**",
        "position": "right"
      },
      "position": [
        1420,
        300
      ],
      "parameters": {
        "title": "={{ $json.blogPostTitle }}",
        "status": "publish",
        "content": "={{ $json.blogPostBody }}",
        "options": {},
        "resource": "post",
        "operation": "create"
      },
      "credentials": {
        "wordPressApi": {
          "id": "YOUR_WORDPRESS_CREDENTIAL_ID",
          "resolve": false
        }
      },
      "typeVersion": 2,
      "id": "Publier-sur-WordPress-5"
    }
  ],
  "pinData": {},
  "version": 1,
  "connections": {
    "G-n-rer-le-corps-3": {
      "main": [
        [
          {
            "node": "Pr-parer-le-contenu-4",
            "type": "main"
          }
        ]
      ]
    },
    "G-n-rer-le-titre-2": {
      "main": [
        [
          {
            "node": "G-n-rer-le-corps-3",
            "type": "main"
          }
        ]
      ]
    },
    "D-clencheur-manuel-0": {
      "main": [
        [
          {
            "node": "D-finir-le-sujet-du-blog-1",
            "type": "main"
          }
        ]
      ]
    },
    "D-finir-le-sujet-du-blog-1": {
      "main": [
        [
          {
            "node": "G-n-rer-le-titre-2",
            "type": "main"
          }
        ]
      ]
    },
    "Pr-parer-le-contenu-4": {
      "main": [
        [
          {
            "node": "Publier-sur-WordPress-5",
            "type": "main"
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Création de contenu, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds6
Catégorie2
Types de nœuds4
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Auteur
Piotr Sobolewski

Piotr Sobolewski

@piotrsobolewski

AI PhD with 7 years experience as a game dev CEO, currently teaching, helping others and building something new.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34