AutomationFlowsAI & RAG › Agentic Marketing Operator - Preview Template

Agentic Marketing Operator - Preview Template

Agentic Marketing Operator - Preview Template. Manual trigger; 8 nodes.

Manual trigger★★★★☆ complexity8 nodes
AI & RAG Trigger: Manual Nodes: 8 Complexity: ★★★★☆ Added:

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 →

Download .json
{
  "name": "Agentic Marketing Operator - Preview Template",
  "nodes": [
    {
      "parameters": {
        "values": {
          "string": [
            {
              "name": "offer",
              "value": "Describe the product, service, or launch offer here."
            },
            {
              "name": "audience",
              "value": "Describe the target customer segment."
            },
            {
              "name": "channels",
              "value": "instagram,tiktok"
            },
            {
              "name": "approval_mode",
              "value": "human_review_required"
            }
          ],
          "number": [
            {
              "name": "posts_per_week",
              "value": 5
            }
          ]
        },
        "options": {}
      },
      "id": "campaign-intake",
      "name": "Campaign Intake",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3,
      "position": [
        -760,
        0
      ]
    },
    {
      "parameters": {
        "jsCode": "const item = $input.first().json;\nconst competitors = [\n  'direct competitor with similar offer',\n  'category leader with high engagement',\n  'smaller creator with practical content hooks'\n];\nreturn [{ json: { ...item, competitors, research_brief: `Audience: ${item.audience}\\nOffer: ${item.offer}\\nAngle: useful, specific, low-hype launch content` } }];"
      },
      "id": "research-brief",
      "name": "Research Brief",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -520,
        0
      ]
    },
    {
      "parameters": {
        "jsCode": "const item = $input.first().json;\nconst posts = [\n  { day: 'Monday', format: 'problem/solution', hook: 'The hidden cost this audience already feels' },\n  { day: 'Tuesday', format: 'quick tutorial', hook: 'One practical workflow using the offer' },\n  { day: 'Wednesday', format: 'comparison', hook: 'Old way vs new way' },\n  { day: 'Thursday', format: 'proof', hook: 'A small receipt, metric, or before/after' },\n  { day: 'Friday', format: 'call to action', hook: 'Invite a reply, trial, or purchase' }\n].slice(0, Number(item.posts_per_week || 5));\nreturn [{ json: { ...item, weekly_content_plan: posts } }];"
      },
      "id": "weekly-plan",
      "name": "Weekly Content Plan",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -280,
        0
      ]
    },
    {
      "parameters": {
        "jsCode": "const item = $input.first().json;\nconst drafts = item.weekly_content_plan.map((post) => ({\n  ...post,\n  instagram_caption: `${post.hook}. Keep it visual, concrete, and useful. End with one simple CTA tied to: ${item.offer}`,\n  tiktok_script: `0-2s hook: ${post.hook}\\n3-12s show the practical contrast\\n13-20s show the outcome\\nCTA: ask viewers to comment or try the offer`,\n  visual_prompt: `Create a clean vertical short-form concept for ${post.format}: real product/workflow signal, no generic stock look.`\n}));\nreturn [{ json: { ...item, drafts } }];"
      },
      "id": "draft-posts",
      "name": "Draft Posts And Prompts",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -40,
        0
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json.approval_mode}}",
              "operation": "equals",
              "value2": "human_review_required"
            }
          ]
        }
      },
      "id": "approval-gate",
      "name": "Manual Approval Required",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        200,
        0
      ]
    },
    {
      "parameters": {
        "jsCode": "const item = $input.first().json;\nreturn [{ json: { status: 'needs_human_approval', message: 'Review drafts before connecting live social publishing nodes.', drafts: item.drafts } }];"
      },
      "id": "approval-handoff",
      "name": "Approval Handoff",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        440,
        -120
      ]
    },
    {
      "parameters": {
        "jsCode": "const item = $input.first().json;\nreturn [{ json: { status: 'ready_to_publish_placeholder', note: 'Replace this node with buyer-approved Instagram/TikTok API integrations.', drafts: item.drafts } }];"
      },
      "id": "publish-placeholder",
      "name": "Publish Placeholder",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        440,
        120
      ]
    },
    {
      "parameters": {
        "jsCode": "const item = $input.first().json;\nreturn [{ json: { logged_at: new Date().toISOString(), campaign_status: item.status, record: item } }];"
      },
      "id": "campaign-log",
      "name": "Campaign Log",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        680,
        0
      ]
    }
  ],
  "connections": {
    "Campaign Intake": {
      "main": [
        [
          {
            "node": "Research Brief",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Research Brief": {
      "main": [
        [
          {
            "node": "Weekly Content Plan",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Weekly Content Plan": {
      "main": [
        [
          {
            "node": "Draft Posts And Prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Draft Posts And Prompts": {
      "main": [
        [
          {
            "node": "Manual Approval Required",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Manual Approval Required": {
      "main": [
        [
          {
            "node": "Approval Handoff",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Publish Placeholder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Approval Handoff": {
      "main": [
        [
          {
            "node": "Campaign Log",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Publish Placeholder": {
      "main": [
        [
          {
            "node": "Campaign Log",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false,
    "preview": true,
    "safeHandoff": "No credentials, private account data, or live publishing tokens are included."
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Agentic Marketing Operator - Preview Template. Manual trigger; 8 nodes.

Source: https://gist.github.com/Bortlesboat/7a028c5db5868871b16758caee81285c — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

24-Agent Parallel Orchestrator. Uses start, httpRequest, executeCommand. Manual trigger; 15 nodes.

Start, HTTP Request, Execute Command
AI & RAG

Inbox Agent (ep11). Uses emailReadImap, emailSend. Manual trigger; 9 nodes.

Email Read Imap, Email Send
AI & RAG

Lead to AI Call - SniperThink. Uses httpRequest. Manual trigger; 6 nodes.

HTTP Request
AI & RAG

Email Agent (real-time). Uses emailReadImap, httpRequest, executeCommand, telegram. Manual trigger; 6 nodes.

Email Read Imap, HTTP Request, Execute Command +1
AI & RAG

OMNIKAI - Tor Integration Agent. Uses start, executeCommand. Manual trigger; 5 nodes.

Start, Execute Command