{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Podcast on Autopilot",
  "tags": [],
  "nodes": [
    {
      "id": "b0c623b4-0277-4ded-b3e9-efa144b8dbab",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -448,
        0
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.3
    },
    {
      "id": "e5411e46-4ffa-413b-8058-66b20bc4f2a6",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -144,
        192
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "9a92346c-c2ed-49cb-8852-146ebf1eb0a5",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        48,
        192
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "fd396cfc-befe-4ec1-86a6-628034521233",
      "name": "Anthropic Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        336,
        192
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-sonnet-4-20250514",
          "cachedResultName": "Claude 4 Sonnet"
        },
        "options": {}
      },
      "credentials": {
        "anthropicApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "0545dea0-8429-4548-8cd5-9367223581d2",
      "name": "Simple Memory1",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        496,
        192
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "83ea47ca-b58c-488c-8e5e-3d236e8b5766",
      "name": "Podcast Script Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        432,
        0
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "options": {
          "systemMessage": "=ROLE\n\nYou are a Podcast Script Writer for a solo monologue show. Write only the intro (\u2264 60 seconds of spoken audio). The Script should sound as human-like natural as possible and in a \"your-everyday-friendly-neighbourhood-dude\" type of way. Tonality should be in the style of Joe Rogan and Steven Bartlett, engaging, relatable and keeps the listener engaged.\n\nINPUTS\n\nYou will receive Podcast topic and idea outline from user input\n\nGOAL\n\nTurn the title + idea into a natural, high-impact opening that grabs attention in the first 10 seconds, sets the premise, and cleanly hands off to the main segment.\n\nLENGTH & PACING\n\nTarget 135\u2013160 words (\u2248 50\u201360 seconds at normal speech).\n\nShort sentences. Conversational cadence. Use contractions.\n\nSTYLE (Rogan/Bartlett-inspired)\n\nCurious, grounded, reflective, practical.\n\nConfident but not preachy. No jargon.\n\nMonologue only (no guests, no interview framing).\n\nSTRUCTURE (use this flow, but do not label it)\n\nCold-open hook (a punchy line or provocative question).\n\nWhy now (timely tension or curiosity gap).\n\nPromise (what listeners will get by staying).\n\nTease 2\u20133 beats (surprising angle, personal reflection, actionable insight).\n\nSeamless handoff (\"Let's dive in.\" / \"Here's the play.\").\n\nLANGUAGE GUARDRAILS\n\nNo stage directions, no sound cues, no hashtags, no links, no emojis.\n\nAvoid brand/sponsor mentions, medical/financial/legal advice, hate/harassment, or unsafe claims.\n\nIf the idea references names, places, or numbers that require confirmation, generalize them (e.g., \"a leading researcher,\" \"a major study\")\u2014do not use placeholders or brackets like [Name], write around them.\n\nOUTPUT RULES\n\nOutput only the script text.\n\nNo titles, labels, markup, JSON, or explanations.\n\nThe script must stand alone, **ready for text-to-speech**.\n\nEXAMPLE OPENING MOVES (in spirit, not to copy)\n\n\"What if the habit you're most proud of is quietly holding you back?\"\n\n\"Today, I want to test a belief most of us never question\u2026\""
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "465f65c8-ee1c-47ff-9a28-006833e8080e",
      "name": "Podcast Idea/Topic Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        0,
        0
      ],
      "parameters": {
        "options": {
          "systemMessage": "=ROLE\n\nYou are a Podcast Idea Generator for a solo, monologue-style show. The vibe is fun, natural, and thought-provoking\u2014in the spirit of Joe Rogan and Steven Bartlett (curious, reflective, practical)\u2014but without guests or interviews. The topic should be relatable, buddy, down-to-earth-type of tonality.\n\nOBJECTIVE\n\nFrom a given seed topic, produce one compelling episode idea suitable for a monologue podcast.\n\nVOICE & AUDIENCE\n\nVoice: conversational, curious, balanced; no preachiness or jargon.\n\nAudience: smart general listeners who enjoy big ideas grounded in everyday life.\n\nCONTENT RULES\n\nPropose one clear, specific angle (not a broad theme).\n\nInclude a strong hook and a logical flow (setup \u2192 tension \u2192 insight \u2192 takeaway).\n\nAdd one surprising or contrarian twist to keep it thought-provoking.\n\nKeep it actionable: end with 1\u20132 practical reflections or experiments for listeners.\n\nAvoid medical/financial/legal advice; no hate or unsafe content.\n\nOUTPUT FORMAT (JSON, SINGLE STRING OBJECT)\n\nReturn only valid JSON with exactly one field, where the value is the full idea (hook + angle + flow + takeaway) as a single string. No lists, no extra fields, no commentary."
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2584ac19-dc78-4837-adc8-ac391467890d",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1168,
        0
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "Podcast Audio File",
        "options": {
          "attachmentsUi": {
            "attachmentsBinary": [
              {}
            ]
          }
        },
        "subject": "Podcast Audio File"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "aa1eb4df-6746-4411-8e6d-ad06929e1fbf",
      "name": "Eleven Labs Text-to-Speech",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        880,
        0
      ],
      "parameters": {
        "url": "https://api.elevenlabs.io/v1/text-to-speech/YOUR_VOICE_ID",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendQuery": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "text",
              "value": "={{ $json.output }}"
            },
            {
              "name": "model_id",
              "value": "eleven_multilingual_v2"
            }
          ]
        },
        "queryParameters": {
          "parameters": [
            {
              "name": "output_format",
              "value": "mp3_44100_128"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "xi-api-key",
              "value": "YOUR_ELEVENLABS_API_KEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "fc779931-a9b2-47d5-a214-790c1ae4a5d2",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -576,
        -272
      ],
      "parameters": {
        "width": 384,
        "height": 784,
        "content": "Chat Trigger Message"
      },
      "typeVersion": 1
    },
    {
      "id": "33a14b8d-73b0-4302-bb55-901af7c1a371",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -176,
        -272
      ],
      "parameters": {
        "color": 5,
        "width": 464,
        "height": 784,
        "content": "Podcast Idea Generator Agent"
      },
      "typeVersion": 1
    },
    {
      "id": "52778ddd-589f-4e72-b523-e956219999ac",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        304,
        -272
      ],
      "parameters": {
        "color": 4,
        "width": 464,
        "height": 784,
        "content": "Podcast Script Generator"
      },
      "typeVersion": 1
    },
    {
      "id": "a5562271-12cb-4e3e-9a1e-415b00848010",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        784,
        -272
      ],
      "parameters": {
        "color": 3,
        "width": 304,
        "height": 784,
        "content": "Eleven Labs POST Request"
      },
      "typeVersion": 1
    },
    {
      "id": "35f00176-86b3-4803-a29e-adebc5eb27c6",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        -272
      ],
      "parameters": {
        "color": 7,
        "width": 304,
        "height": 784,
        "content": "Send Audio File to Email"
      },
      "typeVersion": 1
    },
    {
      "id": "1ce57aeb-ca5f-49a3-bc8f-c754ba9367b8",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1440,
        -640
      ],
      "parameters": {
        "width": 592,
        "height": 304,
        "content": "@[youtube](Dan3_W1JoqU)"
      },
      "typeVersion": 1
    },
    {
      "id": "c450891b-9582-4000-9bbe-2fa1469309cd",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1440,
        -288
      ],
      "parameters": {
        "width": 816,
        "height": 816,
        "content": "Podcast on Autopilot \u2014 Generate Podcast Ideas, Scripts & Audio Automatically\n\nBring your solo podcast to life \u2014 on full autopilot. This workflow uses GPT-4 and Claude Sonnet to turn a single topic input into a complete podcast episode intro and ready-to-send audio file.\n\nHow it works\n\nStart a chat trigger \u2014 enter a seed idea or topic (e.g., \"habits,\" \"failure,\" \"technology and purpose\").\n\nPodcast Idea Agent (GPT-4) instantly crafts a thought-provoking, Rogan- or Bartlett-style episode concept with a clear angle and takeaway.\n\nPodcast Script Agent (Claude 4 Sonnet) expands that idea into a natural, engaging 60-second opening monologue ready for recording.\n\nText-to-Speech via ElevenLabs automatically converts the script into a high-quality voice track.\n\nEmail automation sends the finished MP3 directly to your inbox.\n\nPerfect for\n\u2022 Solo creators who want to ideate, script and voice short podcasts effortlessly\n\u2022 Content teams prototyping daily or weekly audio snippets\n\u2022 Anyone testing AI-driven storytelling pipelines\n\n\nCustomization tips\n\u2022 Swap ElevenLabs with your preferred TTS service by editing the HTTP Request node.\n\u2022 Adjust prompt styles for tone or audience in the Idea and Script Agents.\n\u2022 Modify the Gmail (or other mail service) node to send audio to any destination (Drive, Slack, Notion, etc.).\n\u2022 For reuse at scale, add variables for episode number, guest name, or theme category \u2014 just clone and update the trigger node.\n\nWatch step-by-step tutorial (how to build it yourself)\nhttps://www.youtube.com/watch?v=Dan3_W1JoqU\n\nRequirements & disclaimer\n\u2022 Requires API keys for OpenAI + Anthropic + ElevenLabs (or your chosen TTS).\n\u2022 You're responsible for managing costs incurred through AI or TTS usage.\n\u2022 Avoid sharing sensitive or private data as input into prompt flows.\n\u2022 Designed with modularity so you can turn off or swap/deep-link any stage (idea \u2192 script \u2192 voice \u2192 email) without breaking the chain."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "Podcast Idea/Topic Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory1": {
      "ai_memory": [
        [
          {
            "node": "Podcast Script Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Podcast Idea/Topic Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Podcast Script Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Podcast Script Agent": {
      "main": [
        [
          {
            "node": "Eleven Labs Text-to-Speech",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Podcast Idea/Topic Agent": {
      "main": [
        [
          {
            "node": "Podcast Script Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Eleven Labs Text-to-Speech": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "Podcast Idea/Topic Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}