This workflow corresponds to n8n.io template #9446 — we link there as the canonical source.
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 →
{
"id": "fWklcJx1u2X1B2UA",
"name": "AI Medical Intake: Smart Triage, Provider Briefs & Emergency Detection",
"tags": [
{
"id": "TDW7E4RVCMchXf5b",
"name": "published",
"createdAt": "2025-10-13T01:18:01.305Z",
"updatedAt": "2025-10-13T01:18:01.305Z"
}
],
"nodes": [
{
"id": "71b9b490-6060-4af5-94e8-34525de13db5",
"name": "Extract Patient Data",
"type": "n8n-nodes-base.set",
"position": [
-1280,
240
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "patient_name",
"name": "patient_name",
"type": "string",
"value": "={{ $json.q3_fullName?.first || '' }} {{ $json.q3_fullName?.last || '' }}"
},
{
"id": "patient_email",
"name": "patient_email",
"type": "string",
"value": "={{ $json.q4_email }}"
},
{
"id": "patient_phone",
"name": "patient_phone",
"type": "string",
"value": "={{ $json.q5_phone }}"
},
{
"id": "date_of_birth",
"name": "date_of_birth",
"type": "string",
"value": "={{ $json.q6_dateOfBirth }}"
},
{
"id": "reason_for_visit",
"name": "reason_for_visit",
"type": "string",
"value": "={{ $json.q7_reasonForVisit }}"
},
{
"id": "symptoms",
"name": "symptoms",
"type": "string",
"value": "={{ $json.q8_symptoms }}"
},
{
"id": "symptom_duration",
"name": "symptom_duration",
"type": "string",
"value": "={{ $json.q9_duration }}"
},
{
"id": "pain_level",
"name": "pain_level",
"type": "string",
"value": "={{ $json.q10_painLevel || 'N/A' }}"
},
{
"id": "current_medications",
"name": "current_medications",
"type": "string",
"value": "={{ $json.q11_medications || 'None' }}"
},
{
"id": "allergies",
"name": "allergies",
"type": "string",
"value": "={{ $json.q12_allergies || 'None' }}"
},
{
"id": "medical_history",
"name": "medical_history",
"type": "string",
"value": "={{ $json.q13_medicalHistory || 'None reported' }}"
},
{
"id": "insurance_provider",
"name": "insurance_provider",
"type": "string",
"value": "={{ $json.q14_insurance || 'Self-pay' }}"
},
{
"id": "preferred_date",
"name": "preferred_date",
"type": "string",
"value": "={{ $json.q15_preferredDate }}"
},
{
"id": "preferred_time",
"name": "preferred_time",
"type": "string",
"value": "={{ $json.q16_preferredTime }}"
},
{
"id": "intake_id",
"name": "intake_id",
"type": "string",
"value": "=MED-{{ $json.submissionID }}-{{ Date.now() }}"
},
{
"id": "submission_date",
"name": "submission_date",
"type": "string",
"value": "={{ new Date().toISOString() }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "940ff4ab-345c-474c-9979-3b47f3abcbcb",
"name": "Calculate Patient Info",
"type": "n8n-nodes-base.code",
"position": [
-1040,
240
],
"parameters": {
"jsCode": "// Calculate patient age from date of birth\nconst items = $input.all();\nconst results = [];\n\nfor (const item of items) {\n const dob = new Date(item.json.date_of_birth);\n const today = new Date();\n let age = today.getFullYear() - dob.getFullYear();\n const monthDiff = today.getMonth() - dob.getMonth();\n \n if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < dob.getDate())) {\n age--;\n }\n \n // Determine patient category\n let patientCategory = 'adult';\n if (age < 2) patientCategory = 'infant';\n else if (age < 12) patientCategory = 'child';\n else if (age < 18) patientCategory = 'adolescent';\n else if (age >= 65) patientCategory = 'senior';\n \n results.push({\n json: {\n ...item.json,\n patient_age: age,\n patient_category: patientCategory\n }\n });\n}\n\nreturn results;"
},
"typeVersion": 2
},
{
"id": "56257aaf-3cd0-4c28-bd10-ba68c746df93",
"name": "AI Medical Triage & Analysis",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-640,
240
],
"parameters": {
"text": "=You are an expert medical triage AI assistant helping healthcare providers prepare for patient appointments. Analyze this patient intake information and provide a comprehensive pre-appointment brief.\n\n## PATIENT INFORMATION\n\n**Name:** {{ $json.patient_name }}\n**Age:** {{ $json.patient_age }} years old ({{ $json.patient_category }})\n**DOB:** {{ $json.date_of_birth }}\n\n**Contact:**\n- Email: {{ $json.patient_email }}\n- Phone: {{ $json.patient_phone }}\n\n**Insurance:** {{ $json.insurance_provider }}\n\n---\n\n## CHIEF COMPLAINT & SYMPTOMS\n\n**Reason for Visit:** {{ $json.reason_for_visit }}\n\n**Symptoms:** {{ $json.symptoms }}\n\n**Duration:** {{ $json.symptom_duration }}\n\n**Pain Level:** {{ $json.pain_level }} (0-10 scale)\n\n---\n\n## MEDICAL BACKGROUND\n\n**Current Medications:** {{ $json.current_medications }}\n\n**Known Allergies:** {{ $json.allergies }}\n\n**Medical History:** {{ $json.medical_history }}\n\n---\n\n## YOUR TASK\n\nProvide a detailed medical analysis with the following structure:\n\n### 1. URGENCY ASSESSMENT\nClassify the urgency level based on symptoms:\n- **emergency**: Life-threatening (chest pain, severe bleeding, difficulty breathing, stroke symptoms, severe allergic reaction)\n- **urgent**: Needs same-day attention (high fever, severe pain, infection signs, injury)\n- **routine**: Can wait for regular appointment (chronic condition follow-up, preventive care)\n- **non_urgent**: Wellness visit, routine check-up, minor concerns\n\nProvide clear reasoning for the urgency classification.\n\n### 2. SYMPTOM ANALYSIS\n- Summarize primary and secondary symptoms\n- Identify any red flag symptoms requiring immediate attention\n- Note symptom patterns or progressions\n- Consider patient age and medical history context\n\n### 3. POSSIBLE CONDITIONS (Differential Diagnosis)\nList 3-5 possible conditions that could explain the symptoms, ordered by likelihood:\n1. Most likely condition with brief explanation\n2. Second possibility\n3. Third possibility\n(Continue as appropriate)\n\n**Important:** This is for provider preparation only, not a diagnosis.\n\n### 4. CRITICAL ALERTS\nFlag any of the following:\n- **Drug Interactions:** Between current medications and common treatments\n- **Allergy Concerns:** Medications/treatments to avoid\n- **Age Considerations:** Pediatric, geriatric, or pregnancy concerns\n- **Comorbidity Risks:** Existing conditions that complicate treatment\n- **Red Flags:** Symptoms suggesting serious underlying conditions\n\n### 5. RECOMMENDED PROVIDER TYPE\nWho should see this patient:\n- Primary Care Physician\n- Specialist (specify: cardiologist, dermatologist, etc.)\n- Urgent Care\n- Emergency Department\n- Telehealth appropriate\n\n### 6. PRE-APPOINTMENT PREPARATION\n\n**For Provider:**\n- Key questions to ask during visit\n- Examinations likely needed\n- Tests/labs to consider ordering\n- Reference materials to review\n\n**For Patient:**\n- What to bring (previous test results, medication list, etc.)\n- Pre-appointment instructions (fasting, medication holds, etc.)\n- What to expect during visit\n\n### 7. ESTIMATED APPOINTMENT DURATION\n- Quick visit (15 min)\n- Standard visit (30 min)\n- Extended visit (45-60 min)\n- Complex case (60+ min)\n\n### 8. APPOINTMENT PRIORITY SCORE\nRate 0-100 where:\n- 90-100: Emergency (immediate)\n- 70-89: Urgent (within 24-48 hours)\n- 40-69: Routine (within 1-2 weeks)\n- 0-39: Non-urgent (flexible scheduling)\n\nBe thorough, accurate, and prioritize patient safety. When in doubt, err on the side of caution with higher urgency levels.",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "2af7aaa5-bf80-4bcc-9076-533ce01881e5",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-704,
496
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o"
},
"options": {
"temperature": 0.3
}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "a6542fce-7b17-4368-918c-e6068dd3cff6",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-416,
496
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"type\": \"object\",\n \"required\": [\n \"urgency_level\",\n \"urgency_reasoning\",\n \"priority_score\",\n \"symptom_summary\",\n \"red_flag_symptoms\",\n \"possible_conditions\",\n \"critical_alerts\",\n \"recommended_provider\",\n \"recommended_specialty\",\n \"questions_for_provider\",\n \"exams_needed\",\n \"tests_to_consider\",\n \"patient_instructions\",\n \"items_to_bring\",\n \"appointment_duration\",\n \"detailed_analysis_markdown\"\n ],\n \"properties\": {\n \"urgency_level\": {\n \"type\": \"string\",\n \"enum\": [\"emergency\", \"urgent\", \"routine\", \"non_urgent\"]\n },\n \"urgency_reasoning\": {\n \"type\": \"string\",\n \"description\": \"Why this urgency level was assigned\"\n },\n \"priority_score\": {\n \"type\": \"integer\",\n \"minimum\": 0,\n \"maximum\": 100\n },\n \"symptom_summary\": {\n \"type\": \"string\",\n \"description\": \"Concise summary of key symptoms\"\n },\n \"red_flag_symptoms\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"},\n \"description\": \"Critical symptoms requiring attention\"\n },\n \"possible_conditions\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"condition\": {\"type\": \"string\"},\n \"likelihood\": {\"type\": \"string\"},\n \"explanation\": {\"type\": \"string\"}\n }\n }\n },\n \"critical_alerts\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"},\n \"description\": \"Drug interactions, allergies, age concerns\"\n },\n \"recommended_provider\": {\n \"type\": \"string\",\n \"description\": \"Type of provider needed\"\n },\n \"recommended_specialty\": {\n \"type\": \"string\",\n \"description\": \"If specialist needed, which one\"\n },\n \"questions_for_provider\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"}\n },\n \"exams_needed\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"}\n },\n \"tests_to_consider\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"}\n },\n \"patient_instructions\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"}\n },\n \"items_to_bring\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"}\n },\n \"appointment_duration\": {\n \"type\": \"string\",\n \"enum\": [\"15min\", \"30min\", \"45min\", \"60min\"]\n },\n \"detailed_analysis_markdown\": {\n \"type\": \"string\",\n \"description\": \"Full analysis in markdown format\"\n }\n }\n}"
},
"typeVersion": 1.3
},
{
"id": "c7ab4cf1-f684-431a-93ad-687f878bbb57",
"name": "Is Emergency?",
"type": "n8n-nodes-base.if",
"position": [
-240,
240
],
"parameters": {
"options": {},
"conditions": {
"options": {},
"conditions": [
{
"id": "emergency-check",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.urgency_level }}",
"rightValue": "emergency"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "89a54f87-502c-4a6d-b5f3-081af34374fe",
"name": "Is Urgent?",
"type": "n8n-nodes-base.if",
"position": [
-240,
480
],
"parameters": {
"options": {},
"conditions": {
"options": {},
"conditions": [
{
"id": "urgent-check",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.urgency_level }}",
"rightValue": "urgent"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "2162d6bc-cd96-41f7-9902-fe98ff1cc8ae",
"name": "Alert Emergency Team (Slack)",
"type": "n8n-nodes-base.httpRequest",
"position": [
176,
-48
],
"parameters": {
"url": "https://slack.com/api/chat.postMessage",
"method": "POST",
"options": {},
"jsonBody": "={\n \"channel\": \"medical-emergencies\",\n \"text\": \":rotating_light: *MEDICAL EMERGENCY ALERT* :rotating_light:\\n\\n*Patient:* {{ $('Extract Patient Data').item.json.patient_name }} ({{ $('Calculate Patient Info').item.json.patient_age }}yo {{ $('Calculate Patient Info').item.json.patient_category }})\\n*Priority Score:* {{ $json.output.priority_score }}/100\\n*Urgency:* {{ $json.output.urgency_level.toUpperCase() }}\\n\\n*Chief Complaint:*\\n{{ $('Extract Patient Data').item.json.reason_for_visit }}\\n\\n*Symptoms:*\\n{{ $('Extract Patient Data').item.json.symptoms }}\\n\\n*Red Flags:*\\n{{ $json.output.red_flag_symptoms.map(flag => '\u2022 ' + flag).join('\\\\n') }}\\n\\n*Recommended Action:* {{ $json.output.urgency_reasoning }}\\n\\n:hospital: *IMMEDIATE ATTENTION REQUIRED* - Contact patient immediately at {{ $('Extract Patient Data').item.json.patient_phone }}\",\n \"blocks\": [\n {\n \"type\": \"header\",\n \"text\": {\n \"type\": \"plain_text\",\n \"text\": \":rotating_light: MEDICAL EMERGENCY\"\n }\n },\n {\n \"type\": \"section\",\n \"fields\": [\n {\n \"type\": \"mrkdwn\",\n \"text\": \"*Patient:*\\\\n{{ $('Extract Patient Data').item.json.patient_name }}\"\n },\n {\n \"type\": \"mrkdwn\",\n \"text\": \"*Age:*\\\\n{{ $('Calculate Patient Info').item.json.patient_age }} years\"\n },\n {\n \"type\": \"mrkdwn\",\n \"text\": \"*Priority:*\\\\n{{ $json.output.priority_score }}/100\"\n },\n {\n \"type\": \"mrkdwn\",\n \"text\": \"*Phone:*\\\\n{{ $('Extract Patient Data').item.json.patient_phone }}\"\n }\n ]\n },\n {\n \"type\": \"section\",\n \"text\": {\n \"type\": \"mrkdwn\",\n \"text\": \"*Symptoms:*\\\\n{{ $('Extract Patient Data').item.json.symptoms }}\"\n }\n },\n {\n \"type\": \"divider\"\n },\n {\n \"type\": \"section\",\n \"text\": {\n \"type\": \"mrkdwn\",\n \"text\": \"*:warning: Red Flags:*\\\\n{{ $json.output.red_flag_symptoms.map((flag, i) => (i+1) + '. ' + flag).join('\\\\n') }}\"\n }\n }\n ]\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.2
},
{
"id": "40c8f7d4-91f7-4aa9-ba78-52912fafa0ce",
"name": "Send Emergency Instructions",
"type": "n8n-nodes-base.gmail",
"position": [
368,
-48
],
"parameters": {
"sendTo": "={{ $('Extract Patient Data').item.json.patient_email }}",
"message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:600px;margin:0 auto;padding:20px}\n.alert-banner{background:#dc3545;color:#fff;padding:25px;text-align:center;border-radius:8px 8px 0 0}\n.alert-banner h1{margin:0;font-size:28px}\n.content{background:#fff;padding:30px;border:3px solid #dc3545}\n.urgent-box{background:#fff3cd;border:3px solid #ffc107;padding:20px;border-radius:8px;margin:20px 0;text-align:center}\n.urgent-box h2{margin:0 0 10px 0;color:#856404}\n.contact-box{background:#f8d7da;border:2px solid #dc3545;padding:15px;border-radius:5px;margin:20px 0}\nul{margin:10px 0;padding-left:20px}\nli{margin:5px 0}\n</style>\n</head>\n<body>\n<div class=\"alert-banner\">\n<h1>\ud83d\udea8 IMMEDIATE ATTENTION REQUIRED</h1>\n</div>\n<div class=\"content\">\n<p><strong>Dear {{ $('Extract Patient Data').item.json.patient_name }},</strong></p>\n\n<p>Based on the symptoms you reported in your intake form, our medical AI system has flagged your case as requiring <strong>immediate medical attention</strong>.</p>\n\n<div class=\"urgent-box\">\n<h2>\u26a0\ufe0f PLEASE TAKE ACTION NOW</h2>\n<p style=\"font-size:18px;margin:0\"><strong>Call 911 immediately</strong> or go to the nearest Emergency Department</p>\n</div>\n\n<div class=\"contact-box\">\n<p style=\"margin:0\"><strong>\ud83d\udcde Our medical team will call you within 15 minutes at:</strong><br>\n<span style=\"font-size:20px;color:#dc3545\"><strong>{{ $('Extract Patient Data').item.json.patient_phone }}</strong></span></p>\n</div>\n\n<h3>Why This Is Urgent:</h3>\n<p>{{ $json.output.urgency_reasoning }}</p>\n\n<h3>\u26a0\ufe0f Warning Signs Detected:</h3>\n<ul>\n{{ $json.output.red_flag_symptoms.map(flag => '<li><strong>' + flag + '</strong></li>').join('') }}\n</ul>\n\n<h3>What To Do Right Now:</h3>\n<ol>\n<li><strong>Call 911 or go to ER immediately</strong> if experiencing severe symptoms</li>\n<li>Have someone stay with you</li>\n<li>Bring your medications and medical records</li>\n<li>Do NOT drive yourself if symptoms are severe</li>\n</ol>\n\n<p style=\"margin-top:30px;padding-top:20px;border-top:2px solid #dc3545\"><strong>Emergency Contact Numbers:</strong><br>\n\ud83d\udcde Emergency: <strong>911</strong><br>\n\ud83d\udcde Our Clinic: <strong>(555) 123-4567</strong><br>\n\ud83d\udcde After Hours: <strong>(555) 123-4568</strong></p>\n\n<p style=\"font-size:12px;color:#666;margin-top:20px\">Intake ID: {{ $('Extract Patient Data').item.json.intake_id }}</p>\n</div>\n</body>\n</html>",
"options": {},
"subject": "=\ud83d\udea8 URGENT: Immediate Medical Attention Needed"
},
"typeVersion": 2.1
},
{
"id": "b9c68bc5-0934-48ab-b7d7-e4d67b74c596",
"name": "Alert On-Call Doctor",
"type": "n8n-nodes-base.gmail",
"position": [
576,
-48
],
"parameters": {
"sendTo": "user@example.com",
"message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:800px;margin:0 auto;padding:20px}\n.header{background:#dc3545;color:#fff;padding:20px;text-align:center;border-radius:8px 8px 0 0}\n.content{background:#fff;padding:30px;border:2px solid #dc3545}\n.patient-info{background:#f8f9fa;padding:20px;border-radius:5px;margin:20px 0}\n.vital-info{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}\n.info-box{background:#fff3cd;padding:15px;border-left:4px solid #ffc107}\n.red-flags{background:#f8d7da;padding:20px;border-left:4px solid #dc3545;margin:20px 0}\n.analysis{background:#e7f3ff;padding:20px;border-radius:5px;margin:20px 0}\ntable{width:100%;border-collapse:collapse;margin:15px 0}\ntable th{background:#dc3545;color:#fff;padding:12px;text-align:left}\ntable td{padding:12px;border-bottom:1px solid #ddd}\n</style>\n</head>\n<body>\n<div class=\"header\">\n<h1 style=\"margin:0\">\ud83d\udea8 EMERGENCY PATIENT ALERT</h1>\n<p style=\"margin:5px 0 0 0;font-size:18px\">Immediate physician review required</p>\n</div>\n<div class=\"content\">\n\n<div class=\"patient-info\">\n<h2 style=\"margin-top:0;color:#dc3545\">Patient Information</h2>\n<table>\n<tr><td><strong>Name:</strong></td><td>{{ $('Extract Patient Data').item.json.patient_name }}</td></tr>\n<tr><td><strong>Age:</strong></td><td>{{ $('Calculate Patient Info').item.json.patient_age }} years ({{ $('Calculate Patient Info').item.json.patient_category }})</td></tr>\n<tr><td><strong>DOB:</strong></td><td>{{ $('Extract Patient Data').item.json.date_of_birth }}</td></tr>\n<tr><td><strong>Phone:</strong></td><td><strong style=\"font-size:18px;color:#dc3545\">{{ $('Extract Patient Data').item.json.patient_phone }}</strong></td></tr>\n<tr><td><strong>Email:</strong></td><td>{{ $('Extract Patient Data').item.json.patient_email }}</td></tr>\n<tr><td><strong>Insurance:</strong></td><td>{{ $('Extract Patient Data').item.json.insurance_provider }}</td></tr>\n</table>\n</div>\n\n<div class=\"vital-info\">\n<div class=\"info-box\">\n<strong>Priority Score:</strong><br>\n<span style=\"font-size:32px;color:#dc3545\">{{ $json.output.priority_score }}/100</span>\n</div>\n<div class=\"info-box\">\n<strong>Urgency Level:</strong><br>\n<span style=\"font-size:24px;color:#dc3545\">{{ $json.output.urgency_level.toUpperCase() }}</span>\n</div>\n</div>\n\n<h3>Chief Complaint</h3>\n<p style=\"font-size:16px\"><strong>{{ $('Extract Patient Data').item.json.reason_for_visit }}</strong></p>\n\n<h3>Symptoms Reported</h3>\n<p>{{ $('Extract Patient Data').item.json.symptoms }}</p>\n<p><strong>Duration:</strong> {{ $('Extract Patient Data').item.json.symptom_duration }}<br>\n<strong>Pain Level:</strong> {{ $('Extract Patient Data').item.json.pain_level }}/10</p>\n\n<div class=\"red-flags\">\n<h3 style=\"margin-top:0;color:#dc3545\">\ud83d\udea8 RED FLAG SYMPTOMS</h3>\n<ul style=\"margin:0;padding-left:20px\">\n{{ $json.output.red_flag_symptoms.map(flag => '<li style=\"margin:8px 0;font-size:16px\"><strong>' + flag + '</strong></li>').join('') }}\n</ul>\n</div>\n\n<h3>\u26a0\ufe0f Critical Alerts</h3>\n<ul>\n{{ $json.output.critical_alerts.map(alert => '<li><strong>' + alert + '</strong></li>').join('') }}\n</ul>\n\n<h3>Medical Background</h3>\n<p><strong>Current Medications:</strong> {{ $('Extract Patient Data').item.json.current_medications }}<br>\n<strong>Known Allergies:</strong> <span style=\"color:#dc3545;font-weight:bold\">{{ $('Extract Patient Data').item.json.allergies }}</span><br>\n<strong>Medical History:</strong> {{ $('Extract Patient Data').item.json.medical_history }}</p>\n\n<div class=\"analysis\">\n<h3 style=\"margin-top:0\">AI Analysis & Recommendations</h3>\n<p><strong>Urgency Reasoning:</strong> {{ $json.output.urgency_reasoning }}</p>\n<p><strong>Symptom Summary:</strong> {{ $json.output.symptom_summary }}</p>\n\n<h4>Possible Conditions to Consider:</h4>\n<ol>\n{{ $json.output.possible_conditions.map(cond => '<li><strong>' + cond.condition + '</strong> (' + cond.likelihood + ')<br><em>' + cond.explanation + '</em></li>').join('') }}\n</ol>\n\n<h4>Recommended Provider:</h4>\n<p><strong>{{ $json.output.recommended_provider }}</strong>\n{{ $json.output.recommended_specialty ? ' - Specialty: ' + $json.output.recommended_specialty : '' }}</p>\n</div>\n\n<h3>Action Items for Provider</h3>\n<h4>Key Questions to Ask:</h4>\n<ul>\n{{ $json.output.questions_for_provider.map(q => '<li>' + q + '</li>').join('') }}\n</ul>\n\n<h4>Examinations Needed:</h4>\n<ul>\n{{ $json.output.exams_needed.map(exam => '<li>' + exam + '</li>').join('') }}\n</ul>\n\n<h4>Tests to Consider:</h4>\n<ul>\n{{ $json.output.tests_to_consider.map(test => '<li>' + test + '</li>').join('') }}\n</ul>\n\n<h4>Estimated Appointment Duration:</h4>\n<p><strong>{{ $json.output.appointment_duration }}</strong></p>\n\n<div style=\"margin-top:30px;padding:20px;background:#dc3545;color:#fff;border-radius:5px;text-align:center\">\n<h3 style=\"margin:0 0 10px 0\">\u26a1 IMMEDIATE ACTION REQUIRED</h3>\n<p style=\"margin:0;font-size:18px\">Please contact patient immediately at:<br>\n<strong style=\"font-size:24px\">{{ $('Extract Patient Data').item.json.patient_phone }}</strong></p>\n</div>\n\n<p style=\"margin-top:20px;padding-top:20px;border-top:1px solid #ddd;font-size:12px;color:#666\">\n<strong>Intake ID:</strong> {{ $('Extract Patient Data').item.json.intake_id }}<br>\n<strong>Submitted:</strong> {{ $('Extract Patient Data').item.json.submission_date }}<br>\n<strong>AI Analysis Date:</strong> {{ new Date().toISOString() }}\n</p>\n</div>\n</body>\n</html>",
"options": {},
"subject": "=\ud83d\udea8 EMERGENCY PATIENT - Immediate Review Required"
},
"typeVersion": 2.1
},
{
"id": "6aff2270-85cf-418c-affc-e3d259e0a959",
"name": "Notify Front Desk (Urgent)",
"type": "n8n-nodes-base.gmail",
"position": [
224,
352
],
"parameters": {
"sendTo": "user@example.com",
"message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:700px;margin:0 auto;padding:20px}\n.header{background:#ff9800;color:#fff;padding:20px;text-align:center;border-radius:8px 8px 0 0}\n.content{background:#fff;padding:30px;border:2px solid #ff9800}\n.patient-card{background:#fff3cd;padding:20px;border-radius:5px;border-left:4px solid #ff9800;margin:20px 0}\n.priority-box{background:#ffc107;color:#000;padding:15px;text-align:center;border-radius:5px;margin:20px 0}\ntable{width:100%;border-collapse:collapse;margin:15px 0}\ntable td{padding:10px;border-bottom:1px solid #ddd}\ntable td:first-child{font-weight:bold;width:40%}\n</style>\n</head>\n<body>\n<div class=\"header\">\n<h2 style=\"margin:0\">\u26a1 Urgent Scheduling Request</h2>\n</div>\n<div class=\"content\">\n<p><strong>Please schedule this patient for same-day or next-day appointment.</strong></p>\n\n<div class=\"priority-box\">\n<h3 style=\"margin:0 0 10px 0\">Priority Score: {{ $json.output.priority_score }}/100</h3>\n<p style=\"margin:0;font-size:16px\">Urgency Level: <strong>{{ $json.output.urgency_level.toUpperCase() }}</strong></p>\n</div>\n\n<div class=\"patient-card\">\n<h3 style=\"margin-top:0\">Patient Information</h3>\n<table>\n<tr><td>Name:</td><td><strong>{{ $('Extract Patient Data').item.json.patient_name }}</strong></td></tr>\n<tr><td>Age:</td><td>{{ $('Calculate Patient Info').item.json.patient_age }} years</td></tr>\n<tr><td>Phone:</td><td><strong style=\"font-size:16px\">{{ $('Extract Patient Data').item.json.patient_phone }}</strong></td></tr>\n<tr><td>Email:</td><td>{{ $('Extract Patient Data').item.json.patient_email }}</td></tr>\n<tr><td>Insurance:</td><td>{{ $('Extract Patient Data').item.json.insurance_provider }}</td></tr>\n<tr><td>Preferred Date:</td><td>{{ $('Extract Patient Data').item.json.preferred_date }}</td></tr>\n<tr><td>Preferred Time:</td><td>{{ $('Extract Patient Data').item.json.preferred_time }}</td></tr>\n</table>\n</div>\n\n<h3>Chief Complaint</h3>\n<p><strong>{{ $('Extract Patient Data').item.json.reason_for_visit }}</strong></p>\n\n<h3>Symptoms</h3>\n<p>{{ $('Extract Patient Data').item.json.symptoms }}</p>\n<p><strong>Duration:</strong> {{ $('Extract Patient Data').item.json.symptom_duration }}</p>\n\n<h3>Provider Recommendation</h3>\n<p><strong>{{ $json.output.recommended_provider }}</strong>\n{{ $json.output.recommended_specialty ? '<br>Specialty: ' + $json.output.recommended_specialty : '' }}</p>\n\n<h3>Appointment Duration</h3>\n<p>Book <strong>{{ $json.output.appointment_duration }}</strong> appointment slot</p>\n\n<h3>Action Required</h3>\n<ol>\n<li>Contact patient at <strong>{{ $('Extract Patient Data').item.json.patient_phone }}</strong></li>\n<li>Schedule within 24-48 hours</li>\n<li>Confirm insurance eligibility</li>\n<li>Send pre-appointment instructions</li>\n</ol>\n\n<p style=\"margin-top:30px;padding:20px;background:#fff3cd;border-radius:5px\">\n<strong>\ud83d\udccb Note:</strong> Patient intake form completed. Provider prep brief will be sent separately.\n</p>\n\n<p style=\"margin-top:20px;padding-top:20px;border-top:1px solid #ddd;font-size:12px;color:#666\">\nIntake ID: {{ $('Extract Patient Data').item.json.intake_id }}\n</p>\n</div>\n</body>\n</html>",
"options": {},
"subject": "=\u26a1 Urgent Patient - Schedule ASAP - {{ $('Extract Patient Data').item.json.patient_name }}"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "ca4a10ac-6a8f-4b47-9d2d-aa6a4308697e",
"name": "Send Patient Confirmation (Urgent)",
"type": "n8n-nodes-base.gmail",
"position": [
464,
352
],
"parameters": {
"sendTo": "={{ $('Extract Patient Data').item.json.patient_email }}",
"message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:600px;margin:0 auto;padding:20px}\n.header{background:#ff9800;color:#fff;padding:20px;text-align:center;border-radius:8px 8px 0 0}\n.content{background:#fff;padding:30px;border:1px solid #ddd}\n.info-box{background:#fff3cd;padding:15px;border-radius:5px;margin:20px 0}\nul{margin:10px 0;padding-left:20px}\n</style>\n</head>\n<body>\n<div class=\"header\">\n<h2 style=\"margin:0\">We've Received Your Information</h2>\n</div>\n<div class=\"content\">\n<p>Dear {{ $('Extract Patient Data').item.json.patient_name }},</p>\n\n<p>Thank you for completing your medical intake form. Based on your symptoms, we'd like to see you soon.</p>\n\n<div class=\"info-box\">\n<p style=\"margin:0\"><strong>\u26a1 Priority Status: Urgent</strong></p>\n<p style=\"margin:5px 0 0 0\">Our scheduling team will contact you within the next few hours to arrange an appointment in the next 24-48 hours.</p>\n</div>\n\n<h3>What to Expect</h3>\n<p>Our team has reviewed your intake information and has prepared for your visit. You'll receive a call from our front desk at <strong>{{ $('Extract Patient Data').item.json.patient_phone }}</strong> to schedule your appointment.</p>\n\n<h3>What to Bring</h3>\n<ul>\n{{ $json.output.items_to_bring.map(item => '<li>' + item + '</li>').join('') }}\n</ul>\n\n<h3>Pre-Appointment Instructions</h3>\n<ul>\n{{ $json.output.patient_instructions.map(instruction => '<li>' + instruction + '</li>').join('') }}\n</ul>\n\n<h3>If Your Symptoms Worsen</h3>\n<p>If you experience any of the following before your appointment:</p>\n<ul>\n<li>Severe or worsening symptoms</li>\n<li>Difficulty breathing</li>\n<li>Chest pain</li>\n<li>Severe bleeding</li>\n</ul>\n<p><strong>Call 911 or go to the nearest Emergency Department immediately.</strong></p>\n\n<h3>Contact Us</h3>\n<p>\ud83d\udcde Office: (555) 123-4567<br>\n\ud83d\udcde After Hours: (555) 123-4568<br>\n\ud83d\udce7 Email: appointments@clinic.com</p>\n\n<p>We look forward to seeing you soon.</p>\n\n<p>Best regards,<br>\n<strong>Your Healthcare Team</strong></p>\n\n<p style=\"margin-top:30px;padding-top:20px;border-top:1px solid #ddd;font-size:12px;color:#666\">\nIntake ID: {{ $('Extract Patient Data').item.json.intake_id }}\n</p>\n</div>\n</body>\n</html>",
"options": {},
"subject": "=Your Medical Appointment - Next Steps"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "d3bc5913-96a0-4cc6-8c16-9778fadded37",
"name": "Notify Scheduler (Routine)",
"type": "n8n-nodes-base.gmail",
"position": [
208,
816
],
"parameters": {
"sendTo": "user@example.com",
"message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:700px;margin:0 auto;padding:20px}\n.header{background:#667eea;color:#fff;padding:20px;text-align:center;border-radius:8px 8px 0 0}\n.content{background:#fff;padding:30px;border:1px solid #ddd}\n.patient-card{background:#f8f9fa;padding:20px;border-radius:5px;margin:20px 0}\ntable{width:100%;border-collapse:collapse}\ntable td{padding:10px;border-bottom:1px solid #ddd}\ntable td:first-child{font-weight:bold;width:35%}\n</style>\n</head>\n<body>\n<div class=\"header\">\n<h2 style=\"margin:0\">\ud83d\udccb New Appointment Request</h2>\n</div>\n<div class=\"content\">\n<p>A new patient has completed their intake form. Please schedule an appointment.</p>\n\n<div class=\"patient-card\">\n<h3 style=\"margin-top:0\">Patient Details</h3>\n<table>\n<tr><td>Name:</td><td><strong>{{ $('Extract Patient Data').item.json.patient_name }}</strong></td></tr>\n<tr><td>Age:</td><td>{{ $('Calculate Patient Info').item.json.patient_age }} years ({{ $('Calculate Patient Info').item.json.patient_category }})</td></tr>\n<tr><td>Phone:</td><td><strong>{{ $('Extract Patient Data').item.json.patient_phone }}</strong></td></tr>\n<tr><td>Email:</td><td>{{ $('Extract Patient Data').item.json.patient_email }}</td></tr>\n<tr><td>Insurance:</td><td>{{ $('Extract Patient Data').item.json.insurance_provider }}</td></tr>\n<tr><td>Preferred Date:</td><td>{{ $('Extract Patient Data').item.json.preferred_date }}</td></tr>\n<tr><td>Preferred Time:</td><td>{{ $('Extract Patient Data').item.json.preferred_time }}</td></tr>\n</table>\n</div>\n\n<h3>Appointment Details</h3>\n<p><strong>Visit Type:</strong> {{ $('Extract Patient Data').item.json.reason_for_visit }}<br>\n<strong>Recommended Provider:</strong> {{ $json.output.recommended_provider }}<br>\n<strong>Duration:</strong> {{ $json.output.appointment_duration }}<br>\n<strong>Priority:</strong> {{ $json.output.urgency_level }}</p>\n\n<h3>Scheduling Instructions</h3>\n<p>Schedule within 1-2 weeks at patient's preferred time.</p>\n\n<p style=\"margin-top:30px;padding-top:20px;border-top:1px solid #ddd;font-size:12px;color:#666\">\nIntake ID: {{ $('Extract Patient Data').item.json.intake_id }}\n</p>\n</div>\n</body>\n</html>",
"options": {},
"subject": "=New Appointment Request - {{ $('Extract Patient Data').item.json.patient_name }}"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "807c0df0-e1fc-4374-bc07-b506d2dda06e",
"name": "Send Patient Confirmation (Routine)",
"type": "n8n-nodes-base.gmail",
"position": [
576,
816
],
"parameters": {
"sendTo": "={{ $('Extract Patient Data').item.json.patient_email }}",
"message": "=<!DOCTYPE html>\n<html>\n<head>\n<style>\nbody{font-family:Arial,sans-serif;line-height:1.6;color:#333;max-width:600px;margin:0 auto;padding:20px}\n.header{background:#667eea;color:#fff;padding:20px;text-align:center;border-radius:8px 8px 0 0}\n.content{background:#fff;padding:30px;border:1px solid #ddd}\n.info-box{background:#e7f3ff;padding:15px;border-radius:5px;margin:20px 0}\n</style>\n</head>\n<body>\n<div class=\"header\">\n<h2 style=\"margin:0\">Thank You for Your Submission</h2>\n</div>\n<div class=\"content\">\n<p>Dear {{ $('Extract Patient Data').item.json.patient_name }},</p>\n\n<p>Thank you for completing your medical intake form. We've received your information and will be in touch shortly to schedule your appointment.</p>\n\n<div class=\"info-box\">\n<p style=\"margin:0\"><strong>\ud83d\udcc5 Next Steps</strong></p>\n<p style=\"margin:5px 0 0 0\">Our scheduling team will contact you within 1-2 business days at <strong>{{ $('Extract Patient Data').item.json.patient_phone }}</strong> to arrange an appointment that works with your schedule.</p>\n</div>\n\n<h3>Your Preferred Appointment Time</h3>\n<p><strong>Date:</strong> {{ $('Extract Patient Data').item.json.preferred_date }}<br>\n<strong>Time:</strong> {{ $('Extract Patient Data').item.json.preferred_time }}</p>\n\n<p>We'll do our best to accommodate your preferences.</p>\n\n<h3>What to Bring</h3>\n<ul>\n{{ $json.output.items_to_bring.map(item => '<li>' + item + '</li>').join('') }}\n</ul>\n\n<h3>Before Your Appointment</h3>\n<ul>\n{{ $json.output.patient_instructions.map(instruction => '<li>' + instruction + '</li>').join('') }}\n</ul>\n\n<h3>Questions?</h3>\n<p>If you have any questions or if your symptoms change, please don't hesitate to contact us:</p>\n<p>\ud83d\udcde Office: (555) 123-4567<br>\n\ud83d\udce7 Email: appointments@clinic.com</p>\n\n<p>We look forward to caring for you.</p>\n\n<p>Warm regards,<br>\n<strong>Your Healthcare Team</strong></p>\n\n<p style=\"margin-top:30px;padding-top:20px;border-top:1px solid #ddd;font-size:12px;color:#666\">\nIntake ID: {{ $('Extract Patient Data').item.json.intake_id }}\n</p>\n</div>\n</body>\n</html>",
"options": {},
"subject": "=Thank You - We'll Schedule Your Appointment Soon"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "c54705c2-087d-4719-8fa4-9f39cafae5db",
"name": "Log to Patient Database",
"type": "n8n-nodes-base.googleSheets",
"position": [
1120,
272
],
"parameters": {
"columns": {
"value": {
"status": "={{ $json.status || 'Pending Scheduling' }}",
"symptoms": "={{ $('Extract Patient Data').item.json.symptoms }}",
"allergies": "={{ $('Extract Patient Data').item.json.allergies }}",
"insurance": "={{ $('Extract Patient Data').item.json.insurance_provider }}",
"intake_id": "={{ $('Extract Patient Data').item.json.intake_id }}",
"red_flags": "={{ $json.output.red_flag_symptoms.join('; ') }}",
"pain_level": "={{ $('Extract Patient Data').item.json.pain_level }}",
"medications": "={{ $('Extract Patient Data').item.json.current_medications }}",
"patient_age": "={{ $('Calculate Patient Info').item.json.patient_age }}",
"patient_name": "={{ $('Extract Patient Data').item.json.patient_name }}",
"patient_email": "={{ $('Extract Patient Data').item.json.patient_email }}",
"patient_phone": "={{ $('Extract Patient Data').item.json.patient_phone }}",
"urgency_level": "={{ $json.output.urgency_level }}",
"priority_score": "={{ $json.output.priority_score }}",
"submission_date": "={{ $('Extract Patient Data').item.json.submission_date }}",
"patient_category": "={{ $('Calculate Patient Info').item.json.patient_category }}",
"reason_for_visit": "={{ $('Extract Patient Data').item.json.reason_for_visit }}",
"symptom_duration": "={{ $('Extract Patient Data').item.json.symptom_duration }}",
"appointment_duration": "={{ $json.output.appointment_duration }}",
"recommended_provider": "={{ $json.output.recommended_provider }}"
},
"mappingMode": "defineBelow"
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"typeVersion": 4.5
},
{
"id": "caee6ac1-430e-4209-b1fa-a5eb45cc9a0b",
"name": "Sticky Note - Intake",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1584,
64
],
"parameters": {
"color": 5,
"width": 756,
"height": 388,
"content": "## \ud83d\udccb Patient Intake Collection\n\nCaptures comprehensive patient information via **HIPAA-compliant Jotform**.\nCreate your form for free on [Jotform using this link](https://www.jotform.com/?partner=mediajade)\n\n**Output:** Structured patient data ready for AI triage"
},
"typeVersion": 1
},
{
"id": "c52626e9-4658-4759-9524-7790b07363b0",
"name": "Sticky Note - Triage",
"type": "n8n-nodes-base.stickyNote",
"position": [
-752,
64
],
"parameters": {
"color": 4,
"width": 676,
"height": 604,
"content": "## \ud83e\udd16 AI Medical Triage & Analysis\n\nAdvanced medical AI analyzes symptoms and prepares comprehensive provider brief.\n\n**Result:** Complete appointment brief for provider + patient guidance"
},
"typeVersion": 1
},
{
"id": "703c5f39-f111-473d-b34c-ebb9b2e22b2e",
"name": "Sticky Note - Emergency",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-240
],
"parameters": {
"color": 3,
"width": 744,
"height": 380,
"content": "## \ud83d\udea8 Emergency Response Protocol\n\n**When AI detects life-threatening symptoms:**\n\n**Priority:** Patient safety above all\n\n**Response Time:** <15 minutes for doctor callback"
},
"typeVersion": 1
},
{
"id": "589e4311-b163-458a-8fa6-f0bfb97bfc9d",
"name": "Sticky Note - Urgent",
"type": "n8n-nodes-base.stickyNote",
"position": [
64,
192
],
"parameters": {
"color": 6,
"width": 760,
"height": 396,
"content": "## \u26a1 Urgent Scheduling Path\n\n**For high-priority cases needing 24-48 hour appointments:**\n\n**Goal:** Fast scheduling without alarming patient unnecessarily"
},
"typeVersion": 1
},
{
"id": "d39e7c5f-5f95-41d2-8d11-2232e93ee42f",
"name": "Sticky Note - Routine",
"type": "n8n-nodes-base.stickyNote",
"position": [
64,
640
],
"parameters": {
"color": 7,
"width": 776,
"height": 412,
"content": "## \ud83d\udcc5 Routine Scheduling Path\n\n**For standard appointments within 1-2 weeks:**\n\n**Goal:** Smooth scheduling experience with all necessary information provided upfront"
},
"typeVersion": 1
},
{
"id": "cb14c6a8-765c-42d6-8bda-77c93eabba8e",
"name": "Sticky Note - Database",
"type": "n8n-nodes-base.stickyNote",
"position": [
1008,
96
],
"parameters": {
"color": 2,
"width": 440,
"height": 380,
"content": "## \ud83d\udcca Patient Data Management\n\nComprehensive logging for analytics, compliance, and continuity of care.\n\n**Result:** Complete patient journey visibility"
},
"typeVersion": 1
},
{
"id": "76a3a76f-d389-4355-8214-22c4a4175c6e",
"name": "Jotform Trigger",
"type": "n8n-nodes-base.jotFormTrigger",
"position": [
-1520,
240
],
"parameters": {
"form": "252815075257460"
},
"credentials": {
"jotFormApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "e6a0c4d8-9c02-4cf6-90da-e6d350b18cbc",
"connections": {
"Is Urgent?": {
"main": [
[
{
"node": "Notify Front Desk (Urgent)",
"type": "main",
"index": 0
}
],
[
{
"node": "Notify Scheduler (Routine)",
"type": "main",
"index": 0
}
]
]
},
"Is Emergency?": {
"main": [
[
{
"node": "Alert Emergency Team (Slack)",
"type": "main",
"index": 0
}
]
]
},
"Jotform Trigger": {
"main": [
[
{
"node": "Extract Patient Data",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Medical Triage & Analysis",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Alert On-Call Doctor": {
"main": [
[
{
"node": "Log to Patient Database",
"type": "main",
"index": 0
}
]
]
},
"Extract Patient Data": {
"main": [
[
{
"node": "Calculate Patient Info",
"type": "main",
"index": 0
}
]
]
},
"Calculate Patient Info": {
"main": [
[
{
"node": "AI Medical Triage & Analysis",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Medical Triage & Analysis",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Notify Front Desk (Urgent)": {
"main": [
[
{
"node": "Send Patient Confirmation (Urgent)",
"type": "main",
"index": 0
}
]
]
},
"Notify Scheduler (Routine)": {
"main": [
[
{
"node": "Send Patient Confirmation (Routine)",
"type": "main",
"index": 0
}
]
]
},
"Send Emergency Instructions": {
"main": [
[
{
"node": "Alert On-Call Doctor",
"type": "main",
"index": 0
}
]
]
},
"AI Medical Triage & Analysis": {
"main": [
[
{
"node": "Is Emergency?",
"type": "main",
"index": 0
},
{
"node": "Is Urgent?",
"type": "main",
"index": 0
}
]
]
},
"Alert Emergency Team (Slack)": {
"main": [
[
{
"node": "Send Emergency Instructions",
"type": "main",
"index": 0
}
]
]
},
"Send Patient Confirmation (Urgent)": {
"main": [
[
{
"node": "Log to Patient Database",
"type": "main",
"index": 0
}
]
]
},
"Send Patient Confirmation (Routine)": {
"main": [
[
{
"node": "Log to Patient Database",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
gmailOAuth2jotFormApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Transform patient intake from paperwork chaos into intelligent, automated triage that detects emergencies, prepares providers with comprehensive briefs, and streamlines scheduling—improving patient safety while saving 15-20 hours per week.
Source: https://n8n.io/workflows/9446/ — 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.
Want to skip the manual work and instantly generate SWOT analyses for your business plans, investor decks, or strategy docs? 🚀 This workflow lets you automate the entire SWOT (Strengths, Weaknesses, O
The workflow runs every hour with a randomized delay of 5–20 minutes to help distribute load. It records the exact date and time a lead is emailed so you can track outreach. Follow-ups are automatical
Enterprise-grade resume screening automation built for production environments. This workflow combines intelligent AI analysis with comprehensive error handling to ensure reliable processing of candid
Transform your manual hiring process into an intelligent evaluation system that saves 15-20 minutes per candidate! This workflow automates the entire candidate assessment pipeline - from CSV/XLSX uplo
This n8n workflow is designed for e-commerce businesses, digital marketers, and content creators who want to automatically generate professional 3D product videos from product images. It's perfect for