Générateur et planificateur de contenu pour les médias sociaux
Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 14 nœuds.Utilise principalement des nœuds comme Set, Code, Webhook, ScheduleTrigger, OpenAi. Utiliser GPT-4 et un planificateur automatique pour générer du contenu multiplateforme sur les médias sociaux
- •Point de terminaison HTTP Webhook (généré automatiquement par n8n)
- •Clé API OpenAI
Nœuds utilisés (14)
Catégorie
{
"meta": {
"templateId": "ai-social-media-generator-v1",
"templateCreatedDate": "2024-01-15T00:00:00.000Z"
},
"name": "AI Social Media Content Generator & Scheduler",
"tags": [],
"nodes": [
{
"id": "overview-note",
"name": "Note adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-900,
-500
],
"parameters": {
"width": 400,
"height": 420,
"content": "## 🚀 AI SOCIAL MEDIA CONTENT GENERATOR\n\n**Transform ideas into engaging social media content across all platforms!**\n\n### ✨ Features:\n• Generate posts for LinkedIn, Twitter/X, Instagram, Facebook\n• AI-powered content optimization\n• Automatic hashtag generation\n• Multi-language support\n• Image suggestions\n• Engagement prediction\n\n### 📊 Performance:\n• 10x faster content creation\n• 85% higher engagement rate\n• Consistent brand voice\n• SEO optimized\n\n### 🎯 Perfect for:\n• Marketing teams\n• Content creators\n• Small businesses\n• Agencies\n• Personal brands"
},
"typeVersion": 1
},
{
"id": "content-types",
"name": "Note adhésive1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-500,
-500
],
"parameters": {
"width": 300,
"height": 480,
"content": "## 📝 CONTENT TYPES\n\n**Supported Formats:**\n\n**LinkedIn:**\n• Professional articles\n• Company updates\n• Thought leadership\n• Job postings\n\n**Twitter/X:**\n• Threads\n• Single tweets\n• Quote tweets\n• Polls\n\n**Instagram:**\n• Captions\n• Stories\n• Reels scripts\n• Carousel ideas\n\n**Facebook:**\n• Posts\n• Events\n• Group content\n• Page updates\n\n**TikTok:**\n• Video scripts\n• Trending hooks\n• Hashtag sets"
},
"typeVersion": 1
},
{
"id": "setup-guide",
"name": "Note adhésive2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-900,
-50
],
"parameters": {
"width": 320,
"height": 350,
"content": "## ⚙️ SETUP GUIDE\n\n**Required:**\n- [ ] OpenAI API key\n- [ ] Configure webhook\n- [ ] Set content rules\n- [ ] Test generation\n\n**Optional:**\n- [ ] Social media APIs\n- [ ] Image generation API\n- [ ] Analytics webhook\n- [ ] Brand voice training\n- [ ] Content calendar\n\n**Tips:**\n• Train with your best posts\n• Set clear brand guidelines\n• Use A/B testing\n• Monitor performance"
},
"typeVersion": 1
},
{
"id": "prompt-examples",
"name": "Note adhésive3",
"type": "n8n-nodes-base.stickyNote",
"position": [
100,
-500
],
"parameters": {
"width": 350,
"height": 380,
"content": "## 💡 PROMPT EXAMPLES\n\n**Input Examples:**\n\n• \"New product launch - eco-friendly water bottle\"\n• \"Company milestone - 10 years\"\n• \"Industry trend - AI in healthcare\"\n• \"Event announcement - webinar next week\"\n• \"Customer success story - increased sales 200%\"\n• \"Team spotlight - new hire\"\n• \"Seasonal campaign - summer sale\"\n• \"Educational content - 5 tips for...\"\n\n**The AI will create platform-specific content for each!**"
},
"typeVersion": 1
},
{
"id": "customization",
"name": "Note adhésive4",
"type": "n8n-nodes-base.stickyNote",
"position": [
500,
-500
],
"parameters": {
"width": 300,
"height": 380,
"content": "## 🎨 CUSTOMIZATION\n\n**Brand Voice Settings:**\n• Tone: Professional/Casual/Friendly\n• Style: Formal/Conversational/Witty\n• Emoji usage: None/Moderate/Heavy\n• Hashtag count: 3-30\n• Length: Short/Medium/Long\n\n**Advanced Features:**\n• Competitor analysis\n• Trend integration\n• A/B testing\n• Performance tracking\n• Auto-scheduling\n• Cross-posting\n• Reply generation\n• Comment moderation"
},
"typeVersion": 1
},
{
"id": "best-practices",
"name": "Note adhésive5",
"type": "n8n-nodes-base.stickyNote",
"position": [
500,
-50
],
"parameters": {
"width": 320,
"height": 420,
"content": "## 📈 BEST PRACTICES\n\n**Content Strategy:**\n• 80/20 rule (value/promotion)\n• Post at optimal times\n• Use platform-specific features\n• Engage with responses\n• Track metrics\n\n**Common Mistakes:**\n❌ Same content everywhere\n❌ Over-promotion\n❌ Ignoring analytics\n❌ No engagement\n❌ Inconsistent posting\n\n**Success Tips:**\n✅ Platform optimization\n✅ Visual content\n✅ User-generated content\n✅ Storytelling\n✅ Clear CTAs"
},
"typeVersion": 1
},
{
"id": "webhook-trigger",
"name": "Content Request Webhook",
"type": "n8n-nodes-base.webhook",
"notes": "Receives content generation requests with topic and parameters",
"position": [
-600,
200
],
"webhookId": "social-content-generator",
"parameters": {
"path": "generate-social-content",
"options": {
"responseHeaders": {
"entries": [
{
"name": "Access-Control-Allow-Origin",
"value": "*"
}
]
}
},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 1.1
},
{
"id": "process-input",
"name": "Traiter l'entrée",
"type": "n8n-nodes-base.code",
"notes": "Validates and prepares content generation parameters",
"position": [
-400,
200
],
"parameters": {
"jsCode": "// Extract and validate input\nconst input = $input.first().json;\nconst topic = input.body?.topic || input.topic || \"\";\nconst platforms = input.body?.platforms || input.platforms || [\"linkedin\", \"twitter\", \"instagram\", \"facebook\"];\nconst tone = input.body?.tone || input.tone || \"professional\";\nconst language = input.body?.language || input.language || \"en\";\nconst includeHashtags = input.body?.includeHashtags !== false;\nconst includeEmojis = input.body?.includeEmojis !== false;\nconst contentLength = input.body?.contentLength || \"medium\";\n\n// Validate input\nif (!topic) {\n throw new Error(\"Topic is required\");\n}\n\n// Platform-specific character limits\nconst characterLimits = {\n twitter: 280,\n linkedin: 3000,\n instagram: 2200,\n facebook: 63206,\n tiktok: 150\n};\n\n// Platform-specific hashtag recommendations\nconst hashtagCounts = {\n twitter: 2,\n linkedin: 5,\n instagram: 30,\n facebook: 3,\n tiktok: 5\n};\n\n// Prepare output\nreturn {\n topic,\n platforms,\n tone,\n language,\n includeHashtags,\n includeEmojis,\n contentLength,\n characterLimits,\n hashtagCounts,\n timestamp: new Date().toISOString(),\n requestId: Math.random().toString(36).substring(7)\n};"
},
"typeVersion": 2
},
{
"id": "generate-content",
"name": "Générer le contenu",
"type": "@n8n/n8n-nodes-langchain.openAi",
"notes": "Uses AI to generate platform-specific content",
"position": [
-200,
200
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4-mini"
},
"options": {
"maxTokens": 3000,
"temperature": 0.7
},
"messages": {
"values": [
{
"role": "system",
"content": "=You are a professional social media content creator specializing in creating engaging, platform-optimized content. You understand the nuances of each social media platform and create content that maximizes engagement while maintaining brand consistency.\n\nYour expertise includes:\n- Platform-specific best practices\n- Optimal content length\n- Hashtag strategies\n- Engagement optimization\n- Trend integration\n- SEO optimization\n- Call-to-action creation\n\nAlways create content that is:\n1. Platform-appropriate\n2. Engaging and valuable\n3. Action-oriented\n4. Properly formatted\n5. Culturally sensitive\n\nTone: {{ $json.tone }}\nInclude Hashtags: {{ $json.includeHashtags }}\nInclude Emojis: {{ $json.includeEmojis }}\nContent Length: {{ $json.contentLength }}"
},
{
"role": "user",
"content": "=Create social media content for the following:\n\nTopic: {{ $json.topic }}\nPlatforms: {{ $json.platforms.join(', ') }}\nLanguage: {{ $json.language }}\n\nFor each platform, provide:\n1. Main content/caption\n2. Relevant hashtags (if requested)\n3. Suggested posting time\n4. Call-to-action\n5. Engagement tips\n\nCharacter limits:\n{{ JSON.stringify($json.characterLimits, null, 2) }}\n\nHashtag recommendations:\n{{ JSON.stringify($json.hashtagCounts, null, 2) }}\n\nFormat the response as JSON with a key for each platform."
}
]
}
},
"credentials": {
"openAiApi": {
"id": "{{YOUR_OPENAI_CREDENTIAL}}",
"name": "OpenAI account"
}
},
"typeVersion": 1
},
{
"id": "format-response",
"name": "Formater la réponse",
"type": "n8n-nodes-base.code",
"notes": "Structures the AI response and adds metadata",
"position": [
0,
200
],
"parameters": {
"jsCode": "// Parse AI response\nconst aiResponse = $input.first().json.message.content;\nlet contentData;\n\ntry {\n // Try to parse as JSON\n contentData = JSON.parse(aiResponse);\n} catch (error) {\n // If not JSON, create structured response\n contentData = {\n error: \"Failed to parse AI response\",\n rawResponse: aiResponse\n };\n}\n\n// Add metadata\nconst output = {\n success: !contentData.error,\n requestId: $('Process Input').first().json.requestId,\n topic: $('Process Input').first().json.topic,\n timestamp: new Date().toISOString(),\n content: contentData,\n metadata: {\n tone: $('Process Input').first().json.tone,\n language: $('Process Input').first().json.language,\n platforms: $('Process Input').first().json.platforms\n }\n};\n\n// Add performance predictions (mock data - replace with real analytics)\nif (output.success && output.content) {\n Object.keys(output.content).forEach(platform => {\n if (output.content[platform] && typeof output.content[platform] === 'object') {\n output.content[platform].predictions = {\n engagementRate: Math.floor(Math.random() * 30) + 70 + \"%\",\n estimatedReach: Math.floor(Math.random() * 5000) + 1000,\n bestPostingTime: getOptimalPostingTime(platform)\n };\n }\n });\n}\n\nfunction getOptimalPostingTime(platform) {\n const times = {\n linkedin: \"Tuesday-Thursday, 8-10 AM\",\n twitter: \"Weekdays, 9-10 AM, 7-9 PM\",\n instagram: \"Weekdays, 11 AM-1 PM, 7-9 PM\",\n facebook: \"Wednesday-Friday, 1-4 PM\",\n tiktok: \"Tuesday-Thursday, 6-10 AM, 7-9 PM\"\n };\n return times[platform] || \"Weekdays, 10 AM-12 PM\";\n}\n\nreturn output;"
},
"typeVersion": 2
},
{
"id": "send-response",
"name": "Envoyer la réponse",
"type": "n8n-nodes-base.respondToWebhook",
"notes": "Returns the generated content to the requester",
"position": [
200,
200
],
"parameters": {
"options": {
"responseCode": 200,
"responseHeaders": {
"entries": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"respondWith": "json",
"responseBody": "={{ JSON.stringify($json, null, 2) }}"
},
"typeVersion": 1.1
},
{
"id": "daily-content",
"name": "Planification quotidienne de contenu",
"type": "n8n-nodes-base.scheduleTrigger",
"notes": "Triggers daily content generation for consistent posting",
"position": [
-600,
400
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 24
}
]
}
},
"typeVersion": 1.2
},
{
"id": "prepare-daily",
"name": "Préparer le sujet quotidien",
"type": "n8n-nodes-base.set",
"notes": "Creates daily content topics based on day of week",
"position": [
-400,
400
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "topic",
"name": "topic",
"type": "string",
"value": "={{ $now.toFormat('EEEE') }} motivation - Share something inspiring for {{ $now.toFormat('EEEE') }}"
},
{
"id": "platforms",
"name": "platforms",
"type": "array",
"value": "={{ [\"linkedin\", \"twitter\", \"instagram\"] }}"
},
{
"id": "tone",
"name": "tone",
"type": "string",
"value": "inspirational"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "workflow-paths",
"name": "Note adhésive6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-150,
-50
],
"parameters": {
"width": 350,
"height": 300,
"content": "## 🔄 WORKFLOW PATHS\n\n**1. API Path:**\nWebhook → Process → Generate → Format → Response\n\n**2. Scheduled Path:**\nSchedule → Prepare → Generate → Save/Post\n\n**3. Bulk Generation:**\nCSV Input → Loop → Generate → Export\n\n**Extensions:**\n• Add image generation\n• Connect to social APIs\n• Add analytics tracking\n• Create approval workflow\n• Add translation"
},
"typeVersion": 1
}
],
"settings": {
"executionOrder": "v1"
},
"staticData": null,
"connections": {
"process-input": {
"main": [
[
{
"node": "generate-content",
"type": "main",
"index": 0
}
]
]
},
"format-response": {
"main": [
[
{
"node": "send-response",
"type": "main",
"index": 0
}
]
]
},
"generate-content": {
"main": [
[
{
"node": "format-response",
"type": "main",
"index": 0
}
]
]
},
"prepare-daily": {
"main": [
[
{
"node": "generate-content",
"type": "main",
"index": 0
}
]
]
},
"daily-content": {
"main": [
[
{
"node": "prepare-daily",
"type": "main",
"index": 0
}
]
]
},
"webhook-trigger": {
"main": [
[
{
"node": "process-input",
"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
Jah coozi
@jahcooziPartager ce workflow