Medical Records Automation with Mistral OCR & Google Sheets

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 (dimejicole21@gmail.com)
🌟 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."