AI医疗分诊:智能分诊、医生简报和紧急情况检测
高级
这是一个自动化工作流,包含 22 个节点。主要使用 If, Set, Code, Gmail, HttpRequest 等节点。 基于GPT-4和JotForm的医疗分诊与预约自动化
前置要求
- •Google 账号和 Gmail API 凭证
- •可能需要目标 API 的认证凭证
- •Google Sheets API 凭证
- •OpenAI API Key
使用的节点 (22)
分类
-
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "fWklcJx1u2X1B2UA",
"meta": {
"instanceId": "277842713620d9f5554de3b1518b865a152c8c4db680008bd8aec536fc18b4a8"
},
"name": "AI 医疗分诊:智能分诊、医生简报和紧急情况检测",
"tags": [
{
"id": "CWardZYJBmejoyC4",
"name": "under review",
"createdAt": "2025-10-09T18:43:37.031Z",
"updatedAt": "2025-10-09T18:43:37.031Z"
}
],
"nodes": [
{
"id": "71b9b490-6060-4af5-94e8-34525de13db5",
"name": "提取患者数据",
"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": "计算患者信息",
"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 医疗分诊与分析",
"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 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-704,
496
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o"
},
"options": {
"temperature": 0.3
}
},
"credentials": {
"openAiApi": {
"id": "8IkhtT3EbXygnvcr",
"name": "Klinsman OpenAI"
}
},
"typeVersion": 1.2
},
{
"id": "a6542fce-7b17-4368-918c-e6068dd3cff6",
"name": "结构化输出解析器",
"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": "是否紧急?",
"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": "是否急症?",
"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": "通知急救团队 (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 => '• ' + 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": "发送急救指南",
"type": "n8n-nodes-base.gmail",
"position": [
368,
-48
],
"webhookId": "40e8a783-163e-4ae4-ba6b-249a965b1fb5",
"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>🚨 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>⚠️ 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>📞 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>⚠️ 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📞 Emergency: <strong>911</strong><br>\n📞 Our Clinic: <strong>(555) 123-4567</strong><br>\n📞 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": "=🚨 URGENT: Immediate Medical Attention Needed"
},
"typeVersion": 2.1
},
{
"id": "b9c68bc5-0934-48ab-b7d7-e4d67b74c596",
"name": "通知值班医生",
"type": "n8n-nodes-base.gmail",
"position": [
576,
-48
],
"webhookId": "39eda42b-0a2a-4c52-89d8-f4c447eb7fbb",
"parameters": {
"sendTo": "on-call-doctor@clinic.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\">🚨 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\">🚨 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>⚠️ 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\">⚡ 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": "=🚨 EMERGENCY PATIENT - Immediate Review Required"
},
"typeVersion": 2.1
},
{
"id": "6aff2270-85cf-418c-affc-e3d259e0a959",
"name": "通知前台 (急症)",
"type": "n8n-nodes-base.gmail",
"position": [
224,
352
],
"webhookId": "e95174c5-19a5-4b4b-94e7-12285b29a24f",
"parameters": {
"sendTo": "front-desk@clinic.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\">⚡ 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>📋 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": "=⚡ Urgent Patient - Schedule ASAP - {{ $('Extract Patient Data').item.json.patient_name }}"
},
"credentials": {
"gmailOAuth2": {
"id": "PIMDNhXNj8Zyiz3G",
"name": "Gmail account - Deepanshi"
}
},
"typeVersion": 2.1
},
{
"id": "ca4a10ac-6a8f-4b47-9d2d-aa6a4308697e",
"name": "发送患者确认 (急症)",
"type": "n8n-nodes-base.gmail",
"position": [
464,
352
],
"webhookId": "c140b4a5-bcb5-4000-aea4-7fff6f8f412a",
"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>⚡ 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>📞 Office: (555) 123-4567<br>\n📞 After Hours: (555) 123-4568<br>\n📧 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": {
"id": "PIMDNhXNj8Zyiz3G",
"name": "Gmail account - Deepanshi"
}
},
"typeVersion": 2.1
},
{
"id": "d3bc5913-96a0-4cc6-8c16-9778fadded37",
"name": "通知排班人员 (常规)",
"type": "n8n-nodes-base.gmail",
"position": [
208,
816
],
"webhookId": "38ccc168-6d4a-4a1e-8877-304fe48c26cd",
"parameters": {
"sendTo": "scheduler@clinic.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\">📋 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": {
"id": "PIMDNhXNj8Zyiz3G",
"name": "Gmail account - Deepanshi"
}
},
"typeVersion": 2.1
},
{
"id": "807c0df0-e1fc-4374-bc07-b506d2dda06e",
"name": "发送患者确认 (常规)",
"type": "n8n-nodes-base.gmail",
"position": [
576,
816
],
"webhookId": "06cafaa5-7568-4e3c-a038-7fe5e6290a8e",
"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>📅 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>📞 Office: (555) 123-4567<br>\n📧 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": {
"id": "PIMDNhXNj8Zyiz3G",
"name": "Gmail account - Deepanshi"
}
},
"typeVersion": 2.1
},
{
"id": "c54705c2-087d-4719-8fa4-9f39cafae5db",
"name": "记录到患者数据库",
"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": "便签 - 信息收集",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1584,
64
],
"parameters": {
"color": 5,
"width": 756,
"height": 388,
"content": "## 📋 患者信息收集"
},
"typeVersion": 1
},
{
"id": "c52626e9-4658-4759-9524-7790b07363b0",
"name": "便签 - 分诊",
"type": "n8n-nodes-base.stickyNote",
"position": [
-752,
64
],
"parameters": {
"color": 4,
"width": 676,
"height": 604,
"content": "## 🤖 AI 医疗分诊与分析"
},
"typeVersion": 1
},
{
"id": "703c5f39-f111-473d-b34c-ebb9b2e22b2e",
"name": "便签 - 紧急情况",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-240
],
"parameters": {
"color": 3,
"width": 744,
"height": 380,
"content": "## 🚨 紧急响应协议"
},
"typeVersion": 1
},
{
"id": "589e4311-b163-458a-8fa6-f0bfb97bfc9d",
"name": "便签 - 急症",
"type": "n8n-nodes-base.stickyNote",
"position": [
64,
192
],
"parameters": {
"color": 6,
"width": 760,
"height": 396,
"content": "## ⚡ 紧急排班路径"
},
"typeVersion": 1
},
{
"id": "d39e7c5f-5f95-41d2-8d11-2232e93ee42f",
"name": "便签 - 常规",
"type": "n8n-nodes-base.stickyNote",
"position": [
64,
640
],
"parameters": {
"color": 7,
"width": 776,
"height": 412,
"content": "## 📅 常规排班路径"
},
"typeVersion": 1
},
{
"id": "cb14c6a8-765c-42d6-8bda-77c93eabba8e",
"name": "便签 - 数据库",
"type": "n8n-nodes-base.stickyNote",
"position": [
1008,
96
],
"parameters": {
"color": 2,
"width": 440,
"height": 380,
"content": "## 📊 患者数据管理"
},
"typeVersion": 1
},
{
"id": "76a3a76f-d389-4355-8214-22c4a4175c6e",
"name": "JotForm 触发器1",
"type": "n8n-nodes-base.jotFormTrigger",
"position": [
-1520,
240
],
"webhookId": "06e9eacf-f9fc-46e1-9564-37d2de14ae21",
"parameters": {
"form": "252815075257460"
},
"credentials": {
"jotFormApi": {
"id": "cOSh16Q5l4e0EB1A",
"name": "Jotform jitesh@mediajade.com"
}
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "8c4c5d6e-8ef7-49e2-a84a-22e836124cbb",
"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 Trigger1": {
"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
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
AI 驱动的招聘:使用 Jotform 进行简历筛选和候选人路由
简历筛选与候选人路由,使用GPT-4o-mini、Jotform和Google Sheets
If
Set
Code
+10
20 节点Jitesh Dugar
有发票附件?
使用 GPT-4o 欺诈检测和 QuickBooks 自动提取并审批发票
If
Code
Gmail
+9
22 节点Jitesh Dugar
使用 GPT-4 分析和 JotForm 离职面谈自动化员工离职流程
使用 GPT-4 分析和 JotForm 离职面谈实现员工离职流程自动化
If
Set
Code
+6
20 节点Jitesh Dugar
使用 JotForm、GPT-4o-mini 和 Google Workspace 自动化员工入职
使用 JotForm、GPT-4o-mini 和 Google Workspace 实现员工入职自动化
If
Set
Code
+6
14 节点Jitesh Dugar
使用 Jotform、GPT-4 分析和 Gmail 通知自动化贷款预审批
使用 Jotform、GPT-4 分析和 Gmail 通知自动化贷款预审批
If
Set
Code
+6
21 节点Jitesh Dugar
使用GPT-4o-mini、JotForm和Gmail自动化物业维护请求
使用GPT-4o-mini、JotForm和Gmail自动化物业维护请求
If
Set
Code
+6
21 节点Jitesh Dugar
工作流信息
难度等级
高级
节点数量22
分类-
节点类型11
作者
Jitesh Dugar
@jiteshdugarAI Automation Specialist - OpenAI, CRM & Automation Expert with a solid understanding of various tools that include Zapier, Make, Zoho CRM, Hubspot, Google Sheets, Airtable, Pipedrive, Google Analytics, and more.
外部链接
在 n8n.io 查看 →
分享此工作流