N
n8n Store
Workflow Market
Linkedin Post Creation

Linkedin Post Creation

by s520 views

Description

Categories

🤖 AI & Machine Learning📢 Marketing

Nodes Used

n8n-nodes-base.setn8n-nodes-base.coden8n-nodes-base.mergen8n-nodes-base.filtern8n-nodes-base.filtern8n-nodes-base.aggregaten8n-nodes-base.emailSendn8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNote
PriceFree
Views0
Last Updated11/28/2025
workflow.json
{
  "id": "I3OvQDAQ6wXMiclv",
  "meta": {
    "instanceId": "64c6e006410c0c6f40d26b514d5ae263c171e727b11b6021c97c40496b4a3845",
    "templateCredsSetupCompleted": true
  },
  "name": "Linkedin Post Creation",
  "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": "Clean 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": "Basic LLM Chain",
      "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 Chat Model",
      "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 Doc Post Inspiration",
      "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": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        540,
        100
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "2d5f2f7f-f868-4afe-9052-e6d293edec07",
      "name": "Aggregate",
      "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": "Clean JSON Response",
      "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": "Email to Monitor",
      "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": "Limit email sender",
      "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 protected]"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "3c3d9216-24fb-4965-851a-417afcbb2bc4",
      "name": "Limit email sender1",
      "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 protected]"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "e67b6d77-026c-4cff-8907-eaabcf7be1b9",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -620,
        -60
      ],
      "parameters": {
        "width": 420,
        "height": 600,
        "content": "## Configure Email \nConfigure Email Monitoring\n\nSet up dedicated email address for receiving your voice transcriptions\n• Create a new email specifically for this workflow (e.g., [email protected])\n• This keeps your workflow organized and secure\n\n\nConfigure IMAP Email Node\n• Add your email credentials in the \"Email to Monitor\" node\n• Set up IMAP access in your email provider settings\n• Test the connection to ensure emails are being received\n\n\nSet Email Filters\n• Update the \"Limit email sender\" nodes with YOUR email address\n• Replace \"[email protected]\" with your sending email\n• This ensures only YOUR emails trigger the workflow\n\nEmail Usage Instructions\n• Record voice memo on your phone\n• Copy the auto-transcription from your voice recorder app\n• Email the transcription to your dedicated workflow email\n• The workflow will automatically trigger when your email is received"
      },
      "typeVersion": 1
    },
    {
      "id": "21026d75-ec99-462a-a64d-ce1413eb74fe",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        420
      ],
      "parameters": {
        "width": 640,
        "height": 520,
        "content": "## Data Processing Steps\n\nClean JSON Node\n• Extracts email content and metadata\nRemoves unnecessary email headers and formatting\n• Prepares clean text for AI processing\n\nGoogle Doc Inspiration Source\n• CRITICAL: Create your own google doc, and set its permissions to Public, so the URL is publicly accessible.\n• Replace with your own Google Doc URL containing example posts\n• Document should include posts you admire from other creators. Make sure you copy/paste the text here.\n• Keep this document updated with new inspiring content\n• This step will reformat your raw, unedited text into a structure similar to your inspiration posts.\n\n\nContent Merging\n• The workflow combines your raw transcription with inspiration examples\n• This ensures consistent brand voice and messaging structure\n\n\n\nSetting Up Your Inspiration Document\n• Create a Google Doc with 10-15 example LinkedIn posts\n• Include posts that match your desired tone and style\n• Make the document publicly viewable or shareable via link\n• Update the URL in the HTTP Request node"
      },
      "typeVersion": 1
    },
    {
      "id": "0af851b7-4430-4122-a896-5ff3e86f3f18",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        400
      ],
      "parameters": {
        "width": 620,
        "height": 560,
        "content": "## AI Configuration\n\nAnthropic API Setup\n• Sign up for Anthropic Claude API access\n• Add your API credentials to the \"Anthropic Chat Model\" node\nThe workflow uses Claude Sonnet 4 for content generation\n\nPrompt Engineering\n• The LLM Chain uses your inspiration posts as style examples\n• Generates two outputs: LinkedIn post content + image description\n• Maintains 150-300 word count for optimal LinkedIn engagement\n\n\nJSON Response Cleaning\n• Automated parsing extracts clean content from AI response\n• Handles formatting issues and ensures proper data structure\n• Error handling for incomplete or malformed responses\n\n\n\nAI Output Quality Tips\n• Keep your inspiration document updated with high-quality examples\n• The AI will match the tone and style of your example posts\n• More diverse examples = more varied but consistent output"
      },
      "typeVersion": 1
    },
    {
      "id": "12299288-a5fc-4d95-91c4-43ac4c4921df",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1500,
        400
      ],
      "parameters": {
        "width": 260,
        "height": 400,
        "content": "## Email yourself\n\nConnect your email, and email yourself the polished content. \n\nYou'll receive the post content + inspiration for any imagery.\n\n\nNote: You can also add these to a database like Airtable, supabase, or forward the messages thru slack. Just configure those nodes as needed."
      },
      "typeVersion": 1
    },
    {
      "id": "b696f6b3-4739-4629-8059-78077612b4e0",
      "name": "Send Email",
      "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": "\"[email protected]\" <[email protected]>",
          "date": "Tue, 3 Jun 2025 22:31:43 -0400",
          "from": "Kyle Morse <[email protected]>",
          "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": "<[email protected]>",
            "content-type": "multipart/alternative; boundary=\"000000000000ec8e590636b5ccb9\"",
            "delivered-to": "[email protected]",
            "mime-version": "1.0",
            "received-spf": "pass (google.com: domain of [email protected] 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 [email protected] header.s=20230601 header.b=rbNYIPHT; spf=pass (google.com: domain of [email protected] designates 209.85.220.41 as permitted sender) [email protected]; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=strata52.com; dara=pass [email protected]",
            "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 [email protected] header.s=20230601 header.b=rbNYIPHT; spf=pass (google.com: domain of [email protected] designates 209.85.220.41 as permitted sender) [email protected]; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=strata52.com; dara=pass [email protected]"
          },
          "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:[email protected]\" target=\"_blank\">[email protected]</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 ///// [email protected] //\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
          }
        ]
      ]
    }
  }
}

相关工作流