Système d'alerte de santé Grok-3 piloté par l'IA (avec notification des membres de la famille)

Avancé

Ceci est unPersonal Productivity, AI Summarizationworkflow d'automatisation du domainecontenant 17 nœuds.Utilise principalement des nœuds comme If, Set, Merge, Webhook, EmailSend. Système de surveillance de la santé basé sur l'analyse Grok-3 AI, avec alertes par e-mail pour la famille/les médecins

Prérequis
  • Point de terminaison HTTP Webhook (généré automatiquement par n8n)
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "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 - Soumettre les Données de Santé",
      "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": "Extraire les Données de Santé",
      "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": "Agent d'Analyse Sanitaire par IA",
      "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": "Analyseur de Sortie Structurée",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        576,
        240
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "a4f56a13-b529-481f-bc91-2b038473ab46",
      "name": "Vérifier si Alerte Nécessaire",
      "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": "Préparer les Données d'Alerte",
      "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": "Envoyer un Email à la Famille",
      "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": "Vérifier si Alerte Médecin Nécessaire",
      "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": "Envoyer un Email au Médecin",
      "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": "Fusionner les Résultats d'Alerte",
      "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": "Aucune Alerte Requise",
      "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": "Combiner les Résultats",
      "type": "n8n-nodes-base.merge",
      "position": [
        1808,
        144
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3
    },
    {
      "id": "877681a2-34e4-4615-b943-e62fe4a48b8e",
      "name": "Répondre à 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": "Modèle de Chat OpenRouter",
      "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": "Note Adhésive",
      "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": "Note Adhésive 1",
      "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": "Note Adhésive 2",
      "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
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Productivité personnelle, Résumé IA

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Workflows recommandés

Évaluation des travaux par IA Sonar Pro et rappels pour plusieurs dates d'échéance
Automatiser l'attribution des relecture par les pairs via Sonar Pro AI et des rappels de dates limites multi-canaux
Set
Filter
Discord
+
Set
Filter
Discord
23 NœudsCheng Siong Chin
Extraction de documents
Système d'évaluation par les pairs piloté par l'IA avec génération automatique de critères d'évaluation
Utiliser GPT-4-nano, Slack et les notifications par e-mail pour automatiser l'attribution des relecture par les pairs
Set
Code
Slack
+
Set
Code
Slack
22 NœudsCheng Siong Chin
Extraction de documents
Qwen3-VL-8B-Thinking旅行规划器
基于Skyscanner、Booking.cometGmaildeAI优化旅行行程générateur
Set
Code
Gmail
+
Set
Code
Gmail
18 NœudsCheng Siong Chin
Productivité personnelle
Notation de tâches GPT-4-Turbo pilotée par l'IA avec des sorties multi-format
Utiliser GPT-4-Turbo pour automatiser la notation de devoirs et la génération de rapports multi-formats
Set
Code
Webhook
+
Set
Code
Webhook
15 NœudsCheng Siong Chin
Extraction de documents
Processus de recrutement piloté par l'IA avec GPT-4o-mini : du filtrage des CV à la planification des entretiens
Automatisation du recrutement dans Airtable avec GPT-4o-mini : du criblage des CV à la planification des entretiens
Slack
Filter
Webhook
+
Slack
Filter
Webhook
21 NœudsCheng Siong Chin
Ressources Humaines
AI Sonar-Pro Tracker du marché de l'or : prévision des prix basée sur les données économiques et les actualités
Système de prévision du marché de l'or utilisant Perplexity Sonar-Pro, données FRED et rapports WordPress
Set
Merge
Slack
+
Set
Merge
Slack
22 NœudsCheng Siong Chin
Trading crypto
Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds17
Catégorie2
Types de nœuds10
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
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.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34