> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mattone.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Playbook: late check-out e early check-in a pagamento

> Gestisci richieste di late check-out e early check-in: verifica automatica della disponibilità, generazione del link Stripe e notifica al team pulizie.

Quando un ospite chiede di posticipare il check-out o anticipare il check-in, Conduit verifica in automatico se lo slot è libero e, in caso affermativo, recupera la tariffa dal listino in KB e genera un link di pagamento Stripe da inviare direttamente in chat. Questo playbook spiega quando il flusso si completa senza intervento umano e quando invece il team deve intervenire per sbloccare la situazione.

## Quando si attiva

Il flusso si attiva ogni volta che un ospite invia via WhatsApp o chat una richiesta come:

* **Late check-out**: vuole lasciare l'appartamento più tardi del previsto (es. alle 13:00 invece delle 11:00)
* **Early check-in**: vuole entrare prima dell'orario standard (es. alle 12:00 invece delle 15:00)

Conduit intercetta queste richieste grazie alle sue skill di comprensione del linguaggio naturale: non è necessario che l'ospite usi termini tecnici, anche una frase come "posso restare un po' di più?" viene riconosciuta correttamente.

## Cosa fa il sistema (in ordine)

Il flusso automatico si sviluppa in quattro passaggi sequenziali:

1. **Verifica disponibilità**: Conduit chiama il tool `check-availability` per controllare se tra il check-out dell'ospite attuale e il prossimo check-in c'è una finestra libera sufficiente (es. almeno 2 ore per il late check-out).
2. **Recupero tariffa**: Se lo slot è libero, Conduit consulta la KB del listino dello studente (filtrata per `listing_id`) per trovare la tariffa applicabile al servizio richiesto.
3. **Generazione link Stripe**: Conduit usa il tool `stripe-payment-link` per creare un link di pagamento con l'importo corretto e lo invia all'ospite direttamente in chat.
4. **Notifica al team pulizie**: Alla conferma del pagamento (o in alcuni flussi subito dopo la generazione del link), Conduit attiva il workflow configurato e invia un messaggio al canale Slack del team pulizie tramite `SEND_SLACK_MESSAGE`, avvisandoli del nuovo orario.

<Note>
  Il passaggio 4, la notifica al team pulizie, è condizionato alla corretta configurazione del workflow. Se il workflow non è attivo o il canale Slack non è impostato, il pagamento viene incassato ma il team non viene avvisato. Controlla sempre questa parte durante l'onboarding di un nuovo studente.
</Note>

## Quando interviene il team

Se il flusso automatico si inceppa, segui questi passaggi nell'ordine in cui si presentano:

<Steps>
  <Step title="Conduit dice 'non posso verificare la disponibilità'">
    Il tool `check-availability` potrebbe essere assente o privo della skill associata. Vai nella configurazione di Conduit per quell'agente, verifica che il tool sia presente nell'elenco degli strumenti abilitati e che la skill corrispondente sia attiva. Controlla anche che il `listing_id` usato dal tool sia quello corretto per quell'appartamento.
  </Step>

  <Step title="Conduit fornisce una tariffa errata">
    La KB del listino potrebbe essere obsoleta o non correttamente scopata al `listing_id` del listing. Accedi alla KB dello studente, verifica che il documento del listino sia aggiornato con le tariffe correnti e che sia taggato con il `listing_id` giusto, una KB globale senza scope rischia di restituire prezzi di un altro appartamento.
  </Step>

  <Step title="L'ospite ha pagato ma il team pulizie non è stato notificato">
    Il workflow di notifica potrebbe essere disattivo o mal configurato. Verifica che il workflow "late check-out / early check-in notification" sia in stato attivo, che il canale Slack di destinazione esista e che il bot Mattone abbia i permessi per scriverci. Se necessario, invia manualmente la notifica al team pulizie e poi correggi la configurazione per evitare che si ripeta.
  </Step>
</Steps>

## Verifiche rapide

Prima di escalare un problema a un tecnico, esegui questa checklist:

<CardGroup cols={3}>
  <Card title="Tool check-availability" icon="wrench" href="/integrazioni/conduit/troubleshooting">
    Il tool è presente nell'agente e ha una skill attiva? Il `listing_id` è corretto?
  </Card>

  <Card title="KB listino aggiornata" icon="book-open" href="/integrazioni/conduit/kb">
    La KB contiene il listino aggiornato? È scopata per `listing_id` e non globale?
  </Card>

  <Card title="Workflow notifica attivo" icon="bell" href="/integrazioni/conduit/workflow">
    Il workflow late check-out è attivo? Il canale Slack è configurato e raggiungibile?
  </Card>
</CardGroup>

<Tip>
  Se lo slot è oggettivamente libero (nessun check-in o check-out nelle ore adiacenti in KrossBooking) ma Conduit risponde che non è disponibile, il problema è quasi sempre nella skill `check-availability`: potrebbe essere disabilitata oppure usare un `listing_id` diverso da quello della prenotazione. Aprila, controlla il parametro `listing_id` e verifica che la skill sia nello stato "attivo".
</Tip>

<Tip>
  **▷ Prompt Claude Code: Late/Early check-in autonomo**  ·  incolla in Claude Code:
</Tip>

```text theme={null}
Contesto: in questa sessione di Claude Code NON hai il repo/codice caricato.
Per prima cosa apri il repo `~/Projects/api-kross-mattone` (conduit-custom-tool
check-availability, workflow, guardrail) e LEGGI la pagina mattone-docs
/casistiche/late-early-checkin; per KB/guardrail/workflow/test usa l'MCP Conduit.
Poi procedi:

Aiutami a impostare/verificare il flusso late-check-out ed early-check-in
autonomo per [Cosmica IT / Cosmica DXB / studente NOME] seguendo mattone-docs
/casistiche/late-early-checkin. Controlla i 4 pezzi: 1) Listino con voci FISSE
(importo + orario limite) scoped per-listing; 2) guardrail eccezione-listino
modificato IN-PLACE (conteggio guardrail invariato); 3) tool availability giusto
per PMS (Kross=check-availability custom, Hostaway=nativo); 4) workflow con
lo step di notifica WhatsApp al CLEANER (spesso manca, c'è solo Slack FYI).
Testa: slot libero -> link+notifica; slot occupato -> escala.
```

<CardGroup cols={2}>
  <Card title="Conduit, Workflow" icon="arrow-up-right-from-square" href="/integrazioni/conduit/workflow">Schema e step del flusso</Card>
  <Card title="Guardrail (eccezione-listino)" icon="arrow-up-right-from-square" href="/integrazioni/conduit/guardrail">Come autorizzare la vendita</Card>
</CardGroup>
