Skip to content
Conversational Automation · n8n

VisaDesk

WhatsApp visa concierge on n8n — applicants chat and drop documents, LlamaParse OCRs them, a Groq LLM analyses the contents, and a Sheets-backed state machine pushes status updates back to chat.

    n8nTwilio WhatsApp APIGoogle SheetsLlamaParseGroqDocker

The Problem

Visa applications run on email threads and portals nobody loves: applicants don't know what to send next, documents arrive in every format, agents re-type data into trackers, and status inquiries interrupt everyone. The process needs a front desk that never sleeps.

The Solution

A conversational state machine over WhatsApp. Every message hits a Twilio webhook that normalises the payload; a Google Sheets lookup decides between onboarding a new applicant or routing a returning one by their current application state. Documents sent as attachments download automatically, upload to LlamaParse for OCR-grade parsing, poll until complete, then pass through a Groq-powered LLM chain for analysis and classification before logging to Sheets. Sheet rows act as the application's state machine, and an update trigger turns every state change into an outbound WhatsApp notification — the applicant never has to ask 'any update?'.

How the workflow runs

  1. 01 · Receive

    Every WhatsApp message lands on the Twilio webhook and is normalised into phone, name, text, and media URL.

  2. 02 · Identify

    A Sheets lookup by phone number splits new applicants (welcome + record) from returning ones.

  3. 03 · Route

    The applicant's current state drives a Switch node — each stage has its own conversation branch.

  4. 04 · Parse

    Incoming documents download from Twilio's media URL and upload to LlamaParse; polling waits for SUCCESS before fetching markdown.

  5. 05 · Analyse

    A Groq LLM chain reviews the parsed document and its verdict logs back to the applicant's row.

  6. 06 · Notify

    Any row update fires the outbound trigger — status changes reach the applicant as WhatsApp messages.

AI layer

OCR-grade document parsing
LlamaParse handles photos, scans, and PDFs of arbitrary layout before any reasoning happens.
Groq document analysis
A low-latency LLM chain classifies and evaluates parsed documents so the workflow can act, not just store.
State-aware routing
Conversation behaviour adapts per applicant based on machine-readable state, not human memory.

Automation layer

Chat-as-interface
WhatsApp is the entire UX — intake, submission, and notifications with zero portal logins.
Sheets as database
A familiar spreadsheet doubles as the applicant store and state machine, auditable by anyone.
Event-driven notifications
Status pings are triggered by data changes, not cron jobs or manual sends.
One-command infra
docker-compose ships a persistent local n8n with workflows volume-mounted.

Technical challenges

  • Applicants submit documents as WhatsApp media, not clean uploads — URLs are temporary and formats unpredictable.

    Automatic media download from Twilio's URL straight into LlamaParse, which tolerates photos and scans alike.

  • Multi-step conversations need memory, but building a full backend defeats the point of a lightweight bot.

    Google Sheets rows double as both database and state machine — lookup, routing, and audit trail in one place.

  • Parsing APIs are asynchronous; naive flows read results before they exist.

    An explicit wait-and-poll loop gates on parse status SUCCESS before fetching markdown.

Outcome

  • An applicant can complete an entire visa inquiry from their existing WhatsApp app — zero new software.
  • Documents are parsed, analysed, and logged without anyone opening a file.
  • Status updates push themselves; 'any news?' conversations disappear.

Lessons learned

  • Meet users where they already are — WhatsApp adoption beats any web portal for consumer workflows.
  • A spreadsheet can be a legitimate production datastore when state is simple and visibility matters.
  • Compose specialised services (Twilio transport, LlamaParse vision, Groq reasoning) instead of asking one tool to do everything.