WORKFLOW · N8N
FlowScribe Lite — Quick 4-Platform Repurpose
Prompts👁 0
WORKFLOW JSON
{
"meta": {
"instanceId": "flowscribe-lite-v1"
},
"name": "FlowScribe Lite — Quick 4-Platform Repurpose",
"tags": [
{
"id": "flowscribe",
"name": "FlowScribe"
},
{
"id": "autoflow",
"name": "AutoFlow"
},
{
"id": "lite",
"name": "Lite"
}
],
"nodes": [
{
"id": "trigger-webhook",
"name": "Receive Content",
"type": "n8n-nodes-base.webhook",
"position": [
200,
400
],
"webhookId": "flowscribe-lite-input",
"parameters": {
"path": "flowscribe-lite",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2
},
{
"id": "validate-input",
"name": "Validate Input",
"type": "n8n-nodes-base.code",
"position": [
400,
400
],
"parameters": {
"jsCode": "const body = $input.first().json.body || $input.first().json;\nconst content = body.content || body.text || '';\nconst title = body.title || 'Untitled';\nconst brandVoice = body.brand_voice || 'professional yet approachable';\n\nif (!content || content.trim().length < 50) {\n throw new Error('Content must be at least 50 characters.');\n}\n\nreturn [{\n json: { content, title, brandVoice, requestId: require('crypto').randomUUID(), processedAt: new Date().toISOString() }\n}];"
},
"typeVersion": 2
},
{
"id": "ai-analysis",
"name": "AI: Quick Analysis",
"type": "n8n-nodes-base.openAi",
"maxTries": 3,
"position": [
600,
400
],
"parameters": {
"model": "gpt-4o-mini",
"options": {
"maxTokens": 1000,
"temperature": 0.3,
"responseFormat": "json_object"
},
"messages": {
"values": [
{
"role": "system",
"content": "Analyze the content and extract: 5 key points, core message in one sentence, 10 hashtags, 5 SEO keywords. Respond in JSON: { keyPoints, coreMessage, hashtags, seoKeywords }"
},
{
"role": "user",
"content": "=Title: {{$json.title}}\nBrand Voice: {{$json.brandVoice}}\n\nContent:\n{{$json.content}}"
}
]
}
},
"retryOnFail": true,
"typeVersion": 1.8,
"waitBetweenTries": 2000
},
{
"id": "merge-data",
"name": "Merge Data",
"type": "n8n-nodes-base.code",
"position": [
800,
400
],
"parameters": {
"jsCode": "let analysis;\ntry {\n analysis = JSON.parse($input.first().json.message?.content || '{}');\n} catch (e) {\n throw new Error('Failed to parse AI analysis: ' + e.message);\n}\nconst original = $('Validate Input').first().json;\nreturn [{ json: { ...original, analysis } }];"
},
"typeVersion": 2
},
{
"id": "gen-twitter",
"name": "Generate: Twitter Thread",
"type": "n8n-nodes-base.openAi",
"maxTries": 3,
"position": [
1040,
200
],
"parameters": {
"model": "gpt-4o-mini",
"options": {
"maxTokens": 1200,
"temperature": 0.7,
"responseFormat": "json_object"
},
"messages": {
"values": [
{
"role": "system",
"content": "Create a Twitter/X thread (5-7 tweets, each under 280 chars). First tweet: powerful hook. Last: CTA + hashtags. Use numbered format 1/, 2/. JSON: { \"thread\": [\"tweet1\", ...] }"
},
{
"role": "user",
"content": "=Title: {{$json.title}}\nKey Points: {{JSON.stringify($json.analysis.keyPoints)}}\nCore Message: {{$json.analysis.coreMessage}}\nBrand Voice: {{$json.brandVoice}}"
}
]
}
},
"retryOnFail": true,
"typeVersion": 1.8,
"waitBetweenTries": 2000
},
{
"id": "gen-linkedin",
"name": "Generate: LinkedIn Post",
"type": "n8n-nodes-base.openAi",
"maxTries": 3,
"position": [
1040,
400
],
"parameters": {
"model": "gpt-4o-mini",
"options": {
"maxTokens": 1000,
"temperature": 0.7,
"responseFormat": "json_object"
},
"messages": {
"values": [
{
"role": "system",
"content": "Create a LinkedIn post: bold first line, short paragraphs, personal insight, end with question, 3-5 hashtags. 1300-1800 chars. JSON: { \"post\": \"...\" }"
},
{
"role": "user",
"content": "=Title: {{$json.title}}\nKey Points: {{JSON.stringify($json.analysis.keyPoints)}}\nCore Message: {{$json.analysis.coreMessage}}\nBrand Voice: {{$json.brandVoice}}"
}
]
}
},
"retryOnFail": true,
"typeVersion": 1.8,
"waitBetweenTries": 2000
},
{
"id": "gen-instagram",
"name": "Generate: Instagram Caption",
"type": "n8n-nodes-base.openAi",
"maxTries": 3,
"position": [
1040,
600
],
"parameters": {
"model": "gpt-4o-mini",
"options": {
"maxTokens": 1200,
"temperature": 0.75,
"responseFormat": "json_object"
},
"messages": {
"values": [
{
"role": "system",
"content": "Create an Instagram caption: hook line, micro-story, emojis, CTA, 20-30 hashtags in separate block. JSON: { \"caption\": \"...\", \"hashtags\": [...] }"
},
{
"role": "user",
"content": "=Title: {{$json.title}}\nKey Points: {{JSON.stringify($json.analysis.keyPoints)}}\nBrand Voice: {{$json.brandVoice}}"
}
]
}
},
"retryOnFail": true,
"typeVersion": 1.8,
"waitBetweenTries": 2000
},
{
"id": "gen-facebook",
"name": "Generate: Facebook Post",
"type": "n8n-nodes-base.openAi",
"maxTries": 3,
"position": [
1040,
800
],
"parameters": {
"model": "gpt-4o-mini",
"options": {
"maxTokens": 800,
"temperature": 0.7,
"responseFormat": "json_object"
},
"messages": {
"values": [
{
"role": "system",
"content": "Create a Facebook post: relatable opening, story format, 100-250 words, conversation question at end, no external links, friendly tone. JSON: { \"post\": \"...\" }"
},
{
"role": "user",
"content": "=Title: {{$json.title}}\nKey Points: {{JSON.stringify($json.analysis.keyPoints)}}\nBrand Voice: {{$json.brandVoice}}"
}
]
}
},
"retryOnFail": true,
"typeVersion": 1.8,
"waitBetweenTries": 2000
},
{
"id": "collect-results",
"name": "Collect Results",
"type": "n8n-nodes-base.code",
"position": [
1300,
500
],
"parameters": {
"jsCode": "const original = $('Merge Data').first().json;\nconst parse = (n) => { try { return JSON.parse($(n).first().json.message?.content || '{}'); } catch(e) { return { error: e.message }; } };\n\nconst result = {\n requestId: original.requestId,\n title: original.title,\n completedAt: new Date().toISOString(),\n platforms: {\n twitter: parse('Generate: Twitter Thread'),\n linkedin: parse('Generate: LinkedIn Post'),\n instagram: parse('Generate: Instagram Caption'),\n facebook: parse('Generate: Facebook Post')\n }\n};\n\nreturn [{ json: result }];"
},
"typeVersion": 2
},
{
"id": "save-sheets",
"name": "Save to Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"maxTries": 2,
"position": [
1520,
400
],
"parameters": {
"columns": {
"value": {
"Title": "={{ $json.title }}",
"Request ID": "={{ $json.requestId }}",
"Completed At": "={{ $json.completedAt }}",
"Facebook Post": "={{ $json.platforms.facebook.post }}",
"LinkedIn Post": "={{ $json.platforms.linkedin.post }}",
"Twitter Thread": "={{ JSON.stringify($json.platforms.twitter.thread) }}",
"Instagram Caption": "={{ $json.platforms.instagram.caption }}"
},
"mappingMode": "defineBelow"
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Lite Log"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $env.FLOWSCRIBE_SHEET_ID }}"
}
},
"retryOnFail": true,
"typeVersion": 4.5
},
{
"id": "respond-success",
"name": "Respond: Success",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
1520,
600
],
"parameters": {
"respondWith": "json",
"responseBody": "={{ JSON.stringify({ success: true, requestId: $json.requestId, title: $json.title, platforms: ['twitter', 'linkedin', 'instagram', 'facebook'], message: '4 platform contents generated. Check Google Sheets.' }) }}"
},
"typeVersion": 1.1
},
{
"id": "note-overview",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
120,
160
],
"parameters": {
"color": 6,
"width": 350,
"height": 200,
"content": "## FlowScribe Lite — Quick 4-Platform Repurpose\n\nSimplified version with 4 core platforms:\nTwitter/X | LinkedIn | Instagram | Facebook\n\nFaster processing, lower API cost.\nIdeal for daily content repurposing."
},
"typeVersion": 1
}
],
"settings": {
"executionOrder": "v1",
"saveManualExecutions": true
},
"connections": {
"Merge Data": {
"main": [
[
{
"node": "Generate: Twitter Thread",
"type": "main",
"index": 0
},
{
"node": "Generate: LinkedIn Post",
"type": "main",
"index": 0
},
{
"node": "Generate: Instagram Caption",
"type": "main",
"index": 0
},
{
"node": "Generate: Facebook Post",
"type": "main",
"index": 0
}
]
]
},
"Validate Input": {
"main": [
[
{
"node": "AI: Quick Analysis",
"type": "main",
"index": 0
}
]
]
},
"Collect Results": {
"main": [
[
{
"node": "Save to Google Sheets",
"type": "main",
"index": 0
},
{
"node": "Respond: Success",
"type": "main",
"index": 0
}
]
]
},
"Receive Content": {
"main": [
[
{
"node": "Validate Input",
"type": "main",
"index": 0
}
]
]
},
"AI: Quick Analysis": {
"main": [
[
{
"node": "Merge Data",
"type": "main",
"index": 0
}
]
]
},
"Generate: Facebook Post": {
"main": [
[
{
"node": "Collect Results",
"type": "main",
"index": 0
}
]
]
},
"Generate: LinkedIn Post": {
"main": [
[
{
"node": "Collect Results",
"type": "main",
"index": 0
}
]
]
},
"Generate: Twitter Thread": {
"main": [
[
{
"node": "Collect Results",
"type": "main",
"index": 0
}
]
]
},
"Generate: Instagram Caption": {
"main": [
[
{
"node": "Collect Results",
"type": "main",
"index": 0
}
]
]
}
}
}RELATED WORKFLOWS
COMMENTS
No comments yet — be the first.
