AI驱动的Grok-3健康预警系统(含家属通知功能)
高级
这是一个Personal Productivity, AI Summarization领域的自动化工作流,包含 17 个节点。主要使用 If, Set, Merge, Webhook, EmailSend 等节点。 基于Grok-3 AI分析的健康监测系统,含家属/医生邮件警报
前置要求
- •HTTP Webhook 端点(n8n 会自动生成)
使用的节点 (17)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "9rQdx3QQnniDVxCy",
"meta": {
"instanceId": "b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"
},
"name": "AI-Powered Grok-3 Health Alert System with Family Notifications",
"tags": [],
"nodes": [
{
"id": "765f5740-a408-4a7c-91c2-bbb57c9b0999",
"name": "Webhook - Submit Health Data",
"type": "n8n-nodes-base.webhook",
"position": [
48,
32
],
"webhookId": "89151f45-c9a4-4fc9-b000-f1cc96b44b14",
"parameters": {
"path": "health-monitor",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2
},
{
"id": "f5ac1b49-b445-4041-8452-c029ce8c70cf",
"name": "Extract Health Data",
"type": "n8n-nodes-base.set",
"position": [
256,
32
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "a1",
"name": "patientName",
"type": "string",
"value": "={{ $json.body.patientName }}"
},
{
"id": "a2",
"name": "age",
"type": "number",
"value": "={{ $json.body.age }}"
},
{
"id": "a3",
"name": "bloodPressure",
"type": "string",
"value": "={{ $json.body.bloodPressure }}"
},
{
"id": "a4",
"name": "heartRate",
"type": "number",
"value": "={{ $json.body.heartRate }}"
},
{
"id": "a5",
"name": "weight",
"type": "number",
"value": "={{ $json.body.weight }}"
},
{
"id": "a6",
"name": "height",
"type": "number",
"value": "={{ $json.body.height }}"
},
{
"id": "a7",
"name": "dietLog",
"type": "string",
"value": "={{ $json.body.dietLog }}"
},
{
"id": "a8",
"name": "symptoms",
"type": "string",
"value": "={{ $json.body.symptoms }}"
},
{
"id": "a9",
"name": "familyEmail",
"type": "string",
"value": "={{ $json.body.familyEmail }}"
},
{
"id": "a10",
"name": "doctorEmail",
"type": "string",
"value": "={{ $json.body.doctorEmail }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "54e449f5-e947-48c0-b1a1-8909c2371943",
"name": "AI Health Analysis Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
432,
16
],
"parameters": {
"text": "=You are a health monitoring AI assistant. Analyze the following patient data and provide a comprehensive health assessment.\n\nPatient Information:\n- Name: {{ $json.patientName }}\n- Age: {{ $json.age }}\n- Blood Pressure: {{ $json.bloodPressure }}\n- Heart Rate: {{ $json.heartRate }} bpm\n- Weight: {{ $json.weight }} kg\n- Height: {{ $json.height }} cm\n- Recent Diet: {{ $json.dietLog }}\n- Symptoms: {{ $json.symptoms }}\n\nProvide your analysis in the following JSON format:\n{\n \"healthStatus\": \"good/concerning/poor\",\n \"riskLevel\": \"low/medium/high\",\n \"healthSummary\": \"Brief overall assessment\",\n \"dietAnalysis\": \"Analysis of dietary habits\",\n \"vitalsConcerns\": \"Any concerns about vitals\",\n \"recommendations\": \"Specific health recommendations\",\n \"requiresImmediateAttention\": true/false,\n \"alertFamily\": true/false,\n \"alertDoctor\": true/false\n}\n\nBe thorough and consider BMI, blood pressure ranges, heart rate norms, and nutritional balance.",
"options": {
"systemMessage": "You are a medical AI assistant specializing in health monitoring and preventive care. Provide accurate, evidence-based assessments while being clear that you are not replacing professional medical advice."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "63fbd346-a5ed-4fbf-9017-c6b1049998eb",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
576,
240
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "a4f56a13-b529-481f-bc91-2b038473ab46",
"name": "Check If Alert Needed",
"type": "n8n-nodes-base.if",
"position": [
704,
16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "c1",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.output.alertFamily }}",
"rightValue": true
}
]
}
},
"typeVersion": 2.1
},
{
"id": "ce55fffe-20f2-4415-aabf-c0ee71431e49",
"name": "Prepare Alert Data",
"type": "n8n-nodes-base.set",
"position": [
928,
-16
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "a1",
"name": "familyEmail",
"type": "string",
"value": "={{ $('Extract Health Data').item.json.familyEmail }}"
},
{
"id": "a2",
"name": "doctorEmail",
"type": "string",
"value": "={{ $('Extract Health Data').item.json.doctorEmail }}"
},
{
"id": "a3",
"name": "patientName",
"type": "string",
"value": "={{ $('Extract Health Data').item.json.patientName }}"
},
{
"id": "a4",
"name": "healthStatus",
"type": "string",
"value": "={{ $json.output.healthStatus }}"
},
{
"id": "a5",
"name": "riskLevel",
"type": "string",
"value": "={{ $json.output.riskLevel }}"
},
{
"id": "a6",
"name": "healthSummary",
"type": "string",
"value": "={{ $json.output.healthSummary }}"
},
{
"id": "a7",
"name": "recommendations",
"type": "string",
"value": "={{ $json.output.recommendations }}"
},
{
"id": "a8",
"name": "vitalsConcerns",
"type": "string",
"value": "={{ $json.output.vitalsConcerns }}"
},
{
"id": "a9",
"name": "dietAnalysis",
"type": "string",
"value": "={{ $json.output.dietAnalysis }}"
},
{
"id": "a10",
"name": "alertDoctor",
"type": "boolean",
"value": "={{ $json.output.alertDoctor }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "9cfcd640-34b9-4ae8-8fa7-72f7cd7e8288",
"name": "Send Email to Family",
"type": "n8n-nodes-base.emailSend",
"position": [
1104,
-16
],
"webhookId": "7076809d-c1f4-4c77-92b4-f176ee375baf",
"parameters": {
"options": {},
"subject": "=⚠️ Health Alert for {{ $json.patientName }}",
"toEmail": "={{ $json.familyEmail }}",
"fromEmail": "health-monitor@yourdomain.com"
},
"typeVersion": 2.1
},
{
"id": "cba5f6d2-1a84-416e-a2fb-720987cc2eb0",
"name": "Check If Doctor Alert Needed",
"type": "n8n-nodes-base.if",
"position": [
1280,
-16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "c1",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.alertDoctor }}",
"rightValue": true
}
]
}
},
"typeVersion": 2.1
},
{
"id": "335af2a1-2235-4000-a4f7-23cb76812617",
"name": "Send Email to Doctor",
"type": "n8n-nodes-base.emailSend",
"position": [
1456,
-80
],
"webhookId": "23d7103a-5180-4a43-925d-9985f81d6957",
"parameters": {
"options": {},
"subject": "=Medical Alert: {{ $json.patientName }} - {{ $json.riskLevel.toUpperCase() }} Risk",
"toEmail": "={{ $json.doctorEmail }}",
"fromEmail": "health-monitor@yourdomain.com"
},
"typeVersion": 2.1
},
{
"id": "c6a213de-e02f-40a9-905f-afefc6e2bb82",
"name": "Merge Alert Results",
"type": "n8n-nodes-base.set",
"position": [
1648,
32
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "a1",
"name": "status",
"type": "string",
"value": "alerts_sent"
},
{
"id": "a2",
"name": "familyAlerted",
"type": "boolean",
"value": "={{ $('Send Email to Family').item.json.success || false }}"
},
{
"id": "a3",
"name": "doctorAlerted",
"type": "boolean",
"value": "={{ $('Send Email to Doctor').item.json.success || false }}"
},
{
"id": "a4",
"name": "message",
"type": "string",
"value": "Health alerts have been sent successfully"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "5f8c81da-5b99-4548-a038-44ec743523e0",
"name": "No Alert Required",
"type": "n8n-nodes-base.set",
"position": [
1152,
160
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "a1",
"name": "status",
"type": "string",
"value": "no_alert_needed"
},
{
"id": "a2",
"name": "message",
"type": "string",
"value": "Health status is within normal parameters. No alerts required."
},
{
"id": "a3",
"name": "healthStatus",
"type": "string",
"value": "={{ $json.output.healthStatus }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e77eff85-7797-4c7b-b17f-af13f50c90c1",
"name": "Combine Results",
"type": "n8n-nodes-base.merge",
"position": [
1808,
144
],
"parameters": {
"mode": "combine",
"options": {},
"combineBy": "combineAll"
},
"typeVersion": 3
},
{
"id": "877681a2-34e4-4615-b943-e62fe4a48b8e",
"name": "Respond to Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
1968,
144
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "={{ { \"success\": true, \"analysisComplete\": true, \"healthStatus\": $json.healthStatus || $('AI Health Analysis Agent').item.json.output.healthStatus, \"alertsSent\": $json.status === 'alerts_sent', \"message\": $json.message } }}"
},
"typeVersion": 1.1
},
{
"id": "16378fbf-436a-4105-bacb-19c8a233ed46",
"name": "OpenRouter Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
400,
240
],
"parameters": {
"model": "x-ai/grok-3",
"options": {}
},
"credentials": {
"openRouterApi": {
"id": "fKnn6LL7cRFqNHDX",
"name": "OpenRouter account2"
}
},
"typeVersion": 1
},
{
"id": "5e920ef8-b1a3-4438-bcfa-aa26f055a5e8",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
-448
],
"parameters": {
"width": 544,
"height": 432,
"content": "## Introduction\nAutomates patient health monitoring by analyzing submitted health data via AI, determining alert necessity, and notifying family and doctors when critical conditions detected. \n\n## How It Works\nWebhook receives health data, AI agent analyzes vitals using OpenRouter with structured parsing. Conditional logic checks alert necessity. If yes: prepares data, emails family, checks doctor criteria, sends doctor email, merges results. If no: skips alerts. Combines outcomes and responds to webhook.\n\n## Workflow Template\nWebhook → Extract Data → AI Agent → [OpenRouter + Memory + Parser] → Check Alert → [Prepare + Email Family + Check Doctor + Email Doctor] OR [No Alert] → Merge → Combine → Respond\n\n\n\n\n"
},
"typeVersion": 1
},
{
"id": "9c5fdbe1-805a-4256-97fe-bee6ecee4ed7",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1216,
-448
],
"parameters": {
"color": 3,
"width": 928,
"height": 320,
"content": "## Use Cases\n**Chronic Disease:** Diabetic submits glucose readings. AI detects >250mg/dL, alerts family and endocrinologist. **Elderly Care:** Senior's vitals monitored via wearable. AI identifies irregular rhythm, emails caregiver and cardiologist. \n\n## Customization\nAdjust thresholds by demographics. Add vital types (O2, glucose trends). Customize AI prompts for conditions. Integrate SMS via Twilio. Add escalation logic. Include medication tracking. Connect EHR systems. Implement frequency limits. Add dashboard reporting.\n\n## Benefits\n**Rapid Response:** Detects emergencies in seconds. **Intelligent Filtering:** Prevents false alarms. **Family Peace:** Automated notifications keep loved ones informed. **Clinical Efficiency:** "
},
"typeVersion": 1
},
{
"id": "faebc33f-0151-401c-95a1-f9195e64c33a",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
528,
-448
],
"parameters": {
"color": 5,
"width": 672,
"height": 432,
"content": "\n## Workflow Steps\n1. **Reception & Extraction:** Webhook receives vitals/symptoms, parses JSON payload\n2. **AI Analysis:** OpenRouter analyzes vitals against ranges, accesses history via Memory Tool, formats assessment via Output Parser\n3. **Routing & Notification:** Conditional logic checks severity. Alert path emails family/doctor if critical. No alert logs status\n4. **Consolidation:** Merges outcomes, sends webhook response\n\n## Setup Instructions\nConfigure webhook endpoint with auth token. Add OpenRouter API key and select model. Set up AI Agent with Memory Tool and Output Parser. Connect Gmail/SMTP for notifications with recipient addresses. Configure alert thresholds (temp >38.5°C, BP >140/90, HR <60/>100). Set doctor notification criteria.\n\n## Prerequisites\nn8n instance, OpenRouter API key, AI model access, Patient database, Gmail/SMTP credentials, Family contacts, Doctor contacts, Webhook authentication"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "7d5284a7-cef4-4526-ad6f-02cbf608ef9c",
"connections": {
"e77eff85-7797-4c7b-b17f-af13f50c90c1": {
"main": [
[
{
"node": "877681a2-34e4-4615-b943-e62fe4a48b8e",
"type": "main",
"index": 0
}
]
]
},
"5f8c81da-5b99-4548-a038-44ec743523e0": {
"main": [
[
{
"node": "e77eff85-7797-4c7b-b17f-af13f50c90c1",
"type": "main",
"index": 1
}
]
]
},
"ce55fffe-20f2-4415-aabf-c0ee71431e49": {
"main": [
[
{
"node": "9cfcd640-34b9-4ae8-8fa7-72f7cd7e8288",
"type": "main",
"index": 0
}
]
]
},
"f5ac1b49-b445-4041-8452-c029ce8c70cf": {
"main": [
[
{
"node": "54e449f5-e947-48c0-b1a1-8909c2371943",
"type": "main",
"index": 0
}
]
]
},
"c6a213de-e02f-40a9-905f-afefc6e2bb82": {
"main": [
[
{
"node": "e77eff85-7797-4c7b-b17f-af13f50c90c1",
"type": "main",
"index": 0
}
]
]
},
"335af2a1-2235-4000-a4f7-23cb76812617": {
"main": [
[
{
"node": "c6a213de-e02f-40a9-905f-afefc6e2bb82",
"type": "main",
"index": 0
}
]
]
},
"9cfcd640-34b9-4ae8-8fa7-72f7cd7e8288": {
"main": [
[
{
"node": "cba5f6d2-1a84-416e-a2fb-720987cc2eb0",
"type": "main",
"index": 0
}
]
]
},
"a4f56a13-b529-481f-bc91-2b038473ab46": {
"main": [
[
{
"node": "ce55fffe-20f2-4415-aabf-c0ee71431e49",
"type": "main",
"index": 0
}
],
[
{
"node": "5f8c81da-5b99-4548-a038-44ec743523e0",
"type": "main",
"index": 0
}
]
]
},
"16378fbf-436a-4105-bacb-19c8a233ed46": {
"ai_languageModel": [
[
{
"node": "54e449f5-e947-48c0-b1a1-8909c2371943",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"54e449f5-e947-48c0-b1a1-8909c2371943": {
"main": [
[
{
"node": "a4f56a13-b529-481f-bc91-2b038473ab46",
"type": "main",
"index": 0
}
]
]
},
"63fbd346-a5ed-4fbf-9017-c6b1049998eb": {
"ai_outputParser": [
[
{
"node": "54e449f5-e947-48c0-b1a1-8909c2371943",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"cba5f6d2-1a84-416e-a2fb-720987cc2eb0": {
"main": [
[
{
"node": "335af2a1-2235-4000-a4f7-23cb76812617",
"type": "main",
"index": 0
}
],
[
{
"node": "c6a213de-e02f-40a9-905f-afefc6e2bb82",
"type": "main",
"index": 0
}
]
]
},
"765f5740-a408-4a7c-91c2-bbb57c9b0999": {
"main": [
[
{
"node": "f5ac1b49-b445-4041-8452-c029ce8c70cf",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 个人效率, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
Sonar Pro AI作业评估与多截止日期提醒
通过Sonar Pro AI和多渠道截止日期提醒自动化同行评审分配
Set
Filter
Discord
+
Set
Filter
Discord
23 节点Cheng Siong Chin
文档提取
AI驱动的同行评审作业系统,带自动评分标准生成
使用GPT-4-nano、Slack和邮件通知自动化同行评审分配
Set
Code
Slack
+
Set
Code
Slack
22 节点Cheng Siong Chin
文档提取
Qwen3-VL-8B-Thinking旅行规划器
基于Skyscanner、Booking.com和Gmail的AI优化旅行行程生成器
Set
Code
Gmail
+
Set
Code
Gmail
18 节点Cheng Siong Chin
个人效率
AI驱动的GPT-4-Turbo作业评分与多格式输出
使用GPT-4-Turbo自动化作业评分并生成多格式报告
Set
Code
Webhook
+
Set
Code
Webhook
15 节点Cheng Siong Chin
文档提取
AI驱动的GPT-4o-mini招聘流程:从简历筛选到面试安排
使用GPT-4o-mini在Airtable中自动化招聘:从简历筛选到面试安排
Slack
Filter
Webhook
+
Slack
Filter
Webhook
21 节点Cheng Siong Chin
人力资源
AI Sonar-Pro黄金市场追踪器:基于新闻经济数据预测价格
使用Perplexity Sonar-Pro、FRED数据和WordPress报告的黄金市场预测系统
Set
Merge
Slack
+
Set
Merge
Slack
22 节点Cheng Siong Chin
加密货币交易
工作流信息
难度等级
高级
节点数量17
分类2
节点类型10
作者
Cheng Siong Chin
@cschinDr. Cheng Siong CHIN serves as a Professor in Intelligent Systems Modelling and Simulation in Newcastle University, Singapore. His academic credentials include an M.Sc. in Advanced Control and Systems Engineering from The University of Manchester and a Ph.D. in Robotics from Nanyang Technological University.
外部链接
在 n8n.io 查看 →
分享此工作流