8
n8n 中文网amn8n.com

AI驱动的Grok-3健康预警系统(含家属通知功能)

高级

这是一个Personal Productivity, AI Summarization领域的自动化工作流,包含 17 个节点。主要使用 If, Set, Merge, Webhook, EmailSend 等节点。 基于Grok-3 AI分析的健康监测系统,含家属/医生邮件警报

前置要求
  • HTTP Webhook 端点(n8n 会自动生成)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 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)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量17
分类2
节点类型10
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Cheng Siong Chin

Cheng Siong Chin

@cschin

Dr. 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 查看

分享此工作流

分类

分类: 34