8
n8n 中文网amn8n.com

LinkedIn帖子创建

中级

这是一个AI, Marketing领域的自动化工作流,包含 15 个节点。主要使用 Set, Code, Merge, Filter, Aggregate 等节点,结合人工智能技术实现智能自动化。 使用Claude AI和邮件自动化将语音转录转换为LinkedIn帖子

前置要求
  • 可能需要目标 API 的认证凭证
  • Anthropic API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "I3OvQDAQ6wXMiclv",
  "meta": {
    "instanceId": "64c6e006410c0c6f40d26b514d5ae263c171e727b11b6021c97c40496b4a3845",
    "templateCredsSetupCompleted": true
  },
  "name": "LinkedIn 帖子创建",
  "tags": [
    {
      "id": "0xzY3hl6Vy7OWTsP",
      "name": "Public",
      "createdAt": "2025-06-10T19:23:51.371Z",
      "updatedAt": "2025-06-10T19:23:51.371Z"
    },
    {
      "id": "accYXE9u5dwwK0mF",
      "name": "Social Media",
      "createdAt": "2025-06-10T19:23:59.340Z",
      "updatedAt": "2025-06-10T19:23:59.340Z"
    }
  ],
  "nodes": [
    {
      "id": "77bcc9c1-0a33-4624-b974-c4e7953cf2b4",
      "name": "清理 JSON",
      "type": "n8n-nodes-base.set",
      "position": [
        320,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b88347b0-de58-49dd-9ae8-901154d39a3d",
              "name": "Content",
              "type": "string",
              "value": "={{ $json.textPlain }}"
            },
            {
              "id": "45d1ce97-ace7-48a3-9426-58e68df495f5",
              "name": "Date",
              "type": "string",
              "value": "={{ $json.date }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4617a0fb-7ad4-4dd4-8da7-3d4d7ec572dd",
      "name": "基础 LLM 链",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        980,
        100
      ],
      "parameters": {
        "text": "=",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=You are a LinkedIn content expert helping create thought leadership posts. You will receive inspiration content and create engaging LinkedIn posts with accompanying image/video descriptions."
            },
            {
              "type": "HumanMessagePromptTemplate",
              "message": "=EXAMPLE POSTS FOR STYLE REFERENCE:\n{{ $json.data[0] }}\n\n---\n\nCREATE A NEW POST BASED ON THIS INSPIRATION:\n{{ $json.Content[0] }}\n\nRequirements:\n1. Match the style and tone of the example posts above\n2. Write an engaging LinkedIn post (150-300 words)\n3. Create a description for complementary visual content that will be used to provide creative direction to a graphic designer that has our brand guidelines\n\nYou must respond with ONLY valid JSON in this exact format. Use only standard ASCII characters, no special Unicode formatting:\n\n{\n  \"post_content\": \"Your LinkedIn post here\",\n  \"image_description\": \"Detailed description of visual content needed\"\n}\n\nDo not use any special Unicode characters, mathematical styling, or fancy formatting. Use plain text only."
            }
          ]
        },
        "promptType": "define"
      },
      "retryOnFail": true,
      "typeVersion": 1.7
    },
    {
      "id": "aca18d63-04e4-4071-8c53-888f72a09a6a",
      "name": "Anthropic 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        1080,
        260
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-sonnet-4-20250514",
          "cachedResultName": "Claude 4 Sonnet"
        },
        "options": {}
      },
      "credentials": {
        "anthropicApi": {
          "id": "PV4cu4pebO0V0yKy",
          "name": "Anthropic account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "0942f260-ee7b-475c-86bf-0d98bb4e2bc8",
      "name": "Google 文档帖子灵感",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        320,
        200
      ],
      "parameters": {
        "url": "https://docs.google.com/document/d/asdfsadfasdf",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "eb46d848-9e8c-4df3-8867-048f04f2e9ce",
      "name": "合并",
      "type": "n8n-nodes-base.merge",
      "position": [
        540,
        100
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "2d5f2f7f-f868-4afe-9052-e6d293edec07",
      "name": "聚合",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        760,
        100
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "data"
            },
            {
              "fieldToAggregate": "Content"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "25959bd6-ba58-4cd0-a7d7-2dc89acdaea5",
      "name": "清理 JSON 响应",
      "type": "n8n-nodes-base.code",
      "position": [
        1356,
        100
      ],
      "parameters": {
        "jsCode": "// Get the response from the LLM\nlet rawResponse = $json.text;\n\n// Always use regex extraction to avoid JSON parsing issues\nconsole.log(\"Using regex extraction method\");\n\n// Extract content using regex - handles both complete and truncated responses\nconst postMatch = rawResponse.match(/\"post_content\":\\s*\"((?:[^\"\\\\]|\\\\[\\s\\S])*)\"/);\nconst imageMatch = rawResponse.match(/\"image_description\":\\s*\"((?:[^\"\\\\]|\\\\[\\s\\S])*)\"/);\n\nif (postMatch) {\n // Clean up the extracted content\n let postContent = postMatch[1]\n   .replace(/\\\\n/g, '\\n')\n   .replace(/\\\\\"/g, '\"')\n   .replace(/\\\\t/g, '\\t');\n \n let imageDescription = imageMatch ? \n   imageMatch[1].replace(/\\\\n/g, '\\n').replace(/\\\\\"/g, '\"') : \n   \"Professional LinkedIn post visual\";\n \n return {\n   post_content: postContent,\n   image_description: imageDescription,\n   parsing_method: \"regex_extraction\",\n   was_truncated: !postMatch[1].endsWith('\"')\n };\n}\n\nreturn {\n error: \"Could not extract post content\",\n raw_response: rawResponse.substring(0, 500) + \"...\", // Show first 500 chars for debugging\n debug_info: \"No post_content found in response\"\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "ad2078c7-0164-416d-b043-6171c2e155e9",
      "name": "监控邮件",
      "type": "n8n-nodes-base.emailReadImap",
      "position": [
        -120,
        100
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "imap": {
          "id": "d9Wfz7ze2ITP3U2E",
          "name": "IMAP account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "7a37253a-9b43-4be5-912c-670e585667dc",
      "name": "限制邮件发件人",
      "type": "n8n-nodes-base.filter",
      "position": [
        100,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "74316b3d-99ba-4116-b031-86e1f2493e8c",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json.from }}",
              "rightValue": "email@email.com"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "3c3d9216-24fb-4965-851a-417afcbb2bc4",
      "name": "限制邮件发件人1",
      "type": "n8n-nodes-base.filter",
      "position": [
        100,
        200
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "19ffe245-a195-4010-a765-838300d2e80e",
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json.from }}",
              "rightValue": "email@email.com"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "e67b6d77-026c-4cff-8907-eaabcf7be1b9",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -620,
        -60
      ],
      "parameters": {
        "width": 420,
        "height": 600,
        "content": "## 配置邮件"
      },
      "typeVersion": 1
    },
    {
      "id": "21026d75-ec99-462a-a64d-ce1413eb74fe",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        420
      ],
      "parameters": {
        "width": 640,
        "height": 520,
        "content": "## 数据处理步骤"
      },
      "typeVersion": 1
    },
    {
      "id": "0af851b7-4430-4122-a896-5ff3e86f3f18",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        400
      ],
      "parameters": {
        "width": 620,
        "height": 560,
        "content": "## AI 配置"
      },
      "typeVersion": 1
    },
    {
      "id": "12299288-a5fc-4d95-91c4-43ac4c4921df",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1500,
        400
      ],
      "parameters": {
        "width": 260,
        "height": 400,
        "content": "## 邮件发送给自己"
      },
      "typeVersion": 1
    },
    {
      "id": "b696f6b3-4739-4629-8059-78077612b4e0",
      "name": "发送邮件",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1580,
        100
      ],
      "webhookId": "3b07b45f-91da-4417-a901-99c22ed13114",
      "parameters": {
        "html": "=<h2>🎉 New LinkedIn Post Generated!</h2>\n<p><strong>Generated on:</strong> {{ new Date().toLocaleString() }}</p>\n\n<h3>📝 Post Content:</h3>\n<div style=\"background: #f5f5f5; padding: 15px; border-radius: 5px; margin: 10px 0;\">\n{{ $('Clean JSON Response').item.json.post_content }}\n</div>\n\n<h3>🖼️ Image Description:</h3>\n<div style=\"background: #e8f4f8; padding: 15px; border-radius: 5px; margin: 10px 0;\">\n{{ $('Clean JSON Response').item.json.image_description }}\n</div>\n\n<p><em>Copy the content above and paste it into LinkedIn when ready to post!</em></p>",
        "options": {},
        "subject": "LinkedIn Post Ready - {{ new Date().toLocaleDateString() }}"
      },
      "typeVersion": 2.1
    }
  ],
  "active": false,
  "pinData": {
    "Email to Monitor": [
      {
        "json": {
          "to": "\"linkedin@strata52.com\" <linkedin@strata52.com>",
          "date": "Tue, 3 Jun 2025 22:31:43 -0400",
          "from": "Kyle Morse <kyle@strata52.com>",
          "subject": "First post",
          "metadata": {
            "x-gm-gg": "ASbGnct/AmP1uAels/cRQ1En5yN99JuUgZBOECocFJabkHwIabVnValI/K1PA6kzlyM r9Sg9A0BjH+wunxZEBcDoqVs21HQEPTBX7xg0bXDsEGZNxTZ/gcetIKHzOBq6JSbQizD+JZzktf i19YHV3M8dnA+o62BckpImVnl7HbLLNzDoqX89JSrB/SI=",
            "arc-seal": "i=1; a=rsa-sha256; t=1749004316; cv=none; d=google.com; s=arc-20240605; b=LOql6URC8WS0vOp5rqmpqlqR4pfxS8ItD1i19S26hBH/WQPKxiAi78b4RpYnrde3Op PjY8MbgBvgD+qlfxgaJyaLFaEXX1WE1LdcGMt439zx7mDwtLscmsKvfX9F87XjWzp8wb 4MrWQwa1+fvvpyov2J+/mkTQ4a2ZO9+UHK1CWEWFNJrgbHjk5fzdsGLYC/vrgbLAoHSY O51ccsSV42KyjP4/j1qABInM5Ao3sggDKJzirgB5kCSO797f3/HA+g2j1rPw/1m6RVo3 QQy0mqqZycxXsSacP9q3S9Zy50xUIM6PMmMfIqc5/5BEZ/wxL8xY8YT3XUs9lSVIbmar HIoA==",
            "received": "by 2002:a05:6802:1986:b0:5ca:29c:8ccb with SMTP id cc6csp808122ocb; Tue, 3 Jun 2025 19:31:56 -0700 (PDT)",
            "message-id": "<CAEzD7ohNnM_CuJocKnU1ZyeDVaohVC_qTZNXmxHw+qE0bMhEnA@mail.gmail.com>",
            "x-received": "by 2002:a05:6830:6c18:b0:72b:9bb3:67cd with SMTP id 46e09a7af769-73869d6911cmr1095705a34.12.1749004316309; Tue, 03 Jun 2025 19:31:56 -0700 (PDT)",
            "return-path": "<kyle@strata52.com>",
            "content-type": "multipart/alternative; boundary=\"000000000000ec8e590636b5ccb9\"",
            "delivered-to": "linkedin@strata52.com",
            "mime-version": "1.0",
            "received-spf": "pass (google.com: domain of kyle@strata52.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41;",
            "x-gm-features": "AX0GCFsM9xFEYhYLkxld7ea6kNR1ElXobictme04be4b5Aj37qYy-CWqUIc0_N8",
            "dkim-signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=strata52-com.20230601.gappssmtp.com; s=20230601; t=1749004315; x=1749609115; darn=strata52.com; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=bkANepf0aBjqhp7N5Kl+FQjzR7dCWSH5e7jbxIz/yuM=; b=rbNYIPHTp9OsC/62VoHdmVBM6Jx4tXsYiv2p1habzMlBqh7zJg+O2XfsF+VxuJoeJl G7Xn5mixxcbzzA5MwwFEQUU7/dG0QaIkJYZaCEd/wIOl8U5LHR3+YIlESsluhw4T0u4o Ojko8iU54aAE4puTMCeIe+L4GnBXZGzzaoxTUMkH+XiGo5kgtMWSH0lPzBSMoYPFiVlG P8gqYEj1s0b7c4zVBFr3qfZO0NhMsgi411lC4Cbu7OecpWZ0ovfvou74v8Q8kEq9zlxX ztSqeqKfz9VOwD/sr36aNuv9Z1hiDL7ChPTD0wVT0UWh6XH34GEyGJqgNmj5zAknX1Nt LgWg==",
            "x-gm-message-state": "AOJu0YxnLdnpuliOLYkIRmTGuEAGjKYF5fXc3m0vmNbiUrfIULQKop05 011GhhdxDpgjOVRaJVTk+40C5YJhu60+vXjC4Tw4etSgHs30k/DuB+bv8OkpD/rr6a3qWl+lqrH MPpbQ781TbjG7Fh9JxwEQmiBu4Z2U9YR3pLt4RhJKMAEZZAoS91XRaySV8EXm4m0Q5ldHsHNDzv Un6mWimlOJdsmepmpGyEnLRMW0AuulfL7yDOAdo11WSg==",
            "x-google-smtp-source": "AGHT+IEZSJZcMW99ROKeM0SHnmTpj/Of1fgEfucVGbQLtSmB2AkUQUW02Lh4+fZoNvnRposD6PNvRnnihxKEPZgnVpE=",
            "arc-message-signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=bkANepf0aBjqhp7N5Kl+FQjzR7dCWSH5e7jbxIz/yuM=; fh=s0xtU1QeuyRuH4QEoXgMT1gF5fPJ1ewFQY6c8YyGg9M=; b=d14QFOu2HjbOSTOVsT0/SEX+vrk8DUy04hivyWbExR/YiVeUImqCDiQU8IMU/s7Bn0 rT0UKFrnijkgvwpCUqeXXxPO4RFf3C9cVEWcEmlLR4eIUyRg33VkMb6DWXh6zX3pwXwd QxEdz2Uqj26/nfYWWzAh4EABiGi7aOnXhWOa9HU6Nynr4nxbhMza6tjFGGUQwCkQ1Pcq uYkiFuOFvQB3mYVy+Hw9WD+ljRJ5dV4P8FDy4S736yBQzDPbKSUVDgodV/QSzdgdACx4 OyeC832hDJts6pHy7Kf/CciXg4vIh6inKWsfQlvxKukFb1DHydJJxjBaxzgB3x2RUBQh x7WA==; dara=google.com",
            "authentication-results": "mx.google.com; dkim=pass header.i=@strata52-com.20230601.gappssmtp.com header.s=20230601 header.b=rbNYIPHT; spf=pass (google.com: domain of kyle@strata52.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=kyle@strata52.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=strata52.com; dara=pass header.i=@strata52.com",
            "x-google-dkim-signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749004315; x=1749609115; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=bkANepf0aBjqhp7N5Kl+FQjzR7dCWSH5e7jbxIz/yuM=; b=SeYd2CdPJjdPYMSiblN6kmnsCyy20wFQYVYLfVFaithv1MAB/IoOHCizTbkpNUbOaZ 4WFdVA1X+9LwTpn4HaOfMmJ0uNALu0eX6s4YUji0Rvfs0INr+MTolK4mcyi6gJCEuyY2 VOU9zGB+G+PFSQ7AJO5XiNxH9WT+eDyNlx4NY6mZdzA9VT14bI2pttBkhA/lQESAXYxd BuH3Pp53uV/cDNp2girEuRqWT0AEh4RCgLYoEuhL1WDYlyUboqHjtYi1iGtVsLp+IUWh B+lh+3WPaGjy+Xxml5+xEeiX5n++FxiFej4yDa1lqOvdRZGa87fxkCJwxz23+cZrgO96 GfOw==",
            "arc-authentication-results": "i=1; mx.google.com; dkim=pass header.i=@strata52-com.20230601.gappssmtp.com header.s=20230601 header.b=rbNYIPHT; spf=pass (google.com: domain of kyle@strata52.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=kyle@strata52.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=strata52.com; dara=pass header.i=@strata52.com"
          },
          "textHtml": "<div><div>So one thing that I&#39;m um particularly not good at is um is being efficient with content creation as it relates to any type of posting on social media. What I have a tendency to do is overanalyze the message. I spend too much time, creating the content, editing, the content, refining the content, and then sometimes I just don&#39;t even post it. I&#39;d say the majority of the time I don&#39;t even post it. So what I wanted to figure out is a a way to streamline that that content creation process. So to solve this problem, which, for me, I would spend if I was posting every single day, I would spend a couple hours every single day on just creating posts like this. So, what I wanted to do is figure out a workflow or create a workflow that would allow me to minimize my time spent on on creating these types of these types of these types of post specifically on LinkedIn. So what this workflow is, is it&#39;s a workflow where I can kind of change a or add a habit to to my daily life that is whether I&#39;m going on a walk or on a drive or whatever, I can use the voice recorder on my iPhone and just kind of dictate to the voice recorder. I have no shortage of ideas or things to speak about, especially if I&#39;m just prompted. So I can integrate that into my daily daily kind of workflow so I can add that as a kind of multitasking step. And basically, after I create the recording in its raw format, I can copy the transcription of the recording because iPhone now, the voice recorder handles that for you. I copy the transcription and then I email it to an email that I set up here that kicks off a a workflow that I built here in in in, so I&#39;ll take you through the workflow. So what happens is an email is received. When I email this specific email, and I&#39;m the only one that can it filters for my my sending email. So if my email is the one that sends, then it will kick off this, this workflow. So the first thing that we want to do is clean up and define the fields because there&#39;s a whole bunch of other J-son that gets attached to the email. So we just want to pull out the body of the email and other data. And then the other important piece is, I want to be able to clean and standardize, really for brandanding purposes. and to make sure I&#39;m on message. I want a standardize my post format and kind of my messaging structure. So what I&#39;ve created is a Google Doc that Google Doc has other posts or other yeah, other posts and it&#39;s kind of a running list of other posts from other content creators, people that I follow, people that I admire, and it has posts that I&#39;ve copied and pasted into that Google doc. So this Google Doc can be dynamic. What I mean by that is, is that, you know, as I&#39;m scrolling through LinkedIn, I can save a post to my LinkedIn, or I can copy and paste that content into the Google doc just as I&#39;m scrolling through. rotting my brain on LinkedIn. So what&#39;s happening here is we&#39;re taking and using this template that I have or using this Google doc as our inspiration to help us structure and clean up that free-flowing thought. So as you guessed, we can take this the transcript in this raw form, combine that with the structured inspiration document that saved in Google Dos and then run it through a large language model. In this case, we&#39;re using anropic and what the output is, is a a polished coherent, hopefully. post that outputs two different types of content. For me, I wanted to have the actual written content, so it&#39;s the written content that you typically see in a post, and then also an image description. I wanted to create an image description just so that way I can take that and maybe use use some sort of service like fiver or design something or use an AI tool to design the actual accompanying image, really just for idea purposes. So where all this is getting dumped right now is I have it being uploaded into an air table, so that way my team can approve any of those messages or request edits or whatever. I also get an email so I can see that in real time. So, yeah, this has been an incredible time saver. for us and this is a really simple, this is a really simple AI workflow that allows you to take your really just change one core behavior and just email yourself and you create content. And that&#39;s kind of all you need and everything gets stored an air table so you can schedule out a content calendar and be more diligent with your posting. So yeah, I would estimate that this saves me if I was posting one thing every day. It saves me at least an hour, maybe even two hours, every single day and just content creation. So that&#39;s a huge ROI for something so simple. So if you&#39;re interested in replicating this, please feel free to take a screenshot or I&#39;ll share a link to the downloadable JS so you can just upload it straight away and implement it in your business. All right.</div><br clear=\"all\"><br clear=\"all\"><div><div dir=\"ltr\" class=\"gmail_signature\" data-smartmail=\"gmail_signature\"><div dir=\"ltr\"><p><span style=\"font-size:18pt\"><strong><font face=\"arial, sans-serif\">Kyle Morse</font></strong></span></p>\r\n<p><span style=\"font-size:12pt\"><font face=\"georgia, serif\">Managing Partner</font></span></p>\r\n<p><span style=\"font-family:georgia,palatino,serif;font-size:12pt\"><a href=\"https://www.linkedin.com/in/morseky/\" rel=\"noopener\" target=\"_blank\">Let&#39;s Connect on LinkedIn!</a></span></p>\r\n<hr>\r\n<p><span style=\"font-family:georgia,palatino,serif;font-size:12pt\">Phone ///// 407.919.9470 //</span></p>\r\n<p><span style=\"font-family:georgia,palatino,serif;font-size:12pt\">Email ///// <a href=\"mailto:kyle@strata52.com\" target=\"_blank\">kyle@strata52.com</a> //</span></p>\r\n<p><span style=\"font-family:georgia,palatino,serif;font-size:12pt\">Website ///// <a href=\"http://www.strata52.com\" target=\"_blank\">www.strata52.com</a> //</span></p>\r\n<hr>\r\n<p><img src=\"https://ci3.googleusercontent.com/mail-sig/AIorK4yLLUEfGTc8yUcy7jVC1DI8cKYlVdL3QDwLT5cJs1aK-aumtsF8ZDkmkjkUpvNfRKdd8Ci1v_0\"><br></p></div></div></div></div>\r\n\r\n<br>\r\n<p><span style=\"font-family:georgia,palatino,serif;font-size:10pt\">This message and any attachments are confidential and intended for the named addressee(s) only. If you have received this message in error, please notify immediately the sender, then delete the message. Any unauthorized modification, edition, use or dissemination is prohibited. The sender shall not be liable for this message if it has been modified, altered, falsified, infected by a virus or even edited or disseminated without authorization.</span><br></p>",
          "textPlain": "So one thing that I'm um particularly not good at is um is being efficient\r\nwith content creation as it relates to any type of posting on social media.\r\nWhat I have a tendency to do is overanalyze the message. I spend too much\r\ntime, creating the content, editing, the content, refining the content, and\r\nthen sometimes I just don't even post it. I'd say the majority of the time\r\nI don't even post it. So what I wanted to figure out is a a way to\r\nstreamline that that content creation process. So to solve this problem,\r\nwhich, for me, I would spend if I was posting every single day, I would\r\nspend a couple hours every single day on just creating posts like this. So,\r\nwhat I wanted to do is figure out a workflow or create a workflow that\r\nwould allow me to minimize my time spent on on creating these types of\r\nthese types of these types of post specifically on LinkedIn. So what this\r\nworkflow is, is it's a workflow where I can kind of change a or add a habit\r\nto to my daily life that is whether I'm going on a walk or on a drive or\r\nwhatever, I can use the voice recorder on my iPhone and just kind of\r\ndictate to the voice recorder. I have no shortage of ideas or things to\r\nspeak about, especially if I'm just prompted. So I can integrate that into\r\nmy daily daily kind of workflow so I can add that as a kind of multitasking\r\nstep. And basically, after I create the recording in its raw format, I can\r\ncopy the transcription of the recording because iPhone now, the voice\r\nrecorder handles that for you. I copy the transcription and then I email it\r\nto an email that I set up here that kicks off a a workflow that I built\r\nhere in in in, so I'll take you through the workflow. So what happens is an\r\nemail is received. When I email this specific email, and I'm the only one\r\nthat can it filters for my my sending email. So if my email is the one that\r\nsends, then it will kick off this, this workflow. So the first thing that\r\nwe want to do is clean up and define the fields because there's a whole\r\nbunch of other J-son that gets attached to the email. So we just want to\r\npull out the body of the email and other data. And then the other important\r\npiece is, I want to be able to clean and standardize, really for\r\nbrandanding purposes. and to make sure I'm on message. I want a standardize\r\nmy post format and kind of my messaging structure. So what I've created is\r\na Google Doc that Google Doc has other posts or other yeah, other posts and\r\nit's kind of a running list of other posts from other content creators,\r\npeople that I follow, people that I admire, and it has posts that I've\r\ncopied and pasted into that Google doc. So this Google Doc can be dynamic.\r\nWhat I mean by that is, is that, you know, as I'm scrolling through\r\nLinkedIn, I can save a post to my LinkedIn, or I can copy and paste that\r\ncontent into the Google doc just as I'm scrolling through. rotting my brain\r\non LinkedIn. So what's happening here is we're taking and using this\r\ntemplate that I have or using this Google doc as our inspiration to help us\r\nstructure and clean up that free-flowing thought. So as you guessed, we can\r\ntake this the transcript in this raw form, combine that with the structured\r\ninspiration document that saved in Google Dos and then run it through a\r\nlarge language model. In this case, we're using anropic and what the output\r\nis, is a a polished coherent, hopefully. post that outputs two different\r\ntypes of content. For me, I wanted to have the actual written content, so\r\nit's the written content that you typically see in a post, and then also an\r\nimage description. I wanted to create an image description just so that way\r\nI can take that and maybe use use some sort of service like fiver or design\r\nsomething or use an AI tool to design the actual accompanying image, really\r\njust for idea purposes. So where all this is getting dumped right now is I\r\nhave it being uploaded into an air table, so that way my team can approve\r\nany of those messages or request edits or whatever. I also get an email so\r\nI can see that in real time. So, yeah, this has been an incredible time\r\nsaver. for us and this is a really simple, this is a really simple AI\r\nworkflow that allows you to take your really just change one core behavior\r\nand just email yourself and you create content. And that's kind of all you\r\nneed and everything gets stored an air table so you can schedule out a\r\ncontent calendar and be more diligent with your posting. So yeah, I would\r\nestimate that this saves me if I was posting one thing every day. It saves\r\nme at least an hour, maybe even two hours, every single day and just\r\ncontent creation. So that's a huge ROI for something so simple. So if\r\nyou're interested in replicating this, please feel free to take a\r\nscreenshot or I'll share a link to the downloadable JS so you can just\r\nupload it straight away and implement it in your business. All right.\r\n\r\n\r\n*Kyle Morse*\r\n\r\nManaging Partner\r\n\r\nLet's Connect on LinkedIn! <https://www.linkedin.com/in/morseky/>\r\n------------------------------\r\n\r\nPhone ///// 407.919.9470 //\r\n\r\nEmail ///// kyle@strata52.com //\r\n\r\nWebsite ///// www.strata52.com //\r\n------------------------------\r\n\r\n-- \r\n\r\n\r\nThis message and any attachments are confidential and intended for the \r\nnamed addressee(s) only. If you have received this message in error, please \r\nnotify immediately the sender, then delete the message. Any unauthorized \r\nmodification, edition, use or dissemination is prohibited. The sender shall \r\nnot be liable for this message if it has been modified, altered, falsified, \r\ninfected by a virus or even edited or disseminated without authorization.\r\n",
          "attributes": {
            "uid": 15
          }
        }
      }
    ]
  },
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1",
    "timeSavedPerExecution": 60
  },
  "versionId": "d2274fb6-1cfc-467e-8dd3-73b0a4361480",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean JSON": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Clean JSON Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Email to Monitor": {
      "main": [
        [
          {
            "node": "Limit email sender",
            "type": "main",
            "index": 0
          },
          {
            "node": "Limit email sender1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit email sender": {
      "main": [
        [
          {
            "node": "Clean JSON",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean JSON Response": {
      "main": [
        [
          {
            "node": "Send Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit email sender1": {
      "main": [
        [
          {
            "node": "Google Doc Post Inspiration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Anthropic Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Google Doc Post Inspiration": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

中级 - 人工智能, 营销

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
中级
节点数量15
分类2
节点类型11
难度说明

适合有一定经验的用户,包含 6-15 个节点的中等复杂度工作流

作者
Kyle Morse

Kyle Morse

@s52

📘 AI Transformation Author (Multiply without Adding) 🚀 Building Strata52 to help leaders automate 75% of any role in 12 months

外部链接
在 n8n.io 查看

分享此工作流