Rédacteur d'articles de blog OpenAI
Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 10 nœuds.Utilise principalement des nœuds comme Code, Sort, HttpRequest, ScheduleTrigger, OpenAi. Génération automatisée d'articles de blog basée sur l'utilisation des produits WooCommerce avec GPT-4.1-mini
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Clé API OpenAI
Nœuds utilisés (10)
Catégorie
{
"id": "pgpdUduSobC5XGsE",
"meta": {
"instanceId": "256e0224567a81ad2d19d67041dccb4aba84a3ec55947042e28c6efa76b21434",
"templateCredsSetupCompleted": false
},
"name": "OpenAi Blog Post Writer",
"tags": [],
"nodes": [
{
"id": "af8cadb7-3d81-4a81-a41a-9232ccfe8791",
"name": "Déclencheur programmé",
"type": "n8n-nodes-base.scheduleTrigger",
"notes": "Change day and time schedule for the triggering of this node. ",
"position": [
-40,
-120
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 6,
"triggerAtMinute": 17
}
]
}
},
"typeVersion": 1.2
},
{
"id": "2ffc32c1-8abf-4e77-aa19-5b53a65ec359",
"name": "Récupérer le produit Woocommerce",
"type": "n8n-nodes-base.httpRequest",
"notes": "Uses Basic Auth credentials to connect to the WooCommerce REST API.\n\n🛠️ Required:\n- Valid WooCommerce API key with Read permissions\n- Domain updated to match the current store\n- Basic Auth credentials selected from n8n credentials manager\n\n🔁 Behavior:\n- Pulls 100 products (paginated if needed)\n- Used as source input for downstream automation (e.g., blog post or sync)",
"position": [
240,
-200
],
"parameters": {
"url": "https://yourwebsite.com/wp-json/wc/v3/products?per_page=100",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpBasicAuth"
},
"credentials": {
"httpBasicAuth": {
"id": "Basic Auth credentials",
"name": "Crednetials"
}
},
"notesInFlow": true,
"typeVersion": 4.2
},
{
"id": "626696fb-922e-4d7a-acbc-9d991f3d59c2",
"name": "Créer un article de blog sur le produit sélectionné via GPT-4.1-MINI",
"type": "@n8n/n8n-nodes-langchain.openAi",
"notes": "Change OpenAi credentials and adjust prompt and tone input. ",
"position": [
920,
-260
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "GPT-4.1-MINI"
},
"options": {},
"messages": {
"values": [
{
"content": "=Write a fun, curiosity-driven blog post for the following product {{ $json.permalink }}. The post should appeal to people looking for quirky, unique, or thoughtful gifts—like birthdays, holidays, viral TikTok items, minimalist gifts, or AI-themed stuff. Make it casual, catchy, and shareable. Avoid sounding corporate. Only write one. INclude the link to the product in the post. "
}
]
}
},
"credentials": {
"openAiApi": {
"id": "OpenAi account",
"name": "OpenAi account"
}
},
"notesInFlow": true,
"typeVersion": 1.8
},
{
"id": "fd64d732-62f4-4c63-a53e-4ca352437bf2",
"name": "Publier sur Wordpress",
"type": "n8n-nodes-base.httpRequest",
"notes": "Select basic auth credentials and adjust domain name as needed. ",
"position": [
1600,
-320
],
"parameters": {
"url": "https://yourwebsite.com/wp-json/wp/v2/posts",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "title",
"value": "={{$json[\"title\"]}}"
},
{
"name": "content",
"value": "={{ $json.content }}"
},
{
"name": "excerpt",
"value": "={{ $json.excerpt }}"
},
{
"name": "slug",
"value": "={{$json[\"slug\"]}}"
},
{
"name": "status",
"value": "publish"
},
{
"name": "categories[0]",
"value": "1"
}
]
},
"genericAuthType": "httpBasicAuth"
},
"credentials": {
"httpBasicAuth": {
"id": "Your Crednetials",
"name": "Your Credentials"
}
},
"notesInFlow": true,
"typeVersion": 4.2
},
{
"id": "204cfa52-1c8b-4bf0-b645-28913c6fbd18",
"name": "Retourner un seul",
"type": "n8n-nodes-base.code",
"position": [
700,
-220
],
"parameters": {
"jsCode": "// Pass through the first item only\nreturn items[0];\n"
},
"typeVersion": 2
},
{
"id": "d901393d-555d-4ba7-a5ea-6d2626bccca2",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
180,
-300
],
"parameters": {
"content": "Pull 100 Woocommerce Products. Set shop's authentication credentials here. "
},
"typeVersion": 1
},
{
"id": "b23f799e-df15-4a67-a818-9d5619a61d38",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
900,
-340
],
"parameters": {
"width": 380,
"content": "Create blog post about selected product via OpenAi. Set OpenAi credentials here. "
},
"typeVersion": 1
},
{
"id": "9c18e11d-48a1-4b1a-b5ac-3872407678c4",
"name": "Trier les produits aléatoirement",
"type": "n8n-nodes-base.sort",
"position": [
500,
-200
],
"parameters": {
"type": "random"
},
"typeVersion": 1
},
{
"id": "8cf8ef2f-6e3e-47e5-a7d2-d48e98bf2217",
"name": "Formater l'article pour publication",
"type": "n8n-nodes-base.code",
"position": [
1320,
-300
],
"parameters": {
"jsCode": "const raw = $input.first().json.message.content || \"\";\n\nif (!raw) {\n throw new Error(\"No content found in 'content' field.\");\n}\n\n// Extract title and content\nlet title = \"\";\nlet content = \"\";\n\nif (raw.includes(\"\\n\\n\")) {\n const [maybeTitle, ...rest] = raw.split(\"\\n\\n\");\n if (maybeTitle.length < 120) {\n title = maybeTitle.trim();\n content = rest.join(\"\\n\\n\").trim();\n } else {\n content = raw.trim();\n }\n} else {\n content = raw.trim();\n}\n\nif (!title) {\n const firstLine = content.split(\"\\n\")[0];\n if (firstLine.length < 120) {\n title = firstLine.trim();\n content = content.replace(firstLine, \"\").trim();\n } else {\n title = \"Untitled Blog Post\";\n }\n}\n\n// Slugify\nconst slug = title\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/(^-|-$)/g, \"\");\n\n// Excerpt: first ~30 words\nconst excerpt = content.split(/\\s+/).slice(0, 30).join(\" \") + \"...\";\n\nreturn [\n {\n json: {\n title,\n slug,\n excerpt,\n content,\n },\n },\n];\n"
},
"typeVersion": 2
},
{
"id": "4ff33de0-46c5-4609-85fa-d0c396dd185e",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1460,
-360
],
"parameters": {
"width": 260,
"content": "Set your Wordpress authentication credentials here. "
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "8102db42-7cef-4061-9600-a5526abd94f2",
"connections": {
"204cfa52-1c8b-4bf0-b645-28913c6fbd18": {
"main": [
[
{
"node": "626696fb-922e-4d7a-acbc-9d991f3d59c2",
"type": "main",
"index": 0
}
]
]
},
"af8cadb7-3d81-4a81-a41a-9232ccfe8791": {
"main": [
[
{
"node": "2ffc32c1-8abf-4e77-aa19-5b53a65ec359",
"type": "main",
"index": 0
}
]
]
},
"9c18e11d-48a1-4b1a-b5ac-3872407678c4": {
"main": [
[
{
"node": "204cfa52-1c8b-4bf0-b645-28913c6fbd18",
"type": "main",
"index": 0
}
]
]
},
"2ffc32c1-8abf-4e77-aa19-5b53a65ec359": {
"main": [
[
{
"node": "9c18e11d-48a1-4b1a-b5ac-3872407678c4",
"type": "main",
"index": 0
}
]
]
},
"8cf8ef2f-6e3e-47e5-a7d2-d48e98bf2217": {
"main": [
[
{
"node": "fd64d732-62f4-4c63-a53e-4ca352437bf2",
"type": "main",
"index": 0
}
]
]
},
"626696fb-922e-4d7a-acbc-9d991f3d59c2": {
"main": [
[
{
"node": "8cf8ef2f-6e3e-47e5-a7d2-d48e98bf2217",
"type": "main",
"index": 0
}
]
]
}
}
}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
Thomas
@darkrangeholdingsPartager ce workflow