Génération de publications Facebook virales avec Gemini 2.0 et génération d'images AI
Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 22 nœuds.Utilise principalement des nœuds comme If, Code, Gmail, Merge, Function. Générer des publications Facebook virales avec Gemini 2.0 et l' génération d'images par IA
- •Compte Google et informations d'identification Gmail API
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Informations d'identification Google Sheets API
- •Informations d'identification Facebook Graph API
- •Clé API Google Gemini
Nœuds utilisés (22)
Catégorie
{
"meta": {
"instanceId": "bead0a5b25199559eb2b2715841bf43c72bdce5faf95fc5e5ce3a983ef98cb4a"
},
"nodes": [
{
"id": "c79bacb7-1910-4467-a904-af2bc4439df4",
"name": "If2",
"type": "n8n-nodes-base.if",
"position": [
-1056,
1264
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "809ee214-220b-4344-a75c-c5b9d9f8021d",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ !!$json.prompt_image }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "6d8b7fa3-2660-49ec-a26b-a82537506004",
"name": "If1",
"type": "n8n-nodes-base.if",
"position": [
400,
1488
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d5c84381-db43-4375-ba9f-79404a34f520",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.post_supports_client_mutation_id }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "6a4e8e34-9b02-407b-ad14-f997fc1d86b8",
"name": "Fusionner",
"type": "n8n-nodes-base.merge",
"position": [
-32,
1488
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineByPosition"
},
"typeVersion": 3.1,
"alwaysOutputData": true
},
{
"id": "e5863143-f99e-42e5-8dea-de3b52ec438d",
"name": "Facebook Graph API",
"type": "n8n-nodes-base.facebookGraphApi",
"position": [
176,
1488
],
"parameters": {
"edge": "feed",
"node": "113732581629527",
"options": {
"queryParameters": {
"parameter": [
{
"name": "message",
"value": "={{ $('Format Content').item.json.content }}"
},
{
"name": "attached_media",
"value": "={{ $json.id ? `[{\"media_fbid\":\"${$json.id}\"}]` : \"\" }}"
}
]
}
},
"graphApiVersion": "v22.0",
"httpRequestMethod": "POST"
},
"credentials": {
"facebookGraphApi": {
"id": "lp88zzdLN27PRInF",
"name": "Facebook Graph account 2"
}
},
"typeVersion": 1
},
{
"id": "0072f8aa-e0c7-423c-98b1-6739e523d600",
"name": "Facebook Télécharger l'image",
"type": "n8n-nodes-base.facebookGraphApi",
"onError": "continueRegularOutput",
"position": [
-272,
1248
],
"parameters": {
"edge": "photos",
"node": "113732581629527",
"options": {
"queryParameters": {
"parameter": [
{
"name": "published",
"value": "false"
}
]
}
},
"sendBinaryData": true,
"graphApiVersion": "v22.0",
"httpRequestMethod": "POST",
"binaryPropertyName": "data"
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "54431a5d-e2cd-4fec-9ae6-f0d32398fa0e",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
-1968,
1520
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "cfb85fb7-2dbd-4122-83bd-9083fb029d25",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json[\"Content\"] ? $json[\"Content\"].length > 0 : (\n $json[\"message\"]?.text?.length >= 50\n) }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "63a571c9-790c-42a8-ad8d-b726f49ac025",
"name": "Formater le contenu",
"type": "n8n-nodes-base.function",
"position": [
-400,
1504
],
"parameters": {
"functionCode": "const raw =\n $json[\"Nội dung đầy đủ\"] ||\n $json.message?.content ||\n \"\";\n\nconst cleaned = raw.replace(/[#*]+/g, \"\").trim();\n\nreturn [\n {\n json: {\n content: cleaned,\n platform: \"facebook\",\n },\n },\n];"
},
"typeVersion": 1
},
{
"id": "3c56769c-2757-4e7c-9aa1-5b340040bb98",
"name": "sauvegarder le contenu",
"type": "n8n-nodes-base.googleSheets",
"onError": "continueRegularOutput",
"position": [
-624,
1504
],
"parameters": {
"columns": {
"value": {
"Ngày": "={{ new Date().toLocaleDateString(\"vi-VN\") }}",
"Nội dung ngắn": "={{ $('code2').item.json.content }}",
"Nội dung đầy đủ": "={{ $json.text?.trim() ? $json.text : $json.message?.content }}"
},
"schema": [
{
"id": "Ngày",
"type": "string",
"display": true,
"required": false,
"displayName": "Ngày",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Nội dung ngắn",
"type": "string",
"display": true,
"required": false,
"displayName": "Nội dung ngắn",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Nội dung đầy đủ",
"type": "string",
"display": true,
"required": false,
"displayName": "Nội dung đầy đủ",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1TBcyVVQ6JVNkvw8qFFbuct_3WxtggOBnI1kwUXMyTY8/edit#gid=0",
"cachedResultName": "Tự động"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1TBcyVVQ6JVNkvw8qFFbuct_3WxtggOBnI1kwUXMyTY8",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1TBcyVVQ6JVNkvw8qFFbuct_3WxtggOBnI1kwUXMyTY8/edit?usp=drivesdk",
"cachedResultName": "ai5phut_AutoPost_Demo"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "v4GKb4dRdpOLmxHa",
"name": "Google Sheets account"
}
},
"retryOnFail": false,
"typeVersion": 4.5,
"alwaysOutputData": true
},
{
"id": "d3978e2b-0dee-405f-ae89-814e75289d7b",
"name": "Chaîne LLM de base",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"onError": "continueRegularOutput",
"position": [
-1728,
1504
],
"parameters": {
"text": "=You are a marketing content writer. Here is the input content. Do 3 things:\n\n1. Quickly analyze the content.\n\n2. Bullet out the main points to write the article (content marketing or social media post).\n\n3. Return the correct format requested, **no further explanation**, **no additional paragraphs other than the following JSON**.\n\nReturn the result in the following format:\n{\n\"prompt_image\": \"...\",\n\"content\": \"...\"\n}\n\n---\n\"prompt_image\": [write a prompt to create an AI image that matches the content, note: absolutely do not put text in the image, only describe the image and appropriate design style]\n\n\"content\": [write complete, clear, concise, and focused content that can be posted on Facebook, website, or blog]\n\nContent to be processed:\n\"\"\n{{\n$json.message?.text?.trim()\n? $json.message.text\n: $json.content?.trim()\n? $json.content\n: $json['Content']?.trim()\n? $json['Content']\n: \"\"\n}}\n\"\"\"",
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.6,
"alwaysOutputData": true
},
{
"id": "9521d4e2-c7d9-4b91-a5a9-eb01f1b76f58",
"name": "Chaîne LLM de base1",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
-1024,
1504
],
"parameters": {
"text": "=You are a social media content writer. Here is a summary of the content that has been analyzed by AI. Let's turn it into **a complete article**, with the following requirements:\n\n1. **Keep the spirit and main message of the content intact.**\n2. Rewrite it into a coherent article, with a clear introduction - body - conclusion.\n3. Use a **friendly, approachable tone**, easy to understand, suitable for posting on Facebook\n4. Use emojis sparingly to increase attraction (if appropriate).\n5. Keep the length moderate (from 200–350 words).\n6. **Do not insert titles or #hashtags**, just focus on the main content.\n\nHere is the summary:\n\"\"\n{{ $json.content }}\n\"\"\"",
"promptType": "define"
},
"typeVersion": 1.6,
"alwaysOutputData": true
},
{
"id": "ca94be67-d90b-4709-b9dc-0a37d6178a22",
"name": "Convertir en code de fichier",
"type": "n8n-nodes-base.code",
"onError": "continueRegularOutput",
"position": [
-496,
1248
],
"parameters": {
"jsCode": "const base64Data = $json.data[0].b64_json;\n\nif (!base64Data) {\n throw new Error(\"Không tìm thấy dữ liệu ảnh base64.\");\n}\n\nreturn [\n {\n json: {},\n binary: {\n data: {\n data: base64Data,\n mimeType: \"image/png\",\n fileName: \"image.png\"\n }\n }\n }\n];\n"
},
"retryOnFail": true,
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "6357acfa-99b4-45c8-80e9-65c3fb267071",
"name": "Google Gemini Modèle de chat",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-1728,
1712
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash-001"
},
"credentials": {
"googlePalmApi": {
"id": "WXBzegbf5JJGseFg",
"name": "Google Gemini(PaLM) Api account 2"
}
},
"typeVersion": 1
},
{
"id": "860674d1-d0f1-4e7a-aeeb-ee78d2a3ae1c",
"name": "Google Gemini Modèle de chat1",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-1024,
1696
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash-001"
},
"credentials": {
"googlePalmApi": {
"id": "WXBzegbf5JJGseFg",
"name": "Google Gemini(PaLM) Api account 2"
}
},
"typeVersion": 1
},
{
"id": "f4ebfcd4-5aeb-4292-b0d9-a3dc52eb75b3",
"name": "code2",
"type": "n8n-nodes-base.code",
"position": [
-1344,
1504
],
"parameters": {
"jsCode": "let rawText = $json.text || '';\n\n// Bước 1: Tách phần JSON bên trong ```json ... ```\nconst matched = rawText.match(/```json\\s*([\\s\\S]*?)\\s*```/);\n\nif (!matched || !matched[1]) {\n return [{ json: { prompt_image: '', content: '', error: 'Can not find JSON in ```json```' } }];\n}\n\nlet jsonString = matched[1]\n .replace(/\\n/g, '') // Xoá xuống dòng\n .replace(/\\r/g, '') // Xoá carriage return\n .replace(/\\t/g, '') // Xoá tab (nếu có)\n .trim();\n\ntry {\n const parsed = JSON.parse(jsonString);\n return [{\n json: {\n prompt_image: parsed.prompt_image || '',\n content: parsed.content || ''\n }\n }];\n} catch (err) {\n return [{\n json: {\n prompt_image: '',\n content: '',\n error: 'error parse JSON: ' + err.message\n }\n }];\n}"
},
"typeVersion": 2
},
{
"id": "b3e26901-72f3-4304-b6d9-6c97b9e9d02a",
"name": "HTTP Requête",
"type": "n8n-nodes-base.httpRequest",
"position": [
-800,
1248
],
"parameters": {
"url": "https://router.huggingface.co/together/v1/images/generations",
"method": "POST",
"options": {},
"jsonBody": "={\n \"response_format\": \"b64_json\",\n \"prompt\": \"{{ $json.prompt_image }}\",\n \"model\": \"black-forest-labs/FLUX.1-schnell\"\n}\n",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Bearer <key>"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "4006af3a-f2e9-45f7-85c5-966c1c82d2e6",
"name": "À la soumission du formulaire1",
"type": "n8n-nodes-base.formTrigger",
"position": [
-2576,
1520
],
"webhookId": "6e9f8a5b-2f3b-4ea5-927d-76a9a34febc9",
"parameters": {
"options": {
"buttonLabel": "Gửi thông tin",
"appendAttribution": false,
"respondWithOptions": {
"values": {
"formSubmittedText": "Information sent"
}
}
},
"formTitle": "Input the post idea",
"formFields": {
"values": [
{
"fieldType": "textarea",
"fieldLabel": "Input Information here",
"placeholder": "At least 50 words",
"requiredField": true
}
]
},
"formDescription": "Input the idea that you want upload to Facebook,"
},
"typeVersion": 2.2
},
{
"id": "ca09e6e7-3536-432d-9f68-d2455194061b",
"name": "Ajouter une ligne dans la feuille",
"type": "n8n-nodes-base.googleSheets",
"position": [
-2272,
1520
],
"parameters": {
"columns": {
"value": {
"Date": "={{ $now.toFormat(\"dd/MM/yyyy\") }}",
"Time": "={{ $now.toFormat(\"HH\") }}",
"Content": "={{ $json[\"Input Information here\"] }}"
},
"schema": [
{
"id": "Date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Time",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Time",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Content",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Content",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1icCYSzDhpAc4itXrfwxhjQgisKye-mtdR8UwyZfS1m8/edit#gid=0",
"cachedResultName": "Post via form"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1icCYSzDhpAc4itXrfwxhjQgisKye-mtdR8UwyZfS1m8",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1icCYSzDhpAc4itXrfwxhjQgisKye-mtdR8UwyZfS1m8/edit?usp=drivesdk",
"cachedResultName": "Content"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "v4GKb4dRdpOLmxHa",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5,
"alwaysOutputData": true
},
{
"id": "0ce21a3e-5ab5-477d-89a9-606ee4e84dfa",
"name": "Envoyer un message",
"type": "n8n-nodes-base.gmail",
"position": [
624,
1472
],
"webhookId": "7f9e790e-fb8d-485a-9c8c-8d592c4cd138",
"parameters": {
"sendTo": "truong11062002@gmail.com",
"message": "=✅ The post will be published after 2 minutes!\n📄 Review in: https://facebook.com/{{ $json.id.split('_')[0] }}/posts/{{ $json.id.split('_')[1] }}",
"options": {
"appendAttribution": false
},
"subject": "✅ The draft version is uploaded"
},
"credentials": {
"gmailOAuth2": {
"id": "GkwYsewcP2AJJXFH",
"name": "Gmail account 2"
}
},
"typeVersion": 2.1
},
{
"id": "b38bbebe-cf2a-4d94-b6ce-f8ecd3c26d23",
"name": "Note autocollante",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3392,
464
],
"parameters": {
"width": 672,
"height": 1264,
"content": "# Complete Setup Guide: AI Facebook Post Generator\n\n## Prerequisites Checklist\n\nBefore starting, ensure you have:\n- [ ] n8n instance (cloud or self-hosted)\n- [ ] Facebook Business Page (not personal profile)\n- [ ] Google account with access to Sheets and Gmail\n- [ ] Basic understanding of API credentials\n\n**Estimated Setup Time**: 30-45 minutes\n\n---\n\n## Step 1: Facebook Integration Setup\n\n### 1.1 Create Facebook App\n1. Go to [Facebook Developers](https://developers.facebook.com/)\n2. Click **\"My Apps\"** → **\"Create App\"**\n3. Choose **\"Business\"** as app type\n4. Enter app name: `n8n-facebook-poster` (or your preferred name)\n5. Click **\"Create App\"**\n\n### 1.2 Configure Facebook App\n1. In your app dashboard, go to **\"Add a Product\"**\n2. Find **\"Facebook Login\"** and click **\"Set Up\"**\n3. Go to **Settings** → **Basic**\n4. Add your domain to **\"App Domains\"** (for n8n cloud: `app.n8n.cloud`)\n5. Save changes\n\n### 1.3 Get Page Access Token\n1. Go to **Tools** → **Graph API Explorer**\n2. Select your app from the dropdown\n3. Click **\"Generate Access Token\"**\n4. Grant permissions: `pages_manage_posts`, `pages_read_engagement`, `pages_show_list`\n5. Select your Facebook page\n6. Copy the **Page Access Token** (starts with `EAAG...`)\n7. **Important**: Extend token to long-lived:\n - Use Graph API Explorer\n - Make GET request to: `/oauth/access_token?grant_type=fb_exchange_token&client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&fb_exchange_token=YOUR_SHORT_TOKEN`\n\n### 1.4 Get Your Page ID\n1. Go to your Facebook page\n2. Click **\"About\"** tab\n3. Scroll down to find **\"Page ID\"** or\n4. Use Graph API Explorer: GET request to `/me/accounts` with your token\n\n---"
},
"typeVersion": 1
},
{
"id": "2f98cd9a-6ffc-4898-9faa-dd82c220ce65",
"name": "Note autocollante1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2416,
368
],
"parameters": {
"color": 3,
"width": 656,
"height": 1040,
"content": "\n## Step 2: Google Services Setup\n\n### 2.1 Enable Google APIs\n1. Go to [Google Cloud Console](https://console.cloud.google.com/)\n2. Create new project or select existing one\n3. Go to **\"APIs & Services\"** → **\"Library\"**\n4. Enable these APIs:\n - Google Sheets API\n - Gmail API\n - Google Drive API (optional)\n\n### 2.2 Create Service Account\n1. Go to **\"APIs & Services\"** → **\"Credentials\"**\n2. Click **\"Create Credentials\"** → **\"Service Account\"**\n3. Name: `n8n-facebook-automation`\n4. Click **\"Create and Continue\"**\n5. Skip role assignment (click **\"Continue\"**)\n6. Click **\"Done\"**\n\n### 2.3 Generate Service Account Key\n1. Click on your service account email\n2. Go to **\"Keys\"** tab\n3. Click **\"Add Key\"** → **\"Create New Key\"**\n4. Choose **\"JSON\"** format\n5. Download the JSON file (save securely)\n\n### 2.4 Prepare Google Sheets\n1. Create two Google Sheets:\n - **Content Log Sheet**: For tracking generated content\n - **Input Tracking Sheet**: For logging form submissions\n\n2. **Content Log Sheet Structure**:\n - Column A: (Date)\n - Column B: (Short Content)\n - Column C: (Full Content)\n\n3. **Input Tracking Sheet Structure**:\n - Column A: \"Date\"\n - Column B: \"Time\"\n - Column C: \"Content\"\n\n4. Share both sheets with your service account email (found in the JSON file)\n\n---\n"
},
"typeVersion": 1
},
{
"id": "dca9ca80-5913-4236-aa21-e0c87bbe0859",
"name": "Note autocollante2",
"type": "n8n-nodes-base.stickyNote",
"position": [
272,
-48
],
"parameters": {
"color": 4,
"width": 928,
"height": 1440,
"content": "\n## Step 3: AI Services Setup\n\n### Get Gemini API Key\n1. Go to [Google AI Studio](https://makersuite.google.com/app/apikey)\n2. Sign in with your Google account\n3. Click **\"Create API Key\"**\n4. Copy the API key (starts with `AIza...`)\n---\n\n## Step 4: n8n Configuration\n\n### 4.1 Import the Workflow\n1. Copy the workflow JSON from the template\n2. In n8n, click **\"Import from JSON\"**\n3. Paste the workflow JSON\n4. Click **\"Import\"**\n\n### 4.2 Configure Credentials\n\n#### Facebook Graph API Credentials\n1. Go to **Settings** → **Credentials**\n2. Click **\"Add Credential\"**\n3. Search for **\"Facebook Graph API\"**\n4. Enter:\n - **Access Token**: Your Page Access Token from Step 1.3\n5. Test the connection\n6. Save as: `Facebook Page Access`\n\n#### Google Credentials \n1. Add **\"Google Service Account\"** credential\n2. Upload the JSON file from Step 2.3\n3. Test connection\n4. Save as: `Google Services`\n\n#### Gemini API Credentials\n1. Add **\"Google PaLM API\"** credential\n2. Enter your Gemini API key from Step 3.1\n3. Save as: `Gemini AI`\n\n### 4.3 Update Node Configurations\n\n#### Update Facebook Page ID\n1. Open **\"Facebook Graph API\"** node\n2. Replace `\"113732581629527\"` with your actual Page ID from Step 1.4\n3. Do the same for **\"Facebook Upload Img\"** node\n\n#### Update Google Sheets IDs\n1. Open **\"save content\"** node\n2. Replace the Document ID with your Content Log Sheet ID\n3. Open **\"Append row in sheet\"** node \n4. Replace the Document ID with your Input Tracking Sheet ID\n\n**To find Sheet ID**: Look at the URL - it's the long string after `/spreadsheets/d/`\n\n#### Update Email Address\n1. Open **\"Send a message\"** node\n2. Replace `xxx@gmail.com` with your email\n3. Configure Gmail credentials if not already done\n\n---\n"
},
"typeVersion": 1
},
{
"id": "9ec09d40-9548-42e2-8e41-bbd8e9490fb2",
"name": "Note autocollante3",
"type": "n8n-nodes-base.stickyNote",
"position": [
48,
1728
],
"parameters": {
"color": 6,
"width": 464,
"height": 736,
"content": "\n## Step 5: Testing & Validation\n\n### 5.1 Test Individual Components\n\n#### Test Google Sheets Connection\n1. Right-click **\"Append row in sheet\"** node\n2. Click **\"Execute Node\"**\n3. Check if a test row appears in your sheet\n\n#### Test Gemini AI\n1. Right-click **\"Basic LLM Chain\"** node\n2. Add test data in **\"Edit Input Data\"**\n3. Execute and verify AI response\n\n#### Test Image Generation\n1. Right-click **\"HTTP Request\"** node\n2. Ensure it has a valid prompt from previous step\n3. Execute and check for base64 image data\n\n#### Test Facebook Upload\n1. Run the full workflow with test content\n2. Check your Facebook page for the post\n3. Verify image uploaded correctly\n\n### 5.2 End-to-End Test\n1. Click **\"Execute Workflow\"** on the trigger node\n2. Submit test content through the form\n3. Monitor each node's execution\n4. Verify final Facebook post"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"54431a5d-e2cd-4fec-9ae6-f0d32398fa0e": {
"main": [
[
{
"node": "d3978e2b-0dee-405f-ae89-814e75289d7b",
"type": "main",
"index": 0
}
]
]
},
"6d8b7fa3-2660-49ec-a26b-a82537506004": {
"main": [
[
{
"node": "0ce21a3e-5ab5-477d-89a9-606ee4e84dfa",
"type": "main",
"index": 0
}
]
]
},
"c79bacb7-1910-4467-a904-af2bc4439df4": {
"main": [
[
{
"node": "b3e26901-72f3-4304-b6d9-6c97b9e9d02a",
"type": "main",
"index": 0
}
]
]
},
"6a4e8e34-9b02-407b-ad14-f997fc1d86b8": {
"main": [
[
{
"node": "e5863143-f99e-42e5-8dea-de3b52ec438d",
"type": "main",
"index": 0
}
]
]
},
"f4ebfcd4-5aeb-4292-b0d9-a3dc52eb75b3": {
"main": [
[
{
"node": "c79bacb7-1910-4467-a904-af2bc4439df4",
"type": "main",
"index": 0
},
{
"node": "9521d4e2-c7d9-4b91-a5a9-eb01f1b76f58",
"type": "main",
"index": 0
}
]
]
},
"b3e26901-72f3-4304-b6d9-6c97b9e9d02a": {
"main": [
[
{
"node": "ca94be67-d90b-4709-b9dc-0a37d6178a22",
"type": "main",
"index": 0
}
]
]
},
"3c56769c-2757-4e7c-9aa1-5b340040bb98": {
"main": [
[
{
"node": "63a571c9-790c-42a8-ad8d-b726f49ac025",
"type": "main",
"index": 0
}
]
]
},
"63a571c9-790c-42a8-ad8d-b726f49ac025": {
"main": [
[
{
"node": "6a4e8e34-9b02-407b-ad14-f997fc1d86b8",
"type": "main",
"index": 1
}
]
]
},
"d3978e2b-0dee-405f-ae89-814e75289d7b": {
"main": [
[
{
"node": "f4ebfcd4-5aeb-4292-b0d9-a3dc52eb75b3",
"type": "main",
"index": 0
}
]
]
},
"9521d4e2-c7d9-4b91-a5a9-eb01f1b76f58": {
"main": [
[
{
"node": "3c56769c-2757-4e7c-9aa1-5b340040bb98",
"type": "main",
"index": 0
}
]
]
},
"e5863143-f99e-42e5-8dea-de3b52ec438d": {
"main": [
[
{
"node": "6d8b7fa3-2660-49ec-a26b-a82537506004",
"type": "main",
"index": 0
}
]
]
},
"ca09e6e7-3536-432d-9f68-d2455194061b": {
"main": [
[
{
"node": "54431a5d-e2cd-4fec-9ae6-f0d32398fa0e",
"type": "main",
"index": 0
}
]
]
},
"0072f8aa-e0c7-423c-98b1-6739e523d600": {
"main": [
[
{
"node": "6a4e8e34-9b02-407b-ad14-f997fc1d86b8",
"type": "main",
"index": 0
}
]
]
},
"4006af3a-f2e9-45f7-85c5-966c1c82d2e6": {
"main": [
[
{
"node": "ca09e6e7-3536-432d-9f68-d2455194061b",
"type": "main",
"index": 0
}
]
]
},
"ca94be67-d90b-4709-b9dc-0a37d6178a22": {
"main": [
[
{
"node": "0072f8aa-e0c7-423c-98b1-6739e523d600",
"type": "main",
"index": 0
}
]
]
},
"6357acfa-99b4-45c8-80e9-65c3fb267071": {
"ai_languageModel": [
[
{
"node": "d3978e2b-0dee-405f-ae89-814e75289d7b",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"860674d1-d0f1-4e7a-aeeb-ee78d2a3ae1c": {
"ai_languageModel": [
[
{
"node": "9521d4e2-c7d9-4b91-a5a9-eb01f1b76f58",
"type": "ai_languageModel",
"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é ?
Avancé - 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
Charles
@charlesnguyenI'm a Freelance AI Automation Engineer, helping Sales & Marketing teams streamline their workflows with custom n8n automations. With 5+ years of experience, I’ve helped hundreds of businesses adopt AI-powered solutions using n8n ✅ Free consultation available — book now and start saving time: 👉 https://www.aivra.work/en
Partager ce workflow