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 →
{
"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
}
]
]
}
}
}
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 →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
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
Created by: Peyton Leveillee Last updated: October 2025
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
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
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