Skip to content
Menu

Own product / Immigration

A tool so that no client of the firm misses their renewal

An application for immigration law firms that manages each regularised client's renewal window, sends alerts by WhatsApp or email and collects documents through a multilingual portal.

Context
Immigration law firms · Extraordinary regularisation
Project type
Own product / Immigration
Status
Live

Project sheet

Project

renuva.iaoperators.com

Type
Own product
Stack
Next.js · Supabase · WhatsApp API
Channel
Web and WhatsApp
Status
In pilot
Project summary. Not a screenshot of the application.
Tables with row-level security
17
Every table in the data model
Database rule tests
48
Run against Postgres with all migrations applied
Client portal languages
3
Spanish, Arabic and French

01 / Problem

The extraordinary regularisation leaves each firm with dozens or hundreds of permits expiring on different dates. Each renewal has its own window: it opens before expiry, there is a grace period afterwards and, once that has passed, the client risks penalty proceedings. Tracking it in a spreadsheet works until someone misses a date.

02 / Solution

How we solved it

Renuva is a multi-firm application on Next.js and Supabase, hosted in the European Union. The firm imports its client list from CSV or Excel, the system validates each NIE and works out the renewal window status for each case. Alerts go out through the official WhatsApp API when there is consent and an approved template, and by email otherwise. Clients upload their documents to a portal in Spanish, Arabic or French.

Flow

  1. 01

    The expiry date is supplied by the firm, with its source recorded

  2. 02

    The window is calculated the same way in the database and in the application

  3. 03

    First alert from 75 days before and a weekly reminder, at most one a day

  4. 04

    The portal opens with a single-use link and a code or the date of birth

  5. 05

    A case is marked ready when the professional accepts all required documents

Workstreams

Each firm isolated in the database

Isolation does not depend on the application filtering correctly. Composite keys and a trigger prevent data from being mixed or moved between firms.

  • Row-level security on every table
  • Two-factor authentication also enforced from Postgres
  • Three roles: administrator, professional and assistant

Sensitive data treated as such

NIE and passport numbers are encrypted per field, and special category documents are hidden from the assistant role.

  • AES-256-GCM encryption with a subkey per purpose
  • Private files with signed URLs valid for 60 seconds
  • Configurable retention and deletion when the case is closed

WhatsApp from the firm's own number

Each firm connects its own number through Meta's embedded signup. Without consent or a signed data processing agreement, no data goes to Meta or to the email provider.

  • Utility templates approved by Meta
  • Consent that can only be revoked

03 / Scope

What it does

  • Imports the client list from CSV or Excel with NIE validation and duplicate detection
  • Shows each case's renewal window: open, in grace period or out of time
  • Assigns a renewal route with its document list
  • Alerts the client by WhatsApp or email, manually, in bulk or on a schedule
  • Collects documents through a client portal in Spanish, Arabic and French

04 / Impact

What it solves

The firm sees on a dashboard which renewals are open, which are in the grace period and which are out of time, and no longer chases each client by hand. Renuva is currently in a pilot phase: the document lists for each route need review by a lawyer and the Arabic and French translations are provisional before it opens to real firms.

Security and confidentiality

  • NIE, passport and WhatsApp credentials encrypted with AES-256-GCM; duplicates are detected by HMAC without decrypting.
  • The portal link stores only its SHA-256 fingerprint, expires and allows five verification attempts.
  • An insert-only activity log that survives deletion of the firm.

05 / Questions

Frequently asked questions

Does Renuva calculate the expiry date?

No. The firm supplies the date from the decision or the TIE, and the system records where it came from. Renuva calculates the renewal window from that date, which is where things get forgotten.

Does it use AI with client data?

No. Renuva does not send data to any language model. The deadline and alert rules are written and tested.

Your next project

Want a case like this for your business?

Let's talk about your project