This workflow corresponds to n8n.io template #12318 — we link there as the canonical source.
This workflow follows the Agent → Google Drive recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"nodes": [
{
"id": "50392aec-73c6-49fb-8b81-be0a80debe4c",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2848,
3888
],
"parameters": {
"width": 540,
"height": 468,
"content": "## How it works\n1. **Daily Trigger:** Starts automatically every day at 12 PM.\n2. **Context Gathering:** Fetches your 'Brand Guidelines' and the specific 'Post Theme' for the day from Notion.\n3. **Image Generation:** Uses OpenAI to create a detailed image prompt based on the theme, then generates the image using Fal.ai (Imagen 3/4).\n4. **Captioning:** Generates an on-brand caption using OpenAI.\n5. **Publishing:** Uploads the media to Postiz and schedules/posts it to LinkedIn, X, Facebook, and Instagram.\n\n## Setup steps\n1. **Notion:** Create two databases: one for 'Brand Guidelines' and one for 'Post Themes'. Update the Notion nodes with your Database IDs.\n2. **Credentials:** Configure credentials for OpenAI, Fal.ai, Google Drive, Notion, and Postiz.\n3. **Fal.ai:** Ensure you have credits and the correct model selected in the HTTP nodes.\n4. **Postiz:** Update the 'Integration IDs' in the final social media nodes with your specific Postiz integration IDs."
},
"typeVersion": 1
},
{
"id": "4514098e-918c-4744-a752-bca09da809bd",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2288,
3936
],
"parameters": {
"color": 7,
"width": 860,
"height": 416,
"content": "### 1. Data & Strategy\nFetches your brand voice and the specific theme for today's post from Notion."
},
"typeVersion": 1
},
{
"id": "8f12ae0f-4dfe-46f2-8052-224c16f66b95",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1392,
3664
],
"parameters": {
"color": 7,
"width": 1460,
"height": 1000,
"content": "### 2. AI Content Generation\nThree parallel paths handle different content styles (System, Activity, Expert). Each path generates a prompt via OpenAI and an image via Fal.ai."
},
"typeVersion": 1
},
{
"id": "6138e205-d4c5-48d2-93d9-25255f66f7c0",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
240,
3680
],
"parameters": {
"color": 7,
"width": 2180,
"height": 1024,
"content": "### 3. Captioning & Publishing\nGenerates the final caption, updates Notion history, and pushes the content to Postiz for distribution."
},
"typeVersion": 1
},
{
"id": "3164b75f-d1ac-4f8e-891c-2680510bdcd6",
"name": "Post to Facebook",
"type": "n8n-nodes-base.httpRequest",
"position": [
2240,
4016
],
"parameters": {
"url": "https://api.postiz.com/public/v1/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"type\": \"draft\",\n \"date\": \"{{ new Date().toISOString() }}\",\n \"shortLink\": true,\n \"tags\": [\n {\"name\": \"tag1\"},\n {\"name\": \"tag2\"}\n ],\n \"posts\": [\n {\n \"integration\": {\n \"id\": \"cmfxpjqs6002an50y5zg767or\"\n },\n \"value\": [\n {\n \"content\": \"{{ $('Generate Caption (Expert)').first().json.output }}\", \n \"image\": [\n {\n \"id\": \"{{ $json.id }}\", \n \"url\": \"={{ $json.path }}\", \n \"path\": \"{{ $json.path }}\"\n }\n ]\n }\n ],\n \"settings\": {\n \"post_type\": \"post\"\n }\n }\n ]\n}\n",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{}
]
}
},
"typeVersion": 4.2
},
{
"id": "f3806ca5-5916-4b92-b21a-0ff55c92d092",
"name": "Post to Linkedin",
"type": "n8n-nodes-base.httpRequest",
"position": [
2240,
4208
],
"parameters": {
"url": "https://api.postiz.com/public/v1/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"type\": \"draft\",\n \"date\": \"{{ new Date().toISOString() }}\",\n \"shortLink\": true,\n \"tags\": [\n {\"name\": \"tag1\"},\n {\"name\": \"tag2\"}\n ],\n \"posts\": [\n {\n \"integration\": {\n \"id\": \"cmfxpgfqv001yn50y74rnwiq9\"\n },\n \"value\": [\n {\n \"content\": \"{{ $('Generate Caption (Expert)').first().json.output }}\", \n \"image\": [\n {\n \"id\": \"{{ $json.id }}\", \n \"url\": \"={{ $json.path }}\", \n \"path\": \"{{ $json.path }}\"\n }\n ]\n }\n ],\n \"settings\": {\n \"post_type\": \"post\"\n }\n }\n ]\n}\n",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{}
]
}
},
"typeVersion": 4.2
},
{
"id": "77bc02ec-936d-4331-b6d2-be1ba4f36a95",
"name": "Post to X",
"type": "n8n-nodes-base.httpRequest",
"position": [
2240,
4400
],
"parameters": {
"url": "https://api.postiz.com/public/v1/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"type\": \"draft\",\n \"date\": \"{{ new Date().toISOString() }}\",\n \"shortLink\": true,\n \"tags\": [\n {\"name\": \"tag1\"},\n {\"name\": \"tag2\"}\n ],\n \"posts\": [\n {\n \"integration\": {\n \"id\": \"cmg4rmlf40274n50y64j2unkl\"\n },\n \"value\": [\n {\n \"content\": \"{{ $('Generate Caption (Expert)').first().json.output }}\", \n \"image\": [\n {\n \"id\": \"{{ $json.id }}\", \n \"url\": \"={{ $json.path }}\", \n \"path\": \"{{ $json.path }}\"\n }\n ]\n }\n ],\n \"settings\": {\n \"post_type\": \"post\"\n }\n }\n ]\n}\n",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{}
]
}
},
"typeVersion": 4.2
},
{
"id": "33541032-55da-4261-9dd8-54265bb9c87c",
"name": "Merge Data",
"type": "n8n-nodes-base.merge",
"position": [
-1552,
4064
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "bfecd998-00e8-4efd-9541-6daaf918920f",
"name": "Route by Theme",
"type": "n8n-nodes-base.switch",
"position": [
-1296,
4048
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "70c5ec4e-3e47-4e72-a694-d4a3b0194d43",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.name }}",
"rightValue": "Expert Advise"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "b8aae803-0cd4-4368-b93e-fd971c42ec06",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.name }}",
"rightValue": "System"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "9cc253a1-6f21-4af6-a899-d558a5fa7192",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.name }}",
"rightValue": "Activity"
}
]
}
}
]
},
"options": {}
},
"typeVersion": 3.3
},
{
"id": "c77e90f3-a99c-448a-8af4-aed61180c8ee",
"name": "Gen Image (System)",
"type": "n8n-nodes-base.httpRequest",
"position": [
-480,
4064
],
"parameters": {
"url": "https://fal.run/fal-ai/imagen4/preview",
"method": "POST",
"options": {},
"jsonBody": "={{ { \"prompt\":$json.output, \"image_model\": \"imagen4\", \"aspect_ratio\": \"1:1\", } }}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.3
},
{
"id": "2c5d2382-ec81-462d-a1fd-d49c80fb54f2",
"name": "Get Image URL (System)",
"type": "n8n-nodes-base.httpRequest",
"position": [
-256,
4064
],
"parameters": {
"url": "={{ $json.images[0].url }}",
"options": {}
},
"typeVersion": 4.3
},
{
"id": "fe255cb7-64ef-4f8d-bdd2-367cdb53b4b0",
"name": "Save to Drive (System)",
"type": "n8n-nodes-base.googleDrive",
"position": [
-16,
4064
],
"parameters": {
"name": "={{ $json.images[0].file_name }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1dlLOiWnqdB2JW4j_pyrB8KehS2mEQ0N-",
"cachedResultUrl": "https://drive.google.com/drive/folders/1dlLOiWnqdB2JW4j_pyrB8KehS2mEQ0N-",
"cachedResultName": "n8n Content Folder"
},
"authentication": "serviceAccount",
"inputDataFieldName": "=data"
},
"typeVersion": 3
},
{
"id": "25ca8cbc-aab7-4ede-9252-5f5790c12c94",
"name": "OpenAI Chat Model4",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-832,
4240
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "chatgpt-4o-latest"
},
"options": {},
"builtInTools": {}
},
"typeVersion": 1.3
},
{
"id": "13b96316-763d-4cd5-a143-d0a41472a1f6",
"name": "Gen Prompt (System)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-832,
4064
],
"parameters": {
"text": "=Generate one new System UI theme prompt for MetrixMate.\n\nYou can use some graphs, line charts or stuff like that. \n\n\n{{ $json.property_creative_brief }}\n\n{{ $json.property_tone_voice }}\n\n{{ $json.property_example_prompts }}",
"options": {
"systemMessage": "You create System UI theme visuals for MetrixMate \u2014 clean card-based UI showing performance-marketing KPIs.\n\n## VISUAL STYLE\n- Dark gradient background (deep blue, charcoal, slate) or futuristic minimal UI\n- Glassmorphism cards, frosted glass effects, or sleek flat UI cards\n- Show 1-3 clean metric cards with KPI labels (Net Profit, Ad Spend, ROAS, CAC, LTV, Revenue, etc.)\n- Use 1-2 big numbers per card only \u2014 no dense dashboards or complex tables\n- Can include chat bubbles with questions/answers, glowing charts, or heartbeat-to-chart transitions\n- Lots of negative space, soft gradients, subtle depth\n- 8K resolution, high-fidelity social media graphic quality\n\n## TEXT ON IMAGE\n- Include a bold headline/statement (positioned on top or side)\n- Headline should be sharp, modern, white sans-serif font\n- Can include a smaller subline that ties to MetrixMate's value\n- Card labels should be simple: metric name + one big number\n- Perfect spelling and grammar required\n\n## BRAND PLACEMENT\n- End every prompt with: A small MetrixMate is written at the bottom\n- MetrixMate appears as plain, simple text only \u2014 NO logo design, NO icon, NO special styling\n- Just the word \"MetrixMate\" in small, clean text at the bottom\n\n## STRICT RULES\n- Never copy example lines; always invent new original headlines\n- Spell the brand name exactly as \"MetrixMate\"\n- No fake logos, no icon designs, no stylized wordmarks\n- Focus on performance marketing concepts: ROI, attribution, revenue, ad spend, profit\n\n## OUTPUT FORMAT\nOutput only valid JSON: { \"prompt\": \"...\" }"
},
"promptType": "define",
"hasOutputParser": true
},
"executeOnce": true,
"retryOnFail": false,
"typeVersion": 1.7,
"alwaysOutputData": true
},
{
"id": "d35ce96d-9c09-45f0-b8c9-b9717ae2f55d",
"name": "OpenAI Chat Model5",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-864,
3904
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "chatgpt-4o-latest"
},
"options": {},
"builtInTools": {}
},
"typeVersion": 1.3
},
{
"id": "24c31601-bb36-4cb8-8a8b-ac639b2e7be5",
"name": "Gen Prompt (Expert)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-832,
3744
],
"parameters": {
"text": "=Generate one new Expert Advise theme prompt for MetrixMate.\n\nHere is the guideline for you. Your output prompt should match with the sample prompts style always. \nDefine Headline to Add. Baackground color. And Always add this statement at end of prompt \"Write MetrixMate at the bottom\"\n\n{{ $json.property_creative_brief }}\n\n{{ $json.property_tone_voice }}\n\n{{ $json.property_example_prompts }}\n\n\n",
"options": {
"systemMessage": ""
},
"promptType": "define",
"hasOutputParser": true
},
"executeOnce": true,
"retryOnFail": false,
"typeVersion": 1.7,
"alwaysOutputData": true
},
{
"id": "3df2ab4d-c7e2-4835-b592-abe4b402f673",
"name": "Gen Image (Expert)",
"type": "n8n-nodes-base.httpRequest",
"position": [
-480,
3744
],
"parameters": {
"url": "https://fal.run/fal-ai/imagen4/preview",
"method": "POST",
"options": {},
"jsonBody": "={{ { \"prompt\":$json.output, \"image_model\": \"imagen4\", \"aspect_ratio\": \"1:1\", } }}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.3
},
{
"id": "eaee5bfb-a9fa-4684-aa18-11257493f75c",
"name": "Save to Drive (Expert)",
"type": "n8n-nodes-base.googleDrive",
"position": [
-16,
3744
],
"parameters": {
"name": "={{ $json.images[0].file_name }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1dlLOiWnqdB2JW4j_pyrB8KehS2mEQ0N-",
"cachedResultUrl": "https://drive.google.com/drive/folders/1dlLOiWnqdB2JW4j_pyrB8KehS2mEQ0N-",
"cachedResultName": "n8n Content Folder"
},
"authentication": "serviceAccount",
"inputDataFieldName": "=data"
},
"typeVersion": 3
},
{
"id": "4256728f-cf1b-4859-af04-5fc53520b22a",
"name": "gpt-4o LLM2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-816,
4592
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "chatgpt-4o-latest",
"cachedResultName": "chatgpt-4o-latest"
},
"options": {
"responseFormat": "text"
}
},
"notesInFlow": false,
"typeVersion": 1.2
},
{
"id": "c5d40711-bd14-4946-bf55-75b3ae3c2d28",
"name": "Gen Prompt (Activity)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-832,
4416
],
"parameters": {
"text": "=Generate one new Metaphorical/Activity theme prompt for MetrixMate.\n\nHere is the guideline for you. Your output prompt should match with the sample prompts style always. \nDefine Headline to Add. The visual scnene related to activity to showcase. Scene should always feel organic, and statement intelligently Linked to MetrixMate. Always add this statement at end of prompt \"Write MetrixMate at the bottom\"\nNever used \n\n{{ $json.property_creative_brief }}\n\n{{ $json.property_tone_voice }}\n\n{{ $json.property_example_prompts }}",
"options": {
"systemMessage": "="
},
"promptType": "define",
"hasOutputParser": true
},
"executeOnce": true,
"retryOnFail": false,
"typeVersion": 1.7,
"alwaysOutputData": true
},
{
"id": "969b9a69-7222-447e-871e-6b7bbcda3341",
"name": "Gen Image (Activity)",
"type": "n8n-nodes-base.httpRequest",
"position": [
-480,
4416
],
"parameters": {
"url": "https://fal.run/fal-ai/imagen4/preview",
"method": "POST",
"options": {},
"jsonBody": "={{ { \"prompt\":$json.output, \"image_model\": \"imagen4\", \"aspect_ratio\": \"1:1\", } }}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.3
},
{
"id": "d42fc00b-9f13-493c-95eb-ae5c76ebbe2f",
"name": "Get Image URL (Activity)",
"type": "n8n-nodes-base.httpRequest",
"position": [
-256,
4416
],
"parameters": {
"url": "={{ $json.images[0].url }}",
"options": {}
},
"typeVersion": 4.3
},
{
"id": "583cf905-bd3b-4636-8f2c-01a16ecbf571",
"name": "Save to Drive (Activity)",
"type": "n8n-nodes-base.googleDrive",
"position": [
-16,
4416
],
"parameters": {
"name": "={{ $json.images[0].file_name }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1dlLOiWnqdB2JW4j_pyrB8KehS2mEQ0N-",
"cachedResultUrl": "https://drive.google.com/drive/folders/1dlLOiWnqdB2JW4j_pyrB8KehS2mEQ0N-",
"cachedResultName": "n8n Content Folder"
},
"authentication": "serviceAccount",
"inputDataFieldName": "=data"
},
"typeVersion": 3
},
{
"id": "b8c52330-642f-4fc5-b35a-bd8a7c3e5572",
"name": "Daily Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-2224,
4192
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 12
}
]
}
},
"typeVersion": 1.3
},
{
"id": "f53aa932-164c-412f-b274-5ee77ba6164c",
"name": "Generate Caption (Expert)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
608,
3744
],
"parameters": {
"text": "\"Use the Notion tool for brand details and google drive to analysis the image , write a caption for the post based on the image. The caption should be descriptive and a little longer. At the end of every caption, include 'matrixmate.com'. Do not add anything extra or additional from your side, such as analysis or explanations. Provide the caption in plain text format with no special characters or formatting.\"\n",
"options": {},
"promptType": "define"
},
"executeOnce": true,
"typeVersion": 3,
"alwaysOutputData": true
},
{
"id": "a972a716-1bcc-405c-9d77-b987e93db8b6",
"name": "Update Notion (System)",
"type": "n8n-nodes-base.notion",
"position": [
304,
4064
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "url",
"value": "https://www.notion.so/tossdown/System-24921223e79e80caaf51f8939834ed55?source=copy_link"
},
"simple": false,
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Last Used |date",
"date": "=\"{{ new Date().toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' }) }}\""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "65e3e19b-466b-4711-9a73-36e6f1e30284",
"name": "Update Notion (Activity)",
"type": "n8n-nodes-base.notion",
"position": [
320,
4416
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "url",
"value": "https://www.notion.so/tossdown/Activity-25621223e79e804d835bf815b07ef14a"
},
"simple": false,
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Last Used |date",
"date": "=\"{{ new Date().toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' }) }}\""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "084938f5-5ea2-4c65-9280-f5b3e3d5d87a",
"name": "Download for Upload",
"type": "n8n-nodes-base.googleDrive",
"position": [
1152,
3744
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Save to Drive (Expert)').item.json.id || '' }}\n\n"
},
"options": {},
"operation": "download",
"authentication": "serviceAccount"
},
"typeVersion": 3
},
{
"id": "7215d71c-7e02-4d81-a867-2fbf523ec342",
"name": "Generate Caption (System)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
592,
4064
],
"parameters": {
"text": "\"Use the Notion tool for brand details and google drive to analysis the image , write a caption for the post based on the image. The caption should be descriptive and a little longer. At the end of every caption, include 'matrixmate.com'. Do not add anything extra or additional from your side, such as analysis or explanations. Provide the caption in plain text format with no special characters or formatting.\"",
"options": {},
"promptType": "define"
},
"executeOnce": true,
"typeVersion": 3,
"alwaysOutputData": true
},
{
"id": "c4fd84f1-6743-4109-a8ca-14cc14fafd45",
"name": "Generate Caption (Activity)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
592,
4416
],
"parameters": {
"text": "\"Use the Notion tool for brand details and google drive to analysis the image , write a caption for the post based on the image. No longer than 20-25 words.\n t the end of every caption, write metrixmate.com. \n\nDo not add anything extra or additional from your side, such as analysis or explanations. Provide the caption in plain text format with no special characters or formatting.\"",
"options": {},
"promptType": "define"
},
"executeOnce": true,
"typeVersion": 3,
"alwaysOutputData": true
},
{
"id": "cb5992b5-8ccf-41b0-8030-4f545ff5b0f3",
"name": "Download from Drive (System)",
"type": "n8n-nodes-base.googleDrive",
"position": [
1184,
4064
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Save to Drive (System)').item.json.id || '' }}\n\n"
},
"options": {},
"operation": "download",
"authentication": "serviceAccount"
},
"typeVersion": 3
},
{
"id": "d442e5a6-dc18-4c91-989c-58f9a36de0a6",
"name": "Download from Drive (Activity)",
"type": "n8n-nodes-base.googleDrive",
"position": [
1184,
4416
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Save to Drive (Activity)').item.json.id || '' }}\n\n\n"
},
"options": {},
"operation": "download",
"authentication": "serviceAccount"
},
"typeVersion": 3
},
{
"id": "ca4baa47-4257-4cd8-ad71-fa202a0f4d88",
"name": "notion",
"type": "n8n-nodes-base.notionTool",
"position": [
784,
3872
],
"parameters": {
"options": {},
"resource": "databasePage",
"operation": "getAll",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "24921223-e79e-8056-95e9-c3554fab09dc",
"cachedResultUrl": "https://www.notion.so/24921223e79e805695e9c3554fab09dc",
"cachedResultName": "MM - Theme DB"
}
},
"typeVersion": 2.2
},
{
"id": "f4a17088-e25c-4543-9753-ad2cf6e62eee",
"name": "drive2",
"type": "n8n-nodes-base.googleDriveTool",
"notes": "ignore the unexcited nodes ",
"position": [
688,
3872
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Save to Drive (Expert)').item.json.id }}"
},
"options": {},
"operation": "download"
},
"typeVersion": 3
},
{
"id": "958d0bc3-2084-464e-b7be-f985dc5f40e0",
"name": "openai",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
592,
3872
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {},
"builtInTools": {}
},
"typeVersion": 1.3
},
{
"id": "11ddb4eb-f6b3-445e-8c0c-6ad94feace9d",
"name": "notion1",
"type": "n8n-nodes-base.notionTool",
"position": [
800,
4208
],
"parameters": {
"options": {},
"resource": "databasePage",
"operation": "getAll",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "24921223-e79e-8056-95e9-c3554fab09dc",
"cachedResultUrl": "https://www.notion.so/24921223e79e805695e9c3554fab09dc",
"cachedResultName": "MM - Theme DB"
}
},
"typeVersion": 2.2
},
{
"id": "502a5038-1900-44d4-b2f4-cb7a5fca6e75",
"name": "drivefile",
"type": "n8n-nodes-base.googleDriveTool",
"notes": "ignore the unexcited nodes ",
"position": [
688,
4208
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Save to Drive (System)').item.json.id }}"
},
"options": {},
"operation": "download"
},
"typeVersion": 3
},
{
"id": "c943b560-8189-4bf7-852d-32fa29952c5d",
"name": "openai1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
592,
4208
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {},
"builtInTools": {}
},
"typeVersion": 1.3
},
{
"id": "5762c255-67d3-429b-b5de-30e6b0f8712f",
"name": "notion2",
"type": "n8n-nodes-base.notionTool",
"position": [
784,
4576
],
"parameters": {
"options": {},
"resource": "databasePage",
"operation": "getAll",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "24921223-e79e-8056-95e9-c3554fab09dc",
"cachedResultUrl": "https://www.notion.so/24921223e79e805695e9c3554fab09dc",
"cachedResultName": "MM - Theme DB"
}
},
"typeVersion": 2.2
},
{
"id": "28c20336-528c-4a9d-94f1-606fbbec5a6d",
"name": "drive1",
"type": "n8n-nodes-base.googleDriveTool",
"notes": "ignore the unexcited nodes ",
"position": [
688,
4560
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Save to Drive (Activity)').item.json.id }}"
},
"options": {},
"operation": "download"
},
"typeVersion": 3
},
{
"id": "93240bc8-54f7-4763-8c37-cc1c46dce4d9",
"name": "openai2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
592,
4576
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {},
"builtInTools": {}
},
"typeVersion": 1.3
},
{
"id": "c95b0428-31be-4c50-a94c-e05699ee9d0f",
"name": "Post to Instagram",
"type": "n8n-nodes-base.httpRequest",
"position": [
2240,
3792
],
"parameters": {
"url": "https://api.postiz.com/public/v1/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"type\": \"draft\",\n \"date\": \"{{ new Date().toISOString() }}\",\n \"shortLink\": true,\n \"tags\": [\n {\"name\": \"tag1\"},\n {\"name\": \"tag2\"}\n ],\n \"posts\": [\n {\n \"integration\": {\n \"id\": \"cmfxpior90026n50yemjvmnch\"\n },\n \"value\": [\n {\n \"content\": \"{{ $('Generate Caption (Expert)').first().json.output }}\", \n \"image\": [\n {\n \"id\": \"{{ $json.id }}\", \n \"url\": \"={{ $json.path }}\", \n \"path\": \"{{ $json.path }}\"\n }\n ]\n }\n ],\n \"settings\": {\n \"post_type\": \"post\"\n }\n }\n ]\n}\n",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{}
]
}
},
"typeVersion": 4.2
},
{
"id": "a33b36d9-ddfa-4edd-b82f-0259db28cf38",
"name": "Get Brand Guidelines",
"type": "n8n-nodes-base.notion",
"position": [
-1968,
4192
],
"parameters": {
"blockId": {
"__rl": true,
"mode": "url",
"value": "https://www.notion.so/tossdown/MetrixMate-Brand-Document-24721223e79e80ce9b45c9ee9c2b26d6"
},
"resource": "block",
"operation": "getAll",
"returnAll": true
},
"typeVersion": 2.2
},
{
"id": "1935479f-3794-4541-ad1e-680c8bd3a575",
"name": "Get Post Theme",
"type": "n8n-nodes-base.notion",
"position": [
-1984,
4032
],
"parameters": {
"limit": 1,
"options": {
"sort": {
"sortValue": [
{
"key": "Last Used |date",
"direction": "ascending"
}
]
}
},
"resource": "databasePage",
"operation": "getAll",
"databaseId": {
"__rl": true,
"mode": "list",
"value": "24921223-e79e-8056-95e9-c3554fab09dc",
"cachedResultUrl": "https://www.notion.so/24921223e79e805695e9c3554fab09dc",
"cachedResultName": "MM - Theme DB"
},
"filterType": "manual"
},
"typeVersion": 2.2
},
{
"id": "3b8b046b-b74c-4d31-9755-253b82481bf8",
"name": "Format Brand Text",
"type": "n8n-nodes-base.code",
"position": [
-1728,
4192
],
"parameters": {
"jsCode": "const allText = $input.all()\n .map(i => i.json.content)\n .filter(Boolean)\n .join(\"\\n\");\n\nreturn [\n {\n json: {\n content: allText\n }\n }\n];\n"
},
"executeOnce": false,
"typeVersion": 2,
"alwaysOutputData": true
},
{
"id": "cb93fe57-87ae-4283-ac33-f2ee59ef97bc",
"name": "Update Notion (Expert)",
"type": "n8n-nodes-base.notion",
"position": [
320,
3744
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "url",
"value": "https://www.notion.so/tossdown/Expert-Advise-25621223e79e8065b7eddd9eca3d8e88?source=copy_link"
},
"simple": false,
"options": {},
"resource": "databasePage",
"operation": "update",
"propertiesUi": {
"propertyValues": [
{
"key": "Last Used |date",
"date": "=\"{{ new Date().toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' }) }}\""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e0a181ff-af8d-4f7c-9fff-e937ae7c7ff8",
"name": "Get Image URL (Expert)",
"type": "n8n-nodes-base.httpRequest",
"position": [
-256,
3744
],
"parameters": {
"url": "={{ $json.images[0].url }}",
"options": {}
},
"typeVersion": 4.3
},
{
"id": "d0f7d925-0bdf-4a24-b215-959a57c9b28b",
"name": "Upload to Postiz",
"type": "n8n-nodes-base.httpRequest",
"position": [
1760,
4064
],
"parameters": {
"url": "https://api.postiz.com/public/v1/upload",
"method": "POST",
"options": {
"lowercaseHeaders": true
},
"sendBody": true,
"contentType": "multipart-form-data",
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization"
}
]
}
},
"typeVersion": 4.3
}
],
"connections": {
"drive1": {
"ai_tool": [
[
{
"node": "Generate Caption (Activity)",
"type": "ai_tool",
"index": 0
}
]
]
},
"drive2": {
"ai_tool": [
[
{
"node": "Generate Caption (Expert)",
"type": "ai_tool",
"index": 0
}
]
]
},
"notion": {
"ai_tool": [
[
{
"node": "Generate Caption (Expert)",
"type": "ai_tool",
"index": 0
}
]
]
},
"openai": {
"ai_languageModel": [
[
{
"node": "Generate Caption (Expert)",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"notion1": {
"ai_tool": [
[
{
"node": "Generate Caption (System)",
"type": "ai_tool",
"index": 0
}
]
]
},
"notion2": {
"ai_tool": [
[
{
"node": "Generate Caption (Activity)",
"type": "ai_tool",
"index": 0
}
]
]
},
"openai1": {
"ai_languageModel": [
[
{
"node": "Generate Caption (System)",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"openai2": {
"ai_languageModel": [
[
{
"node": "Generate Caption (Activity)",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"drivefile": {
"ai_tool": [
[
{
"node": "Generate Caption (System)",
"type": "ai_tool",
"index": 0
}
]
]
},
"Merge Data": {
"main": [
[
{
"node": "Route by Theme",
"type": "main",
"index": 0
}
]
]
},
"gpt-4o LLM2": {
"ai_languageModel": [
[
{
"node": "Gen Prompt (Activity)",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Daily Trigger": {
"main": [
[
{
"node": "Get Post Theme",
"type": "main",
"index": 0
},
{
"node": "Get Brand Guidelines",
"type": "main",
"index": 0
}
]
]
},
"Get Post Theme": {
"main": [
[
{
"node": "Merge Data",
"type": "main",
"index": 0
}
]
]
},
"Route by Theme": {
"main": [
[
{
"node": "Gen Prompt (Expert)",
"type": "main",
"index": 0
}
],
[
{
"node": "Gen Prompt (System)",
"type": "main",
"index": 0
}
],
[
{
"node": "Gen Prompt (Activity)",
"type": "main",
"index": 0
}
]
]
},
"Upload to Postiz": {
"main": [
[
{
"node": "Post to X",
"type": "main",
"index": 0
},
{
"node": "Post to Linkedin",
"type": "main",
"index": 0
},
{
"node": "Post to Facebook",
"type": "main",
"index": 0
},
{
"node": "Post to Instagram",
"type": "main",
"index": 0
}
]
]
},
"Format Brand Text": {
"main": [
[
{
"node": "Merge Data",
"type": "main",
"index": 1
}
]
]
},
"Gen Image (Expert)": {
"main": [
[
{
"node": "Get Image URL (Expert)",
"type": "main",
"index": 0
}
]
]
},
"Gen Image (System)": {
"main": [
[
{
"node": "Get Image URL (System)",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model4": {
"ai_languageModel": [
[
{
"node": "Gen Prompt (System)",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model5": {
"ai_languageModel": [
[
{
"node": "Gen Prompt (Expert)",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Download for Upload": {
"main": [
[
{
"node": "Upload to Postiz",
"type": "main",
"index": 0
}
]
]
},
"Gen Prompt (Expert)": {
"main": [
[
{
"node": "Gen Image (Expert)",
"type": "main",
"index": 0
}
]
]
},
"Gen Prompt (System)": {
"main": [
[
{
"node": "Gen Image (System)",
"type": "main",
"index": 0
}
]
]
},
"Gen Image (Activity)": {
"main": [
[
{
"node": "Get Image URL (Activity)",
"type": "main",
"index": 0
}
]
]
},
"Get Brand Guidelines": {
"main": [
[
{
"node": "Format Brand Text",
"type": "main",
"index": 0
}
]
]
},
"Gen Prompt (Activity)": {
"main": [
[
{
"node": "Gen Image (Activity)",
"type": "main",
"index": 0
}
]
]
},
"Get Image URL (Expert)": {
"main": [
[
{
"node": "Save to Drive (Expert)",
"type": "main",
"index": 0
}
]
]
},
"Get Image URL (System)": {
"main": [
[
{
"node": "Save to Drive (System)",
"type": "main",
"index": 0
}
]
]
},
"Save to Drive (Expert)": {
"main": [
[
{
"node": "Update Notion (Expert)",
"type": "main",
"index": 0
}
]
]
},
"Save to Drive (System)": {
"main": [
[
{
"node": "Update Notion (System)",
"type": "main",
"index": 0
}
]
]
},
"Update Notion (Expert)": {
"main": [
[
{
"node": "Generate Caption (Expert)",
"type": "main",
"index": 0
}
]
]
},
"Update Notion (System)": {
"main": [
[
{
"node": "Generate Caption (System)",
"type": "main",
"index": 0
}
]
]
},
"Get Image URL (Activity)": {
"main": [
[
{
"node": "Save to Drive (Activity)",
"type": "main",
"index": 0
}
]
]
},
"Save to Drive (Activity)": {
"main": [
[
{
"node": "Update Notion (Activity)",
"type": "main",
"index": 0
}
]
]
},
"Update Notion (Activity)": {
"main": [
[
{
"node": "Generate Caption (Activity)",
"type": "main",
"index": 0
}
]
]
},
"Generate Caption (Expert)": {
"main": [
[
{
"node": "Download for Upload",
"type": "main",
"index": 0
}
]
]
},
"Generate Caption (System)": {
"main": [
[
{
"node": "Download from Drive (System)",
"type": "main",
"index": 0
}
]
]
},
"Generate Caption (Activity)": {
"main": [
[
{
"node": "Download from Drive (Activity)",
"type": "main",
"index": 0
}
]
]
},
"Download from Drive (System)": {
"main": [
[
{
"node": "Upload to Postiz",
"type": "main",
"index": 0
}
]
]
},
"Download from Drive (Activity)": {
"main": [
[
{
"node": "Upload to Postiz",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automates your daily social media content creation by generating unique, on-brand posts based on specific themes stored in Notion. It creates images using Fal.ai, writes captions with OpenAI, and schedules them to multiple platforms via Postiz.
Source: https://n8n.io/workflows/12318/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
L&D_AgentsAI_ATIVO. Uses httpRequest, agent, googleCalendarTool, toolSerpApi. Webhook trigger; 93 nodes.
LinkedIn_Job_Hunt_and_Cover_Letter. Uses outputParserStructured, outputParserAutofixing, googleDrive, agent. Scheduled trigger; 85 nodes.
This n8n automation workflow automates the creation, scripting, production, and posting of YouTube videos. It leverages AI (OpenAI), image generation (PIAPI), video rendering (Shotstack), and platform
This workflow is designed for: Content creators and marketers E-commerce and product-based businesses Agencies producing social media visuals and videos Automation builders looking for AI-powered crea
Resume Screening & Behavioral Interviews with Gemini, Elevenlabs, & Notion ATS copy. Uses outputParserStructured, chainLlm, googleDrive, stickyNote. Webhook trigger; 67 nodes.