This plug-and-play n8n workflow automates medical record digitization using Mistral’s OCR API and stores clean, structured data in Google Sheets. Whether you run a clinic or healthtech product, this no-code solution simplifies data entry from scanned or uploaded medical documents.
📌 Works seamlessly on both self-hosted and cloud-based n8n environments.
👥 Who is this for?
Hospitals and private clinics
Healthtech platforms & startups
Medical admin and document processing teams
Clinical researchers and labs
😓 What problem does it solve?
❌ Manual entry from printed forms
❌ Unstructured, scattered records
❌ Errors in data transcription
❌ Inconsistent document storage
✅ This automation brings consistency, structure, and speed to the way you handle medical documents.
✅ What this workflow does
Captures uploaded documents through a public form
Uploads file to Mistral for OCR processing
Extracts clean text from each page (PDF or image)
Parses patient fields (Name, DOB, Diagnosis, Medications, etc.)
Saves records into a structured Google Sheet
🛠️ Setup Instructions
Step 1: Google Sheet Prep
Create a Google Sheet with these columns (case-sensitive):
Name, Date of Birth, Patient ID, Date of Visit, Referring Physician,
Department, Symptoms, Blood Pressure, Heart Rate, Temperature,
Lab Results, Diagnosis, Medications, Next Appointment, Notes
Step 2: Mistral API Access
Sign up at Mistral AI
Get your API key
Ensure your plan supports file upload & OCR endpoints
Step 3: Google OAuth Credentials (Self-hosted or Cloud)
Go to n8n → Settings → Credentials, and add:
Google Sheets OAuth2
Scopes needed:
https://www.googleapis.com/auth/spreadsheets
Step 4: Import Workflow
Go to Workflows > Import from File
Upload your JSON file
Replace:
Google Sheet document ID in the "Google Sheets" node
Your Mistral API key in HTTP Header Auth
Step 5: (Optional) Make Form Public
In Cloud-based n8n:
You can expose the form as a public page
Otherwise, connect it to your website form via webhook
🧩 Customization Tips
Extract More Fields
Update the "Data cleaning" node and extend the list of fields:
const fields = ["Name", "Diagnosis", "Medications", "Symptoms", ...];
Add EHR or Database Integration
After Google Sheets, chain your custom system:
PostgreSQL
Airtable
Supabase
MongoDB
Change Output Format
Want JSON or Markdown output for internal tools?
Use the Set or Code node before the final output step.
🧪 Troubleshooting
Issue Fix
File upload fails Check Mistral API key and file type
Google Sheets not updating Verify credentials and document ID
No data parsed Check OCR quality; verify field labels in document
Workflow not triggering Ensure webhook or form is configured correctly
🌐 Self-Hosted vs Cloud Comparison
Feature Self-Hosted n8n Cloud
Public Form Access Manual setup Built-in
OAuth App Config Required Pre-configured
Storage Limits Depends on server Included with plan
Scalability Fully customizable Scales automatically
📣 Getting Support
n8n Docs
Mistral API Docs
n8n Community
Or reach out to: David Olusola ([email protected])
🌟 Like this template?
Give it a star in the template library and help other no-code builders discover it.
"Turn scanned documents into structured data with zero code."