← all cases

case 02 · Saniiin production

AI ticketing hub · Sanii

Monitoring ~140 WhatsApp groups with AI classification. Absences and complaints become tickets automatically, before any family is left without a caregiver.

Context

Sanii connects families with caregivers for elderly people. The whole operation runs in WhatsApp groups: about 70 families, two groups per family, ~90 shifts a day and ~200 caregivers.

The operations team couldn’t keep up. Announced absences, last-minute absences and family complaints got lost in the conversations. The worst case was real: a family waking up with no caregiver. Nothing filtered or classified the messages.

I designed and delivered, in 30 days, a system that silently reads every group, uses AI to spot what matters and turns it into an actionable ticket for the team.

Architecture

  1. webhook~140 groups
  2. pre-filterrules, no llm
  3. debounceredis
  4. classificationgemini
  5. dedupllm-as-judge
  6. ticket + alertairtable · whatsapp
Only messages that pass the pre-filter reach the model.

Decisions and challenges

Cost under control from day one

Sending 140 whole groups to an LLM would be slow and expensive. The rule-based pre-filter runs before any AI call and cuts about 80% of inference cost.

A rate limit n8n couldn’t wait for

After a 429, Airtable requires a 30-second wait, but n8n caps retries at 5 seconds. I built a 35-second backoff branch, with a manual-recovery alert if it still fails.

The fallback nobody had tested

The fallback model pointed to a retired model and returned 404. It only surfaced when the primary model failed. Since then I test fallback paths on purpose, not just the happy path.

When an external system disappears

The ticketing system used at the start was removed from the environment without notice. I restructured the flow so ticket status lives 100% in Airtable, and operations were back the same day.

No single point of failure in a person

A personal credential rotation silently took down several workflows. I moved everything to company-owned tokens, so operations don’t depend on the developer’s account.

Safe changes in production

Every feature has a kill switch, and every change has a backup and a rollback script. Rollout was gradual: 10 pilot groups first, the whole operation three days later.

Results

Available for projects

Ready to put an agent into production?

Tell me about your operation. I reply within one business day.