AutomationFlowsAI & RAG › AI-Powered Healthcare Email Outreach

AI-Powered Healthcare Email Outreach

Original n8n title: Healthcare Email Autoresponder - Daily Outreach

Healthcare Email Autoresponder - Daily Outreach. Uses agent, lmChatOpenAi, gmail, stickyNote. Scheduled trigger; 19 nodes.

Cron / scheduled trigger★★★★☆ complexityAI-powered19 nodesAgentOpenAI ChatGmailGoogle Sheets
AI & RAG Trigger: Cron / scheduled Nodes: 19 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Agent → Gmail recipe pattern — see all workflows that pair these two integrations.

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": "Healthcare Email Autoresponder - Daily Outreach",
  "tags": [
    "email",
    "healthcare",
    "automation",
    "outreach",
    "ai-powered"
  ],
  "nodes": [
    {
      "id": "705daa92-e852-4e55-b508-ffab19804356",
      "name": "AI Email Generator",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -464,
        208
      ],
      "parameters": {
        "text": "=Write a friendly email to {{ $json['First Name'] }}\n\nRefer to System message for Context\n",
        "options": {
          "systemMessage": "=You are a professional healthcare representative writing personalized outreach emails.\n\nUse the following details to craft a friendly and professional email:\n\nRecipient Name: {{ $json['First Name'] }}\n\nWrite an email with the subject line: \"Medical joke of the day\"\n\nEmail body:\nHi {{ $json['First Name'] }},\n\nWhy did the nurse carry a pencil to every shift?\nBecause charting smiles is just as important as charting vitals! \ud83e\ude7a\u270f\ufe0f\ud83d\ude04\n\nA little laughter is great medicine\u2014no co-pay required.\nWishing you a week full of wellness and giggles!\nWarm regards,\n\n[YOUR NAME HERE]  \n[YOUR TITLE HERE]  \n[YOUR COMPANY HERE]  \n\ud83d\udcde ([YOUR PHONE NUMBER])  \n\ud83d\udce7 ([YOUR EMAIL])  \n\ud83c\udf10 ([YOUR WEBSITE])\n\nReturn only the full email body as plain text."
        },
        "promptType": "define"
      },
      "typeVersion": 1.9,
      "alwaysOutputData": true
    },
    {
      "id": "27bc7664-f669-4c7c-b5c1-1af7c7659937",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -640,
        288
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "b508c9c4-2f17-4ac9-a551-373ceb833032",
      "name": "Send Email",
      "type": "n8n-nodes-base.gmail",
      "position": [
        192,
        208
      ],
      "parameters": {
        "sendTo": "={{ $('Healthcare_Contact_List').item.json.Email }}",
        "message": "={{ $json.output }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "=Medical joke of the day",
        "emailType": "text"
      },
      "typeVersion": 2.1
    },
    {
      "id": "46098a2d-31cc-4fab-9921-2e3547a04d4e",
      "name": "Random Wait (2-5min)",
      "type": "n8n-nodes-base.wait",
      "position": [
        432,
        208
      ],
      "parameters": {
        "unit": "minutes",
        "amount": "={{ Math.floor(Math.random() * 4) + 2 }}"
      },
      "typeVersion": 1.1
    },
    {
      "id": "2bf6901a-93c0-4d9f-b00a-3c3397ede2ee",
      "name": "\ud83d\udccb Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1136,
        -304
      ],
      "parameters": {
        "color": 1,
        "width": 660,
        "height": 320,
        "content": "## Healthcare Email Autoresponder \ud83d\udce7\n\n**What this workflow does:**\n- Sends personalized healthcare jokes daily to your contact list\n- Tracks email status in Google Sheets\n- Limits to 10 emails per run to avoid spam\n- Random delays between emails (2-5 minutes)\n\n**Setup Required:**\n1. Connect your Gmail account\n2. Connect your Google Sheets with contact list\n3. Add your OpenAI API key\n4. Customize the email template in the AI node\n\n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
      },
      "typeVersion": 1
    },
    {
      "id": "c5efe867-8991-4abb-bd99-b714a85bb742",
      "name": "\u2728 AI Personalization",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        -16
      ],
      "parameters": {
        "color": 3,
        "width": 560,
        "height": 460,
        "content": "## \u2728 AI Email Generation\n\nCustomizes emails with:\n- Recipient's first name\n- Healthcare-themed humor\n- Professional signature\n\n**To customize:**\n1. Edit the system message\n2. Change the email template\n3. Update contact details\n\n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
      },
      "typeVersion": 1
    },
    {
      "id": "b8a01b3d-a9f6-4fb5-a711-eb01f497d577",
      "name": "\u23f0 Rate Limiting",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        -304
      ],
      "parameters": {
        "color": 4,
        "width": 200,
        "height": 740,
        "content": "## \u23f0 Smart Timing\n\nRandom 2-5 minute delays between emails to:\n- Avoid being flagged as spam\n- Appear more natural\n- Respect recipient inboxes\n\n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
      },
      "typeVersion": 1
    },
    {
      "id": "13d7a01d-b426-496f-9dec-d164aec411bb",
      "name": "\ud83c\udfaf Batch Control",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -144,
        -304
      ],
      "parameters": {
        "color": 5,
        "width": 220,
        "height": 740,
        "content": "## \ud83c\udfaf Batch Processing\n\nLimits to 10 emails per run to:\n- Prevent overwhelming your email service\n- Stay within API limits\n- Allow for manual monitoring\n\n**To adjust:** Change maxItems in Limit node\n\n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
      },
      "typeVersion": 1
    },
    {
      "id": "8653790a-57ef-4a25-b707-cadb2648a92f",
      "name": "\ud83d\udcca Progress Tracking",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        112,
        -304
      ],
      "parameters": {
        "color": 2,
        "height": 740,
        "content": "## \ud83d\udcca Email Tracking\n\nUpdates Google Sheet with:\n- Timestamp when email sent\n- Prevents duplicate sends\n- Tracks campaign progress\n\n**Required columns:**\n- First Name\n- Email\n- Emailed (for timestamp)\n\n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
      },
      "typeVersion": 1
    },
    {
      "id": "1a02bc39-cd6b-467d-9f65-4a86183eea31",
      "name": "\ud83d\udd04 Sequential Processing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -464,
        -304
      ],
      "parameters": {
        "color": 3,
        "width": 300,
        "height": 260,
        "content": "## \ud83d\udd04 Processing Flow\n\nProcesses contacts one at a time:\n1. Validates email exists\n2. Generates personalized content\n3. Sends email\n4. Updates tracking\n5. Waits before next\n\n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
      },
      "typeVersion": 1
    },
    {
      "id": "d9c64ea9-ebc9-4e04-9383-6ea90cc629ae",
      "name": "Validate Email Address",
      "type": "n8n-nodes-base.if",
      "position": [
        -608,
        -208
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "6f8c6147-ff4d-4595-9901-920af56a9338",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "Email",
              "rightValue": ""
            },
            {
              "id": "e69364ce-e8b3-4d15-8832-383067a26f2d",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{$json[\"Email\"]}}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "60bbf82f-34f9-4d06-becb-ffbf57200447",
      "name": "Skip Invalid Email",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -976,
        224
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f506ec0f-9104-4060-8a3f-8345ae82baa7",
      "name": "Process One by One",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -368,
        -176
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "1add1e3a-b8a9-4993-bbbc-f7c47e3daa26",
      "name": "Prepare Email Data",
      "type": "n8n-nodes-base.set",
      "position": [
        -80,
        208
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "75df7330-f51c-4dd1-bb30-586787576d60",
              "name": "Email",
              "type": "string",
              "value": "={{ $json.Email }}"
            },
            {
              "id": "d9c981b6-ccd0-4083-ae4c-852d3e0f21c6",
              "name": "First Name",
              "type": "string",
              "value": "={{ $json['First Name'] }}"
            },
            {
              "id": "57f579f2-6b1d-4c15-ab05-a5f9231cad3a",
              "name": "EmailContent",
              "type": "string",
              "value": "={{ $node[\"AI Email Generator\"].json[\"output\"] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4,
      "alwaysOutputData": false
    },
    {
      "id": "a279d1d1-28f3-49ae-9481-f303771a0e29",
      "name": "Limit to 10 Contacts",
      "type": "n8n-nodes-base.limit",
      "position": [
        -768,
        -208
      ],
      "parameters": {
        "maxItems": 10
      },
      "typeVersion": 1
    },
    {
      "id": "0a3b8596-d0c2-481f-979a-b7e3b3b70bd3",
      "name": "\ud83d\ude80 Use Cases",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1136,
        -16
      ],
      "parameters": {
        "color": 6,
        "width": 420,
        "height": 460,
        "content": "## \ud83d\ude80 Automated Healthcare Outreach\n\n**Perfect for:**\n- Healthcare professionals\n- Medical practices\n- Wellness coaches\n- Health educators\n\n**Benefits:**\n- Builds relationships through humor\n- Maintains regular contact\n- Professional yet friendly approach\n- Fully automated daily outreach\n\n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)"
      },
      "typeVersion": 1
    },
    {
      "id": "12f7f1c7-e58d-4b00-91b3-8a390697426f",
      "name": "Healthcare_Contact_List",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -944,
        -208
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "Emailed"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_GOOGLE_SHEET_ID_HERE"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "66e2da4a-1b0f-462d-aad9-04d3ce778500",
      "name": "Update Email Status",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        432,
        -64
      ],
      "parameters": {
        "columns": {
          "value": {
            "Emailed": "={{ $now }}",
            "row_number": "={{ $('Healthcare_Contact_List').item.json.row_number }}"
          },
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ]
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "name",
          "value": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_GOOGLE_SHEET_ID_HERE"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "f2c8bf61-3e37-477b-9894-e0d51d381f13",
      "name": "Daily Trigger (1 PM)",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1104,
        -208
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 13
            }
          ]
        }
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "settings": {
    "timezone": "America/Chicago",
    "executionOrder": "v1"
  },
  "connections": {
    "Send Email": {
      "main": [
        [
          {
            "node": "Random Wait (2-5min)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Email Generator",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Email Generator": {
      "main": [
        [
          {
            "node": "Prepare Email Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Email Data": {
      "main": [
        [
          {
            "node": "Send Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process One by One": {
      "main": [
        [],
        [
          {
            "node": "AI Email Generator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily Trigger (1 PM)": {
      "main": [
        [
          {
            "node": "Healthcare_Contact_List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit to 10 Contacts": {
      "main": [
        [
          {
            "node": "Validate Email Address",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Random Wait (2-5min)": {
      "main": [
        [
          {
            "node": "Process One by One",
            "type": "main",
            "index": 0
          },
          {
            "node": "Update Email Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate Email Address": {
      "main": [
        [
          {
            "node": "Process One by One",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Skip Invalid Email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Healthcare_Contact_List": {
      "main": [
        [
          {
            "node": "Limit to 10 Contacts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

How this works

This workflow automates personalised daily email outreach for healthcare professionals, saving hours of manual drafting and ensuring consistent patient engagement without repetitive effort. It suits clinic managers or marketing teams aiming to nurture leads or follow up on appointments through targeted, compliant communications. The key step involves an AI agent powered by OpenAI generating tailored email content, which is then sent via Gmail and logged in Google Sheets for tracking.

Use this workflow for routine daily reminders, such as appointment confirmations or health tips, where volume is moderate and personalisation adds value. Avoid it for high-stakes legal communications requiring human review, or when emails exceed thousands daily due to built-in rate limiting. Common variations include adjusting the cron schedule for weekly sends or integrating additional data sources like patient records from Google Sheets for deeper customisation.

About this workflow

Healthcare Email Autoresponder - Daily Outreach. Uses agent, lmChatOpenAi, gmail, stickyNote. Scheduled trigger; 19 nodes.

Source: https://github.com/ScraperNode/awesome-n8n-templates/blob/main/templates/ai-and-llm/7854-send-personalized-healthcare-joke-emails-with-openai-gmail-and-google-sheets/workflow.json — 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

This n8n automation workflow automates the creation, scripting, production, and posting of YouTube videos. It leverages AI (OpenAI), image generation (PIAPI), video rendering (Shotstack), and platform

Agent, OpenAI Chat, Airtable Tool +7
AI & RAG

Created by: Peyton Leveillee Last updated: October 2025

OpenAI Chat, Google Sheets, HTTP Request +5
AI & RAG

The Multi-Model Agency Content Engine is a high-performance editorial system designed for agencies. It solves the "blank page" problem by alternating between real-world social proof and strategic expe

Google Sheets, Gmail, Google Drive +6
AI & RAG

This workflow automates the creation, rendering, approval, and posting of TikTok-style POV (Point of View) videos to Instagram, with cross-posting to Facebook and YouTube. It eliminates manual video p

OpenAI Chat, Output Parser Item List, HTTP Request +10
AI & RAG

Generate SEO-friendly WordPress blog drafts from a Google Sheets queue using OpenAI. This workflow writes full HTML blog content, selects a relevant Pexels featured image with a second AI Agent, uploa

HTTP Request, Agent, Google Sheets +4