Telegram + Airtable for safer symptom triage replies
Your Telegram inbox fills up with symptom questions, and suddenly you’re doing two risky jobs at once: answering fast and trying not to say the wrong thing. One missed disclaimer. One vague “you’re probably fine.” That’s how a well-meaning reply turns into a compliance headache.
This Telegram Airtable triage flow hits clinic admins first, but telehealth operators and practice owners feel it too. You get consistent, safety-checked responses, urgent flags for potential emergencies, and an audit trail you can actually review.
Below you’ll see exactly how the workflow routes messages, when it escalates, how it formats safe replies, and how every interaction gets logged to Airtable.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Telegram + Airtable for safer symptom triage replies
flowchart LR
subgraph sg0["Health Information A Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Health Query Webhook"]
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Safety Check & Categorization"]
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Emergency Router", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Emergency Response", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Health Information AI", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Check AI Success", pos: "b", h: 48 }
n6@{ icon: "mdi:swap-vertical", form: "rounded", label: "AI Error Handler", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Format Health Response", pos: "b", h: 48 }
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge"]
n9["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Compile Final Response"]
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Send Response"]
n11["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/airtable.svg' width='40' height='40' /></div><br/>Audit Log (Optional)"]
n8 --> n9
n5 --> n7
n5 --> n6
n2 --> n3
n2 --> n4
n3 --> n8
n0 --> n1
n4 --> n5
n9 --> n10
n9 --> n11
n7 --> n8
n1 --> n2
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n4 ai
class n2,n5 decision
class n11 database
class n0,n10 api
class n1,n9 code
classDef customIcon fill:none,stroke:none
class n0,n1,n8,n9,n10,n11 customIcon
The Problem: Fast symptom replies are easy to get wrong
Symptom questions sound simple until you’re answering them at speed. People write messy, emotional messages: “Chest pain. Can’t breathe. Is this anxiety?” If you reply manually, you’re juggling tone, safety language, and the uncomfortable reality that you can’t diagnose anything in chat. It’s also hard to keep replies consistent across a team. One person remembers to include emergency guidance. Another forgets. And when someone asks, “What did we tell them?”, you’re scrolling through Telegram history hoping the message is still there.
The friction compounds. Here’s where it breaks down.
- Urgent warning signs can get buried inside long messages, especially when staff are multitasking.
- Disclaimers and “see a professional” guidance drift over time, which means inconsistent risk posture.
- Manual responses invite accidental diagnosis language, and that’s a line you do not want crossed.
- There’s no clean audit log for review, training, or compliance unless someone copies everything by hand.
The Solution: Safety-checked Telegram replies with an Airtable audit log
This n8n workflow turns an incoming Telegram symptom question into a structured, safer response you can stand behind. It starts the moment a message hits your webhook, then classifies the content for urgency (including emergency keyword detection). If the message looks critical, the workflow switches to an escalation-style reply that pushes immediate “seek urgent help” guidance and local emergency numbers you provide. If it’s non-emergency, an OpenAI-powered health information assistant generates general, educational guidance only, then the workflow verifies the output before it’s sent. Either way, the final response is formatted with consistent disclaimers and safe phrasing, returned immediately to Telegram, and logged to Airtable for auditing.
The workflow begins with message intake and triage. Then it branches into emergency handling or general information assistance, validates the result, and assembles one clean reply. Finally, it writes a single Airtable record so you can review what was asked and what was sent.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you receive 30 symptom questions a day in Telegram. If a staff member spends about 4 minutes reading, drafting, adding disclaimers, and double-checking wording, that’s roughly 2 hours daily. With this workflow, the “manual” part becomes quick oversight: maybe 10 minutes to spot-check the Airtable log and refine your disclaimer text when needed. The rest runs automatically, with urgent messages getting an immediate escalation-style reply.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Telegram for receiving and sending symptom questions.
- Airtable to store an audit trail record.
- OpenAI API key (get it from your OpenAI dashboard)
Skill level: Intermediate. You’ll connect accounts, paste an API key, and adjust disclaimer text and emergency numbers for your region.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
Telegram message intake. A webhook receives the incoming question, so you can plug this into a Telegram bot flow without staff copying messages anywhere.
Triage and classification. The workflow analyzes the message content, labels it, and checks for emergency signals (for example: breathing difficulty, severe bleeding, chest pain, poisoning, mental health crisis language).
Emergency branch or general guidance. If the message looks critical, it prepares an escalation payload with clear “seek immediate help” language and your emergency contact guidance. Otherwise, it uses the OpenAI Chat Model to produce general, educational health information while avoiding diagnosis or prescriptions.
Verify, format, respond, and log. The workflow checks that the AI output matches your safety rules, falls back to a safe default response if it doesn’t, then formats the final Telegram reply with consistent disclaimers. At the same time, it writes an Airtable record for auditing and review.
You can easily modify the disclaimer text to match your legal requirements based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webhook Trigger
This workflow starts with an incoming webhook that receives health-related requests.
- Add or open Incoming Health Hook.
- Set Path to
health-assistant. - Set HTTP Method to
POSTand Response Mode toresponseNode. - Under Options → Response Headers, add
Access-Control-Allow-Origin: *andX-Content-Type-Options: nosniff.
Step 2: Connect Triage and Emergency Branching
Classify the incoming request and route emergencies to a critical alert response.
- Open Triage & Classify and implement your classification logic (this node determines
$json.isEmergency,$json.queryType,$json.language, and$json.age). - In Emergency Branch Logic, set the condition to
{{ $json.isEmergency }}equalstrue. - Configure Critical Alert Payload with the emergency response fields:
- response set to
🚨 EMERGENCY DETECTED 🚨 ...(full message from the node) - responseType set to
emergency - severity set to
critical
- response set to
$json.isEmergency is missing from Triage & Classify, all requests will flow to the non-emergency AI path.Step 3: Set Up the AI Response Path
Generate cautious health guidance and validate the AI output before formatting.
- Open Health Info Assistant and select your OpenAI model under Model.
- Credential Required: Connect your OpenAI credentials in Health Info Assistant.
- Confirm the system message and user message include expressions like
{{ $json.userInput }},{{ $json.queryType }},{{ $json.language }}, and{{ $json.age }}. - In Verify AI Result, use the condition
{{ $json.error === undefined }}equalstrue. - Configure AI Failure Fallback with:
- response set to
An unexpected error occurred while processing your health query... - responseType set to
errorand severity set tohigh - disclaimer and resources set to the provided medical disclaimer and resource list
- response set to
- In Format Health Reply, set:
- response to
{{ $json.message.content }} - responseType to
{{ $('Triage & Classify').item.json.queryType }} - disclaimer and resources to the provided fixed strings
- response to
Step 4: Combine and Deliver the Final Output
Merge emergency and AI paths, assemble the response, and send outputs to both the webhook reply and Airtable.
- In Combine Response Paths, set Mode to
combineto unify emergency and AI responses. - Open Assemble Final Output and structure the final JSON payload for response and logging.
- Assemble Final Output outputs to both Return Webhook Reply and Audit Trail Record in parallel.
- In Return Webhook Reply, set Respond With to
jsonand Response Body to{{ JSON.stringify($json, null, 2) }}. Confirm headers likeContent-Type: application/jsonandX-Health-Disclaimer: This is not medical advice. - In Audit Trail Record, choose Resource as
databaseand map fields to store each request and response. - Credential Required: Connect your Airtable credentials in Audit Trail Record.
Step 5: Test and Activate Your Workflow
Validate both emergency and non-emergency paths and then enable the workflow for live use.
- Click Execute Workflow and send a test POST request to the Incoming Health Hook URL.
- Verify a non-emergency request flows through Health Info Assistant → Verify AI Result → Format Health Reply → Combine Response Paths.
- Verify an emergency request (with
isEmergencytrue) flows through Critical Alert Payload and bypasses the AI node. - Confirm Return Webhook Reply returns formatted JSON and Audit Trail Record creates a database record.
- When satisfied, toggle the workflow to Active for production use.
Common Gotchas
- Airtable credentials can expire or need specific permissions. If things break, check your Airtable personal access token scopes and the base/table access first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 45 minutes if your Telegram bot and Airtable base are ready.
No. You’ll mainly connect accounts and paste in your OpenAI API key. The logic is already built, so you’re adjusting text and thresholds, not writing software.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API costs (often a few cents per day at low volume).
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you should. Update the emergency response content in the “Critical Alert Payload” step, then adjust the “Format Health Reply” step to match your required disclaimer language. Common customizations include region-specific emergency numbers, local resource links (like nurse lines), and a stricter “always refer to a clinician” message for higher-risk populations.
Usually it’s a bot token issue or the webhook isn’t pointed at the right URL. Regenerate your Telegram bot token if needed, then confirm the webhook trigger in n8n is reachable from the public internet. If it works sometimes and fails later, check for expired credentials in n8n and make sure your server clock is correct, because signed requests can get rejected when time drifts. Also look at Telegram rate limits if you’re replying in bursts.
On n8n Cloud, it depends on your execution allowance, but most small clinics can run this comfortably on a starter plan. If you self-host, there’s no platform execution limit; your server resources and OpenAI rate limits become the bottleneck instead. In practice, this workflow is lightweight and can handle typical day-to-day chat volume without sweating.
Often, yes. n8n handles branching logic (emergency vs. non-emergency), verification checks, and fallbacks without turning your automation into a tangled web of paid steps. You also get the option to self-host, which is a big deal when you want more control over data handling and costs. Zapier or Make can still be fine for simple routing, but this workflow benefits from “real” logic and message formatting in one place. If you’re torn, Talk to an automation expert and we’ll map it to your constraints.
You end up with faster replies that are easier to defend and easier to review. The workflow handles the repetitive safety language so your team can focus on the human part.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.