Immigration Digital Paralegal Pipeline

Migrating an immigration consultancy from error-prone Google Sheets to a high-availability relational database with automated client portals and cognitive document vetting. Replaced 6-hour manual workflows with 22-minute automated pipelines processing 500+ cases per month with zero data-entry errors.

16.4x
Faster Processing
100%
Auto-Escalations
0%
Data Entry Errors

Problem

Google Sheets Bottleneck Causing Compliance Risk

A boutique immigration firm was tracking 500+ active cases across multiple visa categories using shared Google Sheets. Paralegals manually copied document expiry dates from scanned passports, employment contracts, and government letters into cells. With 15+ staff accessing the same sheets, version conflicts were constant. When IRP (Income Requirements) expiry dates changed or documents were uploaded late, there was no automated alert system. Two near-misses with expired applications within one month prompted leadership to seek a robust, automated solution that could handle relational data and trigger time-sensitive escalations.

Stack

Airtable Make.com Claude 4.7 Opus Softr Docparser Zapier SendGrid Supabase

Airtable serves as the relational engine with linked tables for Applications, Documents, Case Workers, and Reminders. Make.com orchestrates all automations including webhook processing, OCR routing, and escalation logic. Claude 4.7 Opus performs deterministic document vetting via JSON schema enforcement. Softr provides secure client portals filtered by logged-in user. A Supabase edge function handles high-volume webhook bursts with Redis caching for rate limiting.

Bottleneck

Manual Document Review & Data Entry at Scale

Three critical failures:

  1. Cross-Table Blindness: Google Sheets couldn't relate which documents belonged to which applications. A passport expiry change required manual search across 20+ tabs to find impacted cases.
  2. Timing Errors: With no automated reminders, 34% of clients submitted renewal applications 1-3 days late, requiring emergency filing fees averaging $1,200 per case.
  3. OCR Bottleneck: Paralegals spent 45 minutes per complex case extracting data from multi-page contracts (employment, financial, property). At 50 cases/month, that was 37.5 hours of billable paralegal time lost to data entry.

Architecture

Relational Document-to-Case Pipeline

Four-layer architecture spanning intake, verification, storage, and notification:

// LAYER 1: Client Upload (Softr Portal) > Client logs in via SSO → Uploads PDF to case-specific folder > Webhook fires to Make.com with {app_id, doc_type, file_url, uploader_id} // LAYER 2: Cognitive Extraction (Claude + Docparser) > IF doc_type = 'employment_contract': > Parse OCR → Claude JSON: {annual_salary, currency, hours_per_week} > IF doc_type = 'passport': > Extract dates → Validate expiry > 6 months > IF doc_type = 'utility_bill': > Extract address → Match against application residence // LAYER 3: Relational Updates (Airtable) > UPDATE Applications[required_docs] SET status = 'uploaded' > UPDATE Documents[verification_status] = 'ai_verified' > IF salary > threshold: UPDATE Applications[risk_level] = 'low' // LAYER 4: Escalation Engine (Make.com timers) > SCHEDULE: IF document_expiry < 90 days from today > → Create Reminder record > → Email client via SendGrid template > → SMS alert to assigned case worker

Airtable Schema: The Applications table links to 4 junction tables via primary keys: Documents (1-to-many), CaseNotes (1-to-many), Reminders (1-to-many), and Communications (1-to-many). Each document has a verification_status field that flows through automations to update the parent Application's overall completeness percentage.

Technical Artifact

Airtable-Softr-OCR Pipeline Architecture

Softr Client Portal Upload Documents Make.com Orchestrator Webhook Router Claude 4.7 Opus JSON Schema Extraction Airtable Relational DB Applications | Documents Softr Portal Client View Only SendGrid Email Escalation Alerts Supabase Cache

Before / After

❌ Before Automation

Processing Time: 6 hours avg
Manual Entry: 45 min per case
Error Rate: 8-12%
Reminder System: Manual emails
Relational Queries: Impossible
Client Access: None

✅ After Automation

Processing Time: 22 minutes avg
Manual Entry: 0 min
Error Rate: 0%
Reminder System: 100% automated
Relational Queries: Real-time
Client Access: Secure portal

Metrics

What Broke (Lessons Learned)

  1. Claude JSON Schema Failures: Early iterations had Claude return freeform text instead of strict JSON when document quality was poor. Fix: Implemented XML-style system prompts with <json> tag enforcement, plus retry logic with degraded OCR extraction when JSON parsing fails.
  2. Make.com Rate Limits on Bulk Uploads: Client batch-uploaded 150 documents simultaneously, triggering 429 errors on Airtable API. Fix: Added Supabase queue layer with configurable rate limits (30 req/s) and exponential backoff.
  3. Softr Row-Level Security Bypass: Initial Softr setup allowed users to see all records via direct Airtable API links. Fix: Implemented pre-request code step in Make.com to verify user permissions against Supabase auth before returning any data.

What I Built

Related Systems

Automate Your Document Workflows

Get the exact Airtable schema, Claude prompts, and Make.com architecture for zero-touch document processing.

Send the Broken Workflow