Team & Access

Cleaner Walkthrough (plán)

← Back to Team & Access

The cleaner walkthrough is a multi-step WhatsApp conversation cleaners use to receive their day's plán (schedule), confirm each cleaning, submit photos, and report issues. It's the cleaner-facing version of the dashboard.

Triggering the plán

A cleaner messages the bot with the word plán (Slovak) or plan (English). The bot replies with a list of their scheduled cleanings for the day (or the next day if they ask later in the evening).

Example reply:

Tvoj plán na dnes (Pondelok 19. mája):

1. Castle&River Luxe-Vydrica
   Check-out: 11:00 — guest: Johanna
   PIN: 847291

2. Pri­stavna
   Check-out: 12:00 — guest: Marcus
   PIN: 219485

3. (no further cleanings)

Odpovedz s číslom úlohy aby si začala. Napríklad "1" pre Vydricu.

Walking through a cleaning

The cleaner replies 1. The bot:

  1. Marks the cleaning as in-progress.
  2. Sends the first checklist step (e.g. "Step 1: Strip the beds. When done, send 📷 Foto").
  3. Waits for a photo OR a free-text status.
  4. On each step, validates the response, asks for the next photo.
  5. After the last step, marks the cleaning done; the corresponding task auto-resolves.

After #151:

  • Photos are accepted without the literal 📷 Foto tap — just send the photo and it's recognised.
  • The next step is prefetched in the background so there's no perceived delay between steps.

After #212:

  • Free-text replies and photo reports outside the strict checklist flow are routed through LLM intent classification. Previously they were silently dropped; now they're either matched to the right step, escalated to ops as a question, or filed as a cleaning_issue task.

Language handling

The walkthrough is sent in the cleaner's language (teammates.language). After #182, the scaffolding (button labels, system prompts) and the cleaner-facing labels are both in the same language — previously the scaffolding was hardcoded Slovak even for cleaners with language: 'uk', producing mixed messages.

Dashboard-assigned cleanings appearing in plán

After #210, cleanings assigned to a cleaner via the dashboard (rather than auto-routed from the cleaner pool) now appear in the cleaner's plán. Before the fix, dashboard-assigned cleanings were silently invisible to the cleaner — Marina had 5 SCHEDULED tasks but plán only showed 4, with 3 silently dropped.

Cleaner reports a problem

If during a cleaning the cleaner finds an issue (broken appliance, missing supplies, damage), she can:

  • Photo + caption describing the issue → routed through LLM intent classification → filed as a cleaning_issue task assigned to the host.
  • Free text in cleaner language → same classification path.
  • Tap a Problém button if the walkthrough offers it → opens a structured problem-report sub-flow.

After #212, all three paths work; before, only the structured button worked.

Admin-reassignment regression

After #171, the assign_cleaner task action respects the May-16 unassignment fix — previously a re-assignment from the dashboard could clobber a manual unassignment.


  • #151 — prefetch next item + accept photos without 📷 Foto.
  • #171assign_cleaner honours May-16 unassignment.
  • #182 — walkthrough sends consistent language end-to-end.
  • #210 — dashboard-assigned cleanings appear in plán.
  • #212 — free-text + photo reports via LLM intent classification.
  • See also: docs/cleaner-walkthrough-rollout-playbook.md for the rollout history.
Source: the FlatsBratislava operator manual.