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 →
{
"name": "Content Generation & Calendar",
"nodes": [
{
"parameters": {},
"id": "node_manual_trigger",
"name": "Manual Trigger",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
100,
100
]
},
{
"parameters": {
"functionCode": "// Define content request template\nconst contentRequest = {\n content_type: 'LinkedIn Post',\n topic: 'Capital intelligence in Dubai real estate',\n tone: 'Strategic, data-driven',\n target_audience: 'HNWIs, institutional investors',\n key_points: [\n 'Asymmetric information creates alpha',\n 'DLD transaction depth validates entry efficiency',\n 'Institutional discipline beats mass-market noise'\n ],\n max_words: 280,\n include_call_to_action: false\n};\n\nreturn [{\n request_id: 'content_' + Date.now(),\n content_request: contentRequest,\n requested_at: new Date().toISOString()\n}];"
},
"id": "node_define_request",
"name": "Define Content Request",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
300,
100
]
},
{
"parameters": {
"resource": "message",
"model": "claude-3-5-sonnet-20241022",
"messages": {
"values": [
{
"content": "Create content for Titan Crest based on this request:\n\nType: {{ $input.first().content_request.content_type }}\nTopic: {{ $input.first().content_request.topic }}\nTone: {{ $input.first().content_request.tone }}\nAudience: {{ $input.first().content_request.target_audience }}\nKey Points: {{ JSON.stringify($input.first().content_request.key_points) }}\nMax Words: {{ $input.first().content_request.max_words }}\n\nDeliverables:\n1. Primary content ({{ $input.first().content_request.max_words }} words max)\n2. Alternative opening (3 options)\n3. Recommended posting time\n4. Hashtags (3-5)\n\nConstraints:\n- NO emojis\n- NO hype language ('best', '#1', 'game-changer')\n- NO motivational language\n- Data-driven, institutional tone\n- Appropriate for C-suite audience",
"role": "user"
}
]
}
},
"id": "node_claude_generate",
"name": "Claude - Generate Draft",
"type": "n8n-nodes-base.anthropic",
"typeVersion": 1,
"position": [
500,
100
]
},
{
"parameters": {
"functionCode": "// Enforce Titan Crest brand rules\nconst content = $input.first().message.content;\nconst prohibited_terms = ['best', '#1', 'game changer', 'revolutionary', 'guaranteed', 'assured', 'best deal', 'dream home', 'excited to share', 'hope this helps'];\nconst violations = [];\n\nprohibited_terms.forEach(term => {\n if (content.toLowerCase().includes(term.toLowerCase())) {\n violations.push(term);\n }\n});\n\nconst brand_compliant = violations.length === 0;\n\nreturn [{\n ...($input.first()),\n brand_check: {\n compliant: brand_compliant,\n violations: violations,\n status: brand_compliant ? 'PASSED' : 'REQUIRES_REVISION'\n }\n}];"
},
"id": "node_enforce_brand",
"name": "Enforce Brand Rules",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
700,
100
]
},
{
"parameters": {
"method": "POST",
"url": "https://maqqjchekovcgtbzrbrv.supabase.co/rest/v1/content_queue",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer {{ $env.SUPABASE_SERVICE_ROLE_KEY }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"requestFormat": "json",
"jsonParameters": {
"parameters": [
{
"name": "content_type",
"value": "{{ $input.first().content_request.content_type }}"
},
{
"name": "content_draft",
"value": "{{ $input.first().message.content }}"
},
{
"name": "topic",
"value": "{{ $input.first().content_request.topic }}"
},
{
"name": "status",
"value": "{{ $input.first().brand_check.status }}"
},
{
"name": "brand_violations",
"value": "={{ JSON.stringify($input.first().brand_check.violations) }}"
},
{
"name": "created_at",
"value": "={{ new Date().toISOString() }}"
}
]
}
},
"id": "node_queue_content",
"name": "Queue Content",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [
900,
100
]
},
{
"parameters": {
"method": "POST",
"url": "https://maqqjchekovcgtbzrbrv.supabase.co/rest/v1/pa_review_queue",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer {{ $env.SUPABASE_SERVICE_ROLE_KEY }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"requestFormat": "json",
"jsonParameters": {
"parameters": [
{
"name": "item_type",
"value": "CONTENT_DRAFT"
},
{
"name": "item_reference",
"value": "{{ $input.first().request_id }}"
},
{
"name": "content_summary",
"value": "{{ $input.first().content_request.topic }}"
},
{
"name": "status",
"value": "PENDING_REVIEW"
},
{
"name": "review_points",
"value": "1. Data Authenticity\n2. Legal Compliance\n3. Brand Tone\n4. Investor Appropriateness\n5. Inference Validity"
},
{
"name": "created_at",
"value": "={{ new Date().toISOString() }}"
}
]
}
},
"id": "node_create_pa_review",
"name": "Create PA Review Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [
1100,
100
]
},
{
"parameters": {
"method": "POST",
"url": "https://maqqjchekovcgtbzrbrv.supabase.co/rest/v1/execution_logs",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer {{ $env.SUPABASE_SERVICE_ROLE_KEY }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"requestFormat": "json",
"jsonParameters": {
"parameters": [
{
"name": "workflow_name",
"value": "Content Generation & Calendar"
},
{
"name": "workflow_run_id",
"value": "={{ $execution.id }}"
},
{
"name": "status",
"value": "COMPLETED"
},
{
"name": "action_log",
"value": "Content drafted and queued for PA review. Brand check: {{ $input.first().brand_check.status }}. Type: {{ $input.first().content_request.content_type }}"
},
{
"name": "execution_timestamp",
"value": "={{ new Date().toISOString() }}"
}
]
}
},
"id": "node_audit_log",
"name": "Write Audit Log",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [
1300,
100
]
},
{
"parameters": {
"responseData": "={{ { success: true, request_id: $input.first().request_id, status: $input.first().brand_check.status, message: 'Content generated and queued for PA review' } }}"
},
"id": "node_respond_success",
"name": "Respond - Success",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
1500,
100
]
}
],
"connections": {
"node_manual_trigger": {
"main": [
[
{
"node": "node_define_request",
"branch": 0
}
]
]
},
"node_define_request": {
"main": [
[
{
"node": "node_claude_generate",
"branch": 0
}
]
]
},
"node_claude_generate": {
"main": [
[
{
"node": "node_enforce_brand",
"branch": 0
}
]
]
},
"node_enforce_brand": {
"main": [
[
{
"node": "node_queue_content",
"branch": 0
}
]
]
},
"node_queue_content": {
"main": [
[
{
"node": "node_create_pa_review",
"branch": 0
}
]
]
},
"node_create_pa_review": {
"main": [
[
{
"node": "node_audit_log",
"branch": 0
}
]
]
},
"node_audit_log": {
"main": [
[
{
"node": "node_respond_success",
"branch": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Content Generation & Calendar. Uses anthropic, httpRequest. Event-driven trigger; 8 nodes.
Source: https://gist.github.com/prateekgehlot09/37341cecd133286bbbc84ec6be171b90 — 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.
This n8n workflow automatically generates a comprehensive dataset of 50 AI search prompts tailored to a specific company.
Triggered by a GitLab MR webhook, this workflow automatically assists your team in writing customer-facing release notes by combining Linear issue data with Claude AI.
The competitive edge, delivered. This Customer Intelligence Engine simultaneously analyzes the web, Reddit, and X/Twitter to generate a professional, actionable executive briefing.
Your Cold Email is Now Researched. This pipeline finds specific bottlenecks on prospect websites and instantly crafts an irresistible pitch
Automatically turn top performing Instagram reels into 7 new ready to use content scripts. This workflow scrapes high performing posts from a chosen Instagram profile, downloads and transcribes the re