# Strumenti · Supporto

> Gli strumenti MCP del modulo Supporto (coworking): aprire un ticket con foto, elencare la coda e i miei ticket, smistare, assegnare, risolvere, nota interna, annullare, riaprire, foto e scadenze, più la configurazione di chi risponde e della scadenza per categoria.

Il modulo [Supporto](/espacos/suporte) tramite l'assistente: il residente apre e segue i ticket (con foto), il team smista la coda, risponde, scrive note interne e risolve, e l'amministratore configura chi risponde e le scadenze. I ruoli sono quelli della schermata: l'assistente non fa mai più di quanto farebbe la persona collegata.

Ogni strumento ha un'etichetta: <span class="tool-kind tool-kind-read">Solo lettura</span> non cambia nulla, <span class="tool-kind tool-kind-write">Modifica</span> crea o cambia qualcosa subito, e <span class="tool-kind tool-kind-confirm">Chiede conferma</span> agisce solo dopo il tuo sì a un riepilogo. Vedi [Denaro e conferma](/mcp/dinheiro-e-confirmacao).

## In breve

| Strumento | Cosa fa | Ruolo minimo | Tipo |
|---|---|---|---|
| [`get_support_space_settings`](#get-support-space-settings) | Come funziona lo spazio: limiti, scadenze e, per il team, chi risponde | Qualsiasi | <span class="tool-kind tool-kind-read">Solo lettura</span> |
| [`get_support_overview`](#get-support-overview) | La coda in numeri | Moderatore o finanza | <span class="tool-kind tool-kind-read">Solo lettura</span> |
| [`list_support_tickets`](#list-support-tickets) | Tutta la coda, con filtri e scadenze | Moderatore o finanza | <span class="tool-kind tool-kind-read">Solo lettura</span> |
| [`list_my_support_tickets`](#list-my-support-tickets) | I tuoi ticket | Qualsiasi | <span class="tool-kind tool-kind-read">Solo lettura</span> |
| [`get_support_ticket`](#get-support-ticket) | Un ticket con la conversazione e le foto | Qualsiasi (il residente legge i propri) | <span class="tool-kind tool-kind-read">Solo lettura</span> |
| [`get_support_resource_open_count`](#get-support-resource-open-count) | Quanti ticket aperti ha un elemento | Qualsiasi | <span class="tool-kind tool-kind-read">Solo lettura</span> |
| [`create_support_ticket`](#create-support-ticket) | Apre un ticket, con foto | Qualsiasi | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`update_support_ticket`](#update-support-ticket) | Smistamento: stato, priorità, categoria, assegnatario, luogo | Moderatore o finanza, e rispondere alla categoria | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`add_support_comment`](#add-support-comment) | Commenta, o scrive una nota interna | Qualsiasi (la nota, solo chi risponde) | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`cancel_support_ticket`](#cancel-support-ticket) | Annulla un ticket | Qualsiasi (il residente, il proprio) | <span class="tool-kind tool-kind-confirm">Chiede conferma</span> |
| [`reopen_support_ticket`](#reopen-support-ticket) | Riapre un ticket | Qualsiasi (il residente, il proprio risolto) | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`add_support_photo`](#add-support-photo) | Allega una foto | Qualsiasi | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`replace_support_photo`](#replace-support-photo) | Sostituisce una foto con un'altra | Qualsiasi | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`remove_support_photo`](#remove-support-photo) | Rimuove una foto | Qualsiasi | <span class="tool-kind tool-kind-confirm">Chiede conferma</span> |
| [`delete_support_comment`](#delete-support-comment) | Elimina un messaggio dalla conversazione | Amministratore | <span class="tool-kind tool-kind-confirm">Chiede conferma</span> |
| [`delete_support_ticket`](#delete-support-ticket) | Elimina un ticket e le sue foto | Amministratore | <span class="tool-kind tool-kind-confirm">Chiede conferma</span> |

Per ruolo, il proprietario e l'amministratore vedono tutti e 16; il moderatore e la finanza, 14; il membro, 11. Il team è il proprietario, l'amministratore, il moderatore e la finanza, ma **chi risponde** (smistare, assegnare, rispondere, annotare) è solo chi è nella selezione della categoria; **fuori da essa, l'API rifiuta con un `403` tradotto** e l'assistente lo riferisce. Vedi [Chi risponde](/espacos/suporte#chi-risponde).

Lo spazio si crea con [`create_space`](/mcp/ferramentas-comunidade#create-space) e `module: "support"`; [`update_space`](/mcp/ferramentas-comunidade#update-space) cambia solo ciò che invii.

## La configurazione dello spazio

L'argomento `support` di `create_space` e `update_space` accetta (ciò che invii si unisce a ciò che esiste già):

| Campo | Tipo | Descrizione |
|---|---|---|
| `allow_urgent_flag` | vero o falso | Il residente può segnare "è urgente" (diventa priorità alta). Predefinito: sì |
| `max_open_per_member` | da 0 a 1000 | Ticket aperti per residente; 0 = nessun limite. Predefinito: 10 |
| `location_hint` | testo fino a 200 | Il suggerimento del campo "Luogo" |
| `default_assignee_id` | id o `null` | Chi riceve i nuovi ticket |
| `responders` | oggetto | Chi risponde: `tags` (**nomi** dei tag), `group_ids`, `profile_ids` e `by_category` (la selezione di ogni categoria, che sostituisce quella dello spazio). Proprietario e amministratore rispondono sempre; senza selezione, risponde tutto il team |
| `sla.enabled` | vero o falso | Attiva le scadenze. Predefinito: sì |
| `sla.business_hours` | `{days, start, end}` | Giorni della settimana (da 0 = domenica a 6 = sabato) e orario `HH:MM`, nel fuso orario della community. Predefinito: lun-ven, dalle 09:00 alle 18:00. Senza festivi |
| `sla.categories` | per categoria | `first_response` e `resolution`, ciascuno con `value` (intero) e `unit` (`hours` o `days`). Predefinito: 4 ore e 1 giorno |

Le categorie sono `FACILITIES`, `CLEANING`, `EQUIPMENT`, `INTERNET`, `ACCESS`, `BILLING` e `OTHER`; i tipi, `MAINTENANCE` e `REQUEST`; gli stati, `OPEN`, `IN_PROGRESS`, `WAITING_REQUESTER`, `RESOLVED` e `CANCELED`; le priorità, `LOW`, `NORMAL`, `HIGH` e `URGENT`.

## `get_support_space_settings`

<span class="tool-kind tool-kind-read">Solo lettura</span>

**Come funziona lo spazio.** `allowUrgentFlag`, `maxOpenPerMember`, `locationHint`, `hasBookings` (se si può usare `resource_id`) e `sla`. Il team riceve anche `responders`, `defaultAssigneeId` e `canAnswerCategories` (le categorie a cui rispondi **tu**); il residente non riceve mai `responders`. *Ruolo: qualsiasi con accesso allo spazio.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `space` | id o link | Sì | Lo spazio Supporto (`list_spaces`) |

## `get_support_overview`

<span class="tool-kind tool-kind-read">Solo lettura</span>

**La coda in numeri:** `open`, `inProgress`, `waitingRequester`, `unassigned`, `mine`, `overdue` (scadenza superata, conteggio attivo) e `total`. Senza `space`, somma tutti gli spazi Supporto. *Ruolo: moderatore o finanza.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `space` | id o link | No | |

**Chiedi così:** *"Com'è la coda dei ticket?"*

## `list_support_tickets`

<span class="tool-kind tool-kind-read">Solo lettura</span>

**Tutta la coda**, per attività più recente o per priorità. Con le scadenze attive, ogni ticket porta `sla` (`firstResponseDueAt`, `resolveDueAt`, `paused`, e le date leggibili nel fuso orario della community) e, per il team, `sla.overdue`. Ogni voce dice cosa puoi fare (`canAnswer`, `canAssign`...). Il residente usa `list_my_support_tickets`. *Ruolo: moderatore o finanza.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `space` | id o link | No | |
| `kind`, `status`, `priority`, `category` | valori sopra | No | Un valore ciascuno |
| `assignee_profile_id` | id | No | Ticket di questo assegnatario |
| `unassigned` | vero o falso | No | Senza assegnatario |
| `mine` | vero o falso | No | Assegnati a te |
| `overdue` | vero o falso | No | Scadenza superata e conteggio attivo (**In attesa di risposta** non conta) |
| `due_today` | vero o falso | No | La prossima scadenza cade oggi; solo negli spazi con scadenze |
| `requester_profile_id` | id | No | Ticket di questa persona |
| `resource_id` | id | No | Ticket di questo elemento delle Prenotazioni |
| `q` | testo | No | Numero, `#42` o parte del titolo |
| `sort` | `activity` o `priority` | No | |
| `page`, `limit` | numeri | No | Paginazione (fino a 100) |

**Chiedi così:** *"Quali ticket sono in ritardo o scadono oggi?"*

## `list_my_support_tickets`

<span class="tool-kind tool-kind-read">Solo lettura</span>

**I ticket che hai aperto**, dal più recente al più vecchio. *Ruolo: qualsiasi con accesso allo spazio.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `space` | id o link | No | |
| `kind`, `status`, `priority`, `category` | valori sopra | No | |
| `resource_id` | id | No | |
| `q` | testo | No | |
| `page`, `limit` | numeri | No | |

## `get_support_ticket`

<span class="tool-kind tool-kind-read">Solo lettura</span>

**Un ticket con la cronologia:** messaggi, storico delle modifiche, le note interne (**solo per il team**) e le foto come link di breve durata. Il residente legge i propri; il team li legge tutti, anche fuori dalla selezione di chi risponde. Un altro ticket: `404`. *Ruolo: qualsiasi.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `ticket_id` | id | Sì | Da `list_support_tickets` o `list_my_support_tickets` |

## `get_support_resource_open_count`

<span class="tool-kind tool-kind-read">Solo lettura</span>

**L'avviso di duplicato.** Solo il numero di ticket aperti di una sala, scrivania o attrezzatura delle Prenotazioni, senza titolo né autore, per avvisare prima di aprirne un altro. *Ruolo: qualsiasi.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `resource_id` | id | Sì | Da `list_booking_resources` |

## `create_support_ticket`

<span class="tool-kind tool-kind-write">Modifica</span>

**Aprire un ticket**, con foto. Il team viene avvisato tramite la coda delle e-mail. Chi risponde alla categoria può anche impostare la `priority` e aprire **a nome di un residente** (`requester_profile_id`): il residente riceve un'e-mail, quindi l'assistente mostra prima chi la riceverà. Oltre il limite di ticket aperti dello spazio, `409`; oltre 10 aperture all'ora, `429`. Ripetere la chiamata con lo stesso `client_request_id` restituisce lo stesso ticket. *Ruolo: qualsiasi con accesso allo spazio.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `space` | id o link | Sì | Lo spazio Supporto |
| `kind` | `MAINTENANCE` o `REQUEST` | Sì | |
| `category` | categoria | Sì | |
| `title` | testo | Sì | Fino a 140 caratteri |
| `description` | testo | Sì | Fino a 10000 |
| `resource_id` | id | No | Sala, scrivania o attrezzatura (`list_booking_resources`) |
| `location_text` | testo | No | Fino a 120 caratteri; vale senza elemento |
| `urgent` | vero o falso | No | Diventa priorità alta, se lo spazio lo consente |
| `priority` | priorità | No | Solo chi risponde |
| `requester_profile_id` | id | No | Solo chi risponde: apre a nome di questo residente |
| `photos` | elenco | No | Fino a 5, ciascuna con `image_url` o `image_base64` (+ `image_type`) |
| `client_request_id` | testo | No | Evita duplicati con un tocco ripetuto |

**Chiedi così:** *"Apri un ticket di manutenzione: il proiettore della Sala 3 non si accende, ecco la foto."*

## `update_support_ticket`

<span class="tool-kind tool-kind-write">Modifica</span>

**Lo smistamento.** Solo chi **risponde alla categoria** del ticket; fuori da essa, `403` tradotto. Invia solo ciò che cambia. `message` accompagna `RESOLVED` o `WAITING_REQUESTER` come risposta pubblica, e il residente riceve un'e-mail; assegnare avvisa l'assegnatario. `RESOLVED` e `CANCELED` tornano solo a `OPEN`. `URGENT` si imposta solo qui. Ogni modifica entra nella conversazione. *Ruolo: moderatore o finanza, e rispondere alla categoria.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `ticket_id` | id | Sì | |
| `status` | stato | No | |
| `priority` | priorità | No | |
| `kind`, `category` | valori | No | La categoria cambia solo verso una a cui rispondi anche tu |
| `assignee_profile_id` | id o `null` | No | Deve rispondere alla categoria; `null` rimuove l'assegnatario |
| `resource_id` | id o `null` | No | L'elemento delle Prenotazioni |
| `location_text` | testo o `null` | No | |
| `title` | testo | No | |
| `message` | testo | No | Insieme a `RESOLVED` o `WAITING_REQUESTER` |

**Chiedi così:** *"Assegna il ticket #42 a Pedro e risolvilo dicendo che abbiamo cambiato la lampadina."*

## `add_support_comment`

<span class="tool-kind tool-kind-write">Modifica</span>

**Commentare, con foto.** Il residente commenta i propri (in **In attesa di risposta** torna a **In corso**; in uno **Risolto**, lo **riapre**); anche chi risponde, e il residente riceve un'e-mail (due risposte in 10 minuti generano una sola e-mail). Con `internal: true` è una **nota interna**: solo chi risponde può scriverla, il residente non la vede mai e **non invia e-mail**. I commenti non si modificano. *Ruolo: qualsiasi (la nota, solo chi risponde).*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `ticket_id` | id | Sì | |
| `body` | testo | Sì | Fino a 10000 caratteri |
| `internal` | vero o falso | No | Nota interna |
| `photos` | elenco | No | Fino a 5, come in `create_support_ticket` |

**Chiedi così:** *"Nel ticket #42, annota internamente che il tecnico viene giovedì."*

## `cancel_support_ticket`

<span class="tool-kind tool-kind-confirm">Chiede conferma</span>

**Annullare un ticket aperto.** Diventa **Annullato**; non si elimina nulla. Il residente annulla il proprio finché non è risolto; anche chi risponde alla categoria (un duplicato, per esempio). Risolto o già annullato: `400`. *Ruolo: qualsiasi, nei limiti sopra.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `ticket_id` | id | Sì | |

**Restituisce:** alla prima chiamata, il riepilogo (numero, titolo, stato, residente) e il codice di conferma.

## `reopen_support_ticket`

<span class="tool-kind tool-kind-write">Modifica</span>

**Riaprire.** Il residente riapre il proprio **Risolto**, e il team viene avvisato; chi risponde riapre anche l'**Annullato**. Un altro stato: `400`. La scadenza di risoluzione riparte da capo. *Ruolo: qualsiasi, nei limiti sopra.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `ticket_id` | id | Sì | |

## `add_support_photo`

<span class="tool-kind tool-kind-write">Modifica</span>

**Allegare una foto** (JPEG, PNG o WebP, fino a 20 MB), conservata in privato: la aprono solo il residente e il team. Fino a 20 per ticket (`409` oltre). Il residente nel proprio; chi risponde in qualsiasi. *Ruolo: qualsiasi.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `ticket_id` | id | Sì | |
| `image_url` o `image_base64` | link o testo | Sì | L'immagine; `image_base64` va con `image_type` |

## `replace_support_photo`

<span class="tool-kind tool-kind-write">Modifica</span>

**Sostituire una foto.** La nuova viene allegata prima; poi la vecchia viene rimossa e il file eliminato. Il residente sostituisce le foto dell'apertura e dei propri commenti; chi risponde, qualsiasi. *Ruolo: qualsiasi.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `ticket_id` | id | Sì | |
| `photo_id` | id | Sì | Da `get_support_ticket` |
| `image_url` o `image_base64` | link o testo | Sì | La nuova immagine |

## `remove_support_photo`

<span class="tool-kind tool-kind-confirm">Chiede conferma</span>

**Rimuovere una foto** (il file viene eliminato definitivamente). Chi risponde rimuove qualsiasi foto; il residente, quelle dell'apertura e dei propri commenti. *Ruolo: qualsiasi, nei limiti sopra.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `ticket_id` | id | Sì | |
| `photo_id` | id | Sì | Da `get_support_ticket` |

**Restituisce:** alla prima chiamata, il riepilogo e il codice di conferma.

## `delete_support_comment`

<span class="tool-kind tool-kind-confirm">Chiede conferma</span>

**Eliminare un messaggio dalla conversazione**, con le sue foto. Le righe dello storico non si eliminano. *Ruolo: amministratore.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `ticket_id` | id | Sì | |
| `comment_id` | id | Sì | Da `get_support_ticket` |

## `delete_support_ticket`

<span class="tool-kind tool-kind-confirm">Chiede conferma</span>

**Eliminare un ticket e le sue foto**; nulla viene anonimizzato né conservato. Per chiudere davvero un ticket usa `update_support_ticket` (Risolto) o `cancel_support_ticket`. *Ruolo: amministratore.*

| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `ticket_id` | id | Sì | |

**Restituisce:** alla prima chiamata, il riepilogo (numero, titolo, stato, residente, foto) e il codice di conferma.

## Correlati

- [Supporto](/espacos/suporte)
- [Ricette](/mcp/receitas)
- [Prenotazioni e Appuntamenti](/mcp/ferramentas-reservas)
- [Denaro e conferma](/mcp/dinheiro-e-confirmacao)
