Automatisation de la génération et de la publication de contenu de blog avec OpenAI et WordPress
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
- •Clé API OpenAI
Nœuds utilisés (6)
Catégorie
{
"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"
}
]
]
}
}
}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.
Workflows recommandés
Piotr Sobolewski
@piotrsobolewskiAI PhD with 7 years experience as a game dev CEO, currently teaching, helping others and building something new.
Partager ce workflow