Tri médical par IA : tri intelligent, briefing pour le médecin et détection d'urgence
Ceci est uncontenant 22 nœuds.Utilise principalement des nœuds comme If, Set, Code, Gmail, HttpRequest. Tri et planification automatisés des rendez-vous médicaux basés sur GPT-4 et JotForm
- •Compte Google et informations d'identification Gmail API
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Informations d'identification Google Sheets API
- •Clé API OpenAI
Nœuds utilisés (22)
Catégorie
{
"id": "fWklcJx1u2X1B2UA",
"meta": {
"instanceId": "277842713620d9f5554de3b1518b865a152c8c4db680008bd8aec536fc18b4a8"
},
"name": "AI Medical Intake: Smart Triage, Provider Briefs & Emergency Detection",
"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": "Extraire les Données Patient",
"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": "Calculer les Informations Patient",
"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": "Triage & Analyse Médicale par IA",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-640,
240
],
"parameters": {
"text": "=You are an expert medical triage AI assistant helping healthcare providers prepare for patient appointments. Analyze this patient intake information and provide a comprehensive pre-appointment brief.\n\n## PATIENT INFORMATION\n\n**Name:** {{ $json.patient_name }}\n**Age:** {{ $json.patient_age }} years old ({{ $json.patient_category }})\n**DOB:** {{ $json.date_of_birth }}\n\n**Contact:**\n- Email: {{ $json.patient_email }}\n- Phone: {{ $json.patient_phone }}\n\n**Insurance:** {{ $json.insurance_provider }}\n\n---\n\n## CHIEF COMPLAINT & SYMPTOMS\n\n**Reason for Visit:** {{ $json.reason_for_visit }}\n\n**Symptoms:** {{ $json.symptoms }}\n\n**Duration:** {{ $json.symptom_duration }}\n\n**Pain Level:** {{ $json.pain_level }} (0-10 scale)\n\n---\n\n## MEDICAL BACKGROUND\n\n**Current Medications:** {{ $json.current_medications }}\n\n**Known Allergies:** {{ $json.allergies }}\n\n**Medical History:** {{ $json.medical_history }}\n\n---\n\n## YOUR TASK\n\nProvide a detailed medical analysis with the following structure:\n\n### 1. URGENCY ASSESSMENT\nClassify the urgency level based on symptoms:\n- **emergency**: Life-threatening (chest pain, severe bleeding, difficulty breathing, stroke symptoms, severe allergic reaction)\n- **urgent**: Needs same-day attention (high fever, severe pain, infection signs, injury)\n- **routine**: Can wait for regular appointment (chronic condition follow-up, preventive care)\n- **non_urgent**: Wellness visit, routine check-up, minor concerns\n\nProvide clear reasoning for the urgency classification.\n\n### 2. SYMPTOM ANALYSIS\n- Summarize primary and secondary symptoms\n- Identify any red flag symptoms requiring immediate attention\n- Note symptom patterns or progressions\n- Consider patient age and medical history context\n\n### 3. POSSIBLE CONDITIONS (Differential Diagnosis)\nList 3-5 possible conditions that could explain the symptoms, ordered by likelihood:\n1. Most likely condition with brief explanation\n2. Second possibility\n3. Third possibility\n(Continue as appropriate)\n\n**Important:** This is for provider preparation only, not a diagnosis.\n\n### 4. CRITICAL ALERTS\nFlag any of the following:\n- **Drug Interactions:** Between current medications and common treatments\n- **Allergy Concerns:** Medications/treatments to avoid\n- **Age Considerations:** Pediatric, geriatric, or pregnancy concerns\n- **Comorbidity Risks:** Existing conditions that complicate treatment\n- **Red Flags:** Symptoms suggesting serious underlying conditions\n\n### 5. RECOMMENDED PROVIDER TYPE\nWho should see this patient:\n- Primary Care Physician\n- Specialist (specify: cardiologist, dermatologist, etc.)\n- Urgent Care\n- Emergency Department\n- Telehealth appropriate\n\n### 6. PRE-APPOINTMENT PREPARATION\n\n**For Provider:**\n- Key questions to ask during visit\n- Examinations likely needed\n- Tests/labs to consider ordering\n- Reference materials to review\n\n**For Patient:**\n- What to bring (previous test results, medication list, etc.)\n- Pre-appointment instructions (fasting, medication holds, etc.)\n- What to expect during visit\n\n### 7. ESTIMATED APPOINTMENT DURATION\n- Quick visit (15 min)\n- Standard visit (30 min)\n- Extended visit (45-60 min)\n- Complex case (60+ min)\n\n### 8. APPOINTMENT PRIORITY SCORE\nRate 0-100 where:\n- 90-100: Emergency (immediate)\n- 70-89: Urgent (within 24-48 hours)\n- 40-69: Routine (within 1-2 weeks)\n- 0-39: Non-urgent (flexible scheduling)\n\nBe thorough, accurate, and prioritize patient safety. When in doubt, err on the side of caution with higher urgency levels.",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "2af7aaa5-bf80-4bcc-9076-533ce01881e5",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-704,
496
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o"
},
"options": {
"temperature": 0.3
}
},
"credentials": {
"openAiApi": {
"id": "8IkhtT3EbXygnvcr",
"name": "Klinsman OpenAI"
}
},
"typeVersion": 1.2
},
{
"id": "a6542fce-7b17-4368-918c-e6068dd3cff6",
"name": "Analyseur de Sortie Structurée",
"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": "Est-ce une Urgence ?",
"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": "Est-ce Urgent ?",
"type": "n8n-nodes-base.if",
"position": [
-240,
480
],
"parameters": {
"options": {},
"conditions": {
"options": {},
"conditions": [
{
"id": "urgent-check",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output.urgency_level }}",
"rightValue": "urgent"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "2162d6bc-cd96-41f7-9902-fe98ff1cc8ae",
"name": "Alerter l'Équipe d'Urgence (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": "Envoyer les Instructions d'Urgence",
"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": "Alerter le Médecin de Garde",
"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": "Notifier la Réception (Urgent)",
"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": "Envoyer la Confirmation au Patient (Urgent)",
"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": "Notifier le Planificateur (Routine)",
"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": "Envoyer la Confirmation au Patient (Routine)",
"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": "Journaliser dans la Base de Données Patient",
"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": "Note Adhésive - Admission",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1584,
64
],
"parameters": {
"color": 5,
"width": 756,
"height": 388,
"content": "## 📋 Patient Intake Collection\n\nCaptures comprehensive patient information via **HIPAA-compliant JotForm**.\nCreate your form for free on [JotForm using this link](https://www.jotform.com/?partner=mediajade)\n\n**Output:** Structured patient data ready for AI triage"
},
"typeVersion": 1
},
{
"id": "c52626e9-4658-4759-9524-7790b07363b0",
"name": "Note Adhésive - Triage",
"type": "n8n-nodes-base.stickyNote",
"position": [
-752,
64
],
"parameters": {
"color": 4,
"width": 676,
"height": 604,
"content": "## 🤖 AI Medical Triage & Analysis\n\nAdvanced medical AI analyzes symptoms and prepares comprehensive provider brief.\n\n**Result:** Complete appointment brief for provider + patient guidance"
},
"typeVersion": 1
},
{
"id": "703c5f39-f111-473d-b34c-ebb9b2e22b2e",
"name": "Note Adhésive - Urgence",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-240
],
"parameters": {
"color": 3,
"width": 744,
"height": 380,
"content": "## 🚨 Emergency Response Protocol\n\n**When AI detects life-threatening symptoms:**\n\n**Priority:** Patient safety above all\n\n**Response Time:** <15 minutes for doctor callback"
},
"typeVersion": 1
},
{
"id": "589e4311-b163-458a-8fa6-f0bfb97bfc9d",
"name": "Note Adhésive - Urgent",
"type": "n8n-nodes-base.stickyNote",
"position": [
64,
192
],
"parameters": {
"color": 6,
"width": 760,
"height": 396,
"content": "## ⚡ Urgent Scheduling Path\n\n**For high-priority cases needing 24-48 hour appointments:**\n\n**Goal:** Fast scheduling without alarming patient unnecessarily"
},
"typeVersion": 1
},
{
"id": "d39e7c5f-5f95-41d2-8d11-2232e93ee42f",
"name": "Note Adhésive - Routine",
"type": "n8n-nodes-base.stickyNote",
"position": [
64,
640
],
"parameters": {
"color": 7,
"width": 776,
"height": 412,
"content": "## 📅 Routine Scheduling Path\n\n**For standard appointments within 1-2 weeks:**\n\n**Goal:** Smooth scheduling experience with all necessary information provided upfront"
},
"typeVersion": 1
},
{
"id": "cb14c6a8-765c-42d6-8bda-77c93eabba8e",
"name": "Note Adhésive - Base de Données",
"type": "n8n-nodes-base.stickyNote",
"position": [
1008,
96
],
"parameters": {
"color": 2,
"width": 440,
"height": 380,
"content": "## 📊 Patient Data Management\n\nComprehensive logging for analytics, compliance, and continuity of care.\n\n**Result:** Complete patient journey visibility"
},
"typeVersion": 1
},
{
"id": "76a3a76f-d389-4355-8214-22c4a4175c6e",
"name": "JotForm Trigger1",
"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": {
"89a54f87-502c-4a6d-b5f3-081af34374fe": {
"main": [
[
{
"node": "6aff2270-85cf-418c-affc-e3d259e0a959",
"type": "main",
"index": 0
}
],
[
{
"node": "d3bc5913-96a0-4cc6-8c16-9778fadded37",
"type": "main",
"index": 0
}
]
]
},
"c7ab4cf1-f684-431a-93ad-687f878bbb57": {
"main": [
[
{
"node": "2162d6bc-cd96-41f7-9902-fe98ff1cc8ae",
"type": "main",
"index": 0
}
]
]
},
"76a3a76f-d389-4355-8214-22c4a4175c6e": {
"main": [
[
{
"node": "71b9b490-6060-4af5-94e8-34525de13db5",
"type": "main",
"index": 0
}
]
]
},
"2af7aaa5-bf80-4bcc-9076-533ce01881e5": {
"ai_languageModel": [
[
{
"node": "56257aaf-3cd0-4c28-bd10-ba68c746df93",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"b9c68bc5-0934-48ab-b7d7-e4d67b74c596": {
"main": [
[
{
"node": "c54705c2-087d-4719-8fa4-9f39cafae5db",
"type": "main",
"index": 0
}
]
]
},
"71b9b490-6060-4af5-94e8-34525de13db5": {
"main": [
[
{
"node": "940ff4ab-345c-474c-9979-3b47f3abcbcb",
"type": "main",
"index": 0
}
]
]
},
"940ff4ab-345c-474c-9979-3b47f3abcbcb": {
"main": [
[
{
"node": "56257aaf-3cd0-4c28-bd10-ba68c746df93",
"type": "main",
"index": 0
}
]
]
},
"a6542fce-7b17-4368-918c-e6068dd3cff6": {
"ai_outputParser": [
[
{
"node": "56257aaf-3cd0-4c28-bd10-ba68c746df93",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"6aff2270-85cf-418c-affc-e3d259e0a959": {
"main": [
[
{
"node": "ca4a10ac-6a8f-4b47-9d2d-aa6a4308697e",
"type": "main",
"index": 0
}
]
]
},
"d3bc5913-96a0-4cc6-8c16-9778fadded37": {
"main": [
[
{
"node": "807c0df0-e1fc-4374-bc07-b506d2dda06e",
"type": "main",
"index": 0
}
]
]
},
"40c8f7d4-91f7-4aa9-ba78-52912fafa0ce": {
"main": [
[
{
"node": "b9c68bc5-0934-48ab-b7d7-e4d67b74c596",
"type": "main",
"index": 0
}
]
]
},
"56257aaf-3cd0-4c28-bd10-ba68c746df93": {
"main": [
[
{
"node": "c7ab4cf1-f684-431a-93ad-687f878bbb57",
"type": "main",
"index": 0
},
{
"node": "89a54f87-502c-4a6d-b5f3-081af34374fe",
"type": "main",
"index": 0
}
]
]
},
"2162d6bc-cd96-41f7-9902-fe98ff1cc8ae": {
"main": [
[
{
"node": "40c8f7d4-91f7-4aa9-ba78-52912fafa0ce",
"type": "main",
"index": 0
}
]
]
},
"ca4a10ac-6a8f-4b47-9d2d-aa6a4308697e": {
"main": [
[
{
"node": "c54705c2-087d-4719-8fa4-9f39cafae5db",
"type": "main",
"index": 0
}
]
]
},
"807c0df0-e1fc-4374-bc07-b506d2dda06e": {
"main": [
[
{
"node": "c54705c2-087d-4719-8fa4-9f39cafae5db",
"type": "main",
"index": 0
}
]
]
}
}
}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é
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
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.
Partager ce workflow