Critical allergy alerts before the patient reaches the room — a patient intake workflow for clinics

Patient intake forms contain a lot of information that needs to get to the right people quickly. The front desk needs the basics — name, insurance, reason for visit. The clinical team needs something more specific: current medications, medical history, and most critically, allergies. A penicillin allergy that doesn’t get flagged before a prescription is written is a serious clinical risk.

At most small clinics, a receptionist manually reads through the intake form, types the information into a system, and either verbally alerts clinical staff about critical allergies or hopes the information makes it into the chart before anyone needs it.

Built a workflow that processes patient intake forms the moment they’re uploaded to Drive, creates the patient record, and fires a Slack alert to the clinical team if any critical allergy is detected — before the patient reaches the exam room.

What it does

Intake form PDF dropped in Drive → extracts full patient profile → creates patient record → checks for critical allergies → routes to clinical alert (critical allergy) or front desk notification (standard intake)

About 10-12 seconds per form.

What gets extracted

Patient information:

  • First name, last name, date of birth, gender

  • SSN (last 4 digits only)

  • Phone, email, full address

Insurance:

  • Provider name, policy number, group number

  • Subscriber name and relationship

Medical history:

  • Current and past medical conditions

  • Past surgeries with dates

  • Family medical history

Current medications:

  • Each medication — name, dosage, frequency

Allergies:

  • Each allergen with reaction/severity description

Emergency contact:

  • Name, relationship, phone

Reason for visit

Critical allergy detection

The Code node checks every extracted allergy against a configurable list of critical allergens:

  • Penicillin

  • Sulfa

  • Latex

  • Iodine

  • Aspirin

  • NSAIDs

If any match → Slack alert to #clinical-alerts

If no match → Standard notification to #patient-intake

Add more allergens by editing the criticalAllergens array in the Process Intake Data node.

What the clinical team sees in Slack (critical allergy)


🚨 CRITICAL ALLERGY ALERT

Patient: Maria Santos

Patient ID: PT-MX4F2K

DOB: 1978-04-12

⚠️ ALLERGIES: Penicillin (anaphylaxis); Sulfa (rash)

Reason for Visit: Sore throat, fever 3 days

That alert fires within 12 seconds of the intake form landing in Drive. Before the patient is called from the waiting room.

What the front desk sees (standard intake)


✅ New Patient Intake

Patient: James Holloway

Patient ID: PT-N3K7P

Age: 42

Insurance: Blue Cross Blue Shield - POL-2847291

Reason: Annual physical exam

What lands in Google Sheets

Each row: Patient ID, Name, DOB, Age, Gender, Phone, Email, Insurance, Conditions, Medications, Allergies, Reason for Visit, Emergency Contact, Intake Date

Running patient log with full intake data. Searchable by patient name, filterable by intake date.

Setup

You’ll need:

  • Google Drive (“Intake Forms” folder)

  • Google Sheets (free)

  • n8n instance (self-hosted — required for HIPAA-compliant PHI handling)

  • PDF Vector account (free tier: 100 credits/month)

  • Slack (two channels: one for clinical alerts, one for front desk)

About 15 minutes to configure.

HIPAA compliance note: This workflow processes Protected Health Information. It must run on a self-hosted n8n instance with encryption enabled, restricted access controls, and audit logging. Do not run on shared or cloud-hosted n8n instances.

Download

Workflow JSON:

patient-intake-processor.json

Full workflow collection:

khanhduyvt0101/workflows


Setup Guide

Step 1: Get your PDF Vector API key

Sign up at pdfvector.com — free plan works for testing.

Step 2: Create Drive folder and Sheet

Folder: “Intake Forms” — copy folder ID.

Sheet headers:


Patient ID | Name | DOB | Age | Gender | Phone | Email | Insurance | Conditions | Medications | Allergies | Reason for Visit | Emergency Contact | Intake Date

Step 3: Set up two Slack channels

  • #clinical-alerts — for critical allergy warnings (clinical staff)

  • #patient-intake — for standard new patient notifications (front desk)

Step 4: Import and configure

Download JSON → n8n → Import from File.

Google Drive Trigger: Connect Drive, paste folder ID

PDF Vector - Extract Intake: Add credential, paste API key

Process Intake Data:

  • No config needed for basic use

  • To add critical allergens: edit criticalAllergens array — add items like 'aspirin', 'contrast dye', 'morphine'

Create Patient Record: Connect Sheets, paste Sheet ID

Critical Alert: Connect Slack, select #clinical-alerts channel ID

Notify Front Desk: Connect Slack, select #patient-intake channel ID


Accuracy

Tested on standard patient intake form templates from clinic management software.

  • Patient name, DOB, contact info: ~97%

  • Insurance provider and policy number: ~94%

  • Medication list with dosage: ~91% — reliable when clearly formatted

  • Allergy extraction: ~95% — allergies are usually listed prominently on intake forms

  • Critical allergy detection: exact match + partial match — “Penicillin allergy” triggers on “penicillin”

  • Medical conditions: ~89% — depends on how checkboxes vs free text is used

Handwritten intake forms: accuracy drops significantly. Typed or digitally completed forms work best.

Cost

3-4 credits per intake form. Free tier handles ~25-30 forms per month — enough for a small practice’s daily intake volume.

Customizing it

Expand critical allergen list:

Edit criticalAllergens in the Code node. Add: 'contrast dye', 'morphine', 'codeine', 'aspirin' for your specific clinical context.

Add more Slack routing:

Before the IF node, add a Switch node to also route by reason for visit — flag urgent symptoms to a separate channel, route pediatric patients differently.

Connect to an EHR:

Replace or supplement the Sheets node with an HTTP Request to your EHR’s API (Epic, Athenahealth, etc.) to create the patient encounter directly.


Important

This workflow handles Protected Health Information (PHI). It must be deployed on a secured, self-hosted n8n instance with proper HIPAA safeguards in place. Consult your compliance team before deploying in a clinical setting.


PDF Vector n8n integration

Full workflow collection

Questions? Drop a comment.

1 Like

this is a smart routing design — the 12-second turnaround for critical allergy detection before the patient reaches the room matters more than most intake workflows get right. one thing im curious about: at 89% accuracy on medical conditions, whats your fallback when the extraction is ambiguous or incomplete? are those flagged for manual review, or do they pass through to the sheet as-is?