Template, risposte rapide e formattazione: tre cose diverse

I message templates si creano dal Copilot Service admin center, in Support experience > Productivity, selezionando Manage su Message templates. Il record chiede Name, Channel, Default language e Default text; dopo il salvataggio compare il pannello Message template, dove con New message si aggiunge il testo localizzato per ogni lingua da supportare. Nel testo si possono inserire slug che a runtime diventano nome completo, cognome o nickname del cliente e del representative assegnato alla conversazione. La documentazione sul messaging in uscita precisa che i template di messaggio si possono configurare solo per i canali SMS e WhatsApp.

Le quick replies stanno nello stesso menu Productivity, ma sono un’altra cosa: messaggi predefiniti che il representative sceglie durante la conversazione, descritti da Title, Locale e Message. Non vengono localizzate automaticamente, quindi per più lingue servono più record. Si raggruppano con Tags e si possono associare a uno o più workstream; se non si associa alcun workstream, la quick reply resta disponibile a tutti i representative. La lingua effettivamente mostrata dipende dalla lingua mappata sull’istanza del canale, dalle impostazioni personali del representative e dal workstream associato.

La formattazione è ancora un terzo interruttore: Productivity > Message formatting > Manage, poi nell’area Markdown settings sotto Omnichannel Configuration si porta Turn on Markdown su Yes. Da lì i representative scrivono in Markdown su chat e canali social. La pagina di riferimento sui formati Markdown è dichiarata valida per Dynamics 365 Customer Service e Dynamics 365 Contact Center—standalone, non per la versione embedded: una di quelle differenze fra i due prodotti da non dare per scontate. E il rendering non è uniforme: Apple Messages for Business e SMS non supportano i messaggi formattati, mentre blockquote, header e liste non passano su Facebook e WhatsApp.

Messaggi automatici e messaggi in uscita

I messaggi automatici sono quelli che il sistema scrive da solo. Si vedono tutti da Customer support > Customer Settings > sezione Automated messages > Manage, dove si modifica il campo Localized text oppure si disattiva un messaggio con Deactivate. Il testo accetta gli slug AgentName e QueueName e le variabili di contesto, che però non sono supportate per il canale vocale. Questa modifica vale a livello di canale; per personalizzare la singola istanza si va sul workstream, si modifica l’istanza del canale e nella pagina Behaviors si usa Add message nell’area Custom automated messages, scegliendo un trigger da Select a message trigger. Importante: se si creano messaggi personalizzati a livello di istanza, le impostazioni di canale vengono sovrascritte.

Qui sta il punto su cui l’esame gioca volentieri: chi legge il messaggio. Nella tabella dei trigger preconfigurati il destinatario è quasi sempre il cliente, ma Customer disconnected from conversation ha come destinatario il representative. Altro dettaglio che sfugge: i messaggi automatici non compaiono nel transcript della chat del cliente. Per il canale Messaging API esiste il trigger Estimate Wait Time Notification, con Message interval e l’opzione isRecurring per ripetere l’avviso finché non viene assegnato un representative.

I messaggi in uscita sono un’altra catena. Si configurano in Customer Settings > sezione Outbound > Manage, creando una New Outbound Configuration con Name, Show in timeline, Channel type (SMS o WhatsApp), Channel e Message template. Al salvataggio il sistema genera il Configuration ID, che serve poi nel flusso Power Automate: senza un account Power Automate e senza flusso di tipo Automated, Instant o Scheduled non parte nulla. La documentazione dichiara limiti di 100 contatti per richiesta e 30.000 richieste per organizzazione all’ora. Quando il cliente risponde a un messaggio in uscita, la risposta viene trattata come una normale conversazione in ingresso e instradata a un representative.

Conversazione attiva e gestione delle conversazioni

Le impostazioni del form si trovano in Workspaces > Manage su Active conversation form settings. L’opzione Enhanced active conversation form attiva il componente Customer 360 e nasconde il selettore di form fra conversazioni aperte e chiuse; Customize active conversation form mostra Queue, Start time e le opzioni di salvataggio e aggiornamento. Per riportare il selettore serve aggiungere in Power Apps la setting definition Show Conversation form selector.

Lato ciclo di vita, la conversazione ha stati Open, Active, Waiting, Wrap-up e Closed, dove Waiting vale solo per chat asincrone e persistenti, non per live chat o chiamate vocali. La differenza fra chiudere la sessione con il pulsante di chiusura e terminare con End è sostanziale: su voce e chat la conversazione torna in Open e viene riassegnata, sui canali asincroni va in Waiting liberando subito la capacità.

Il supervisore abilita le proprie azioni da Operations > Insights > Ongoing conversation insights > Manage, portando su Yes i toggle Supervisor Monitor, Supervisor Assign, Supervisor Transfer e Force Close; anche questa pagina è dichiarata valida per Customer Service e Contact Center—standalone. Nel Copilot Service workspace, sotto Conversations, la vista All ongoing conversations consente azioni massive con il ruolo Omnichannel Supervisor: assegnazione a coda, Force Close, Message Customer, Notify CSR e tracciamento in Action History, fino a 1.000 conversazioni per volta. Da non citare come funzionalità corrente, invece, il customer support swarming: è deprecato.

Allegati: chi li invia, quali tipi, quali limiti

Sul canale chat gli allegati si abilitano in Channels > Chat, scheda User features, portando File attachments su On e spuntando Customers can send file attachments e Agents can send file attachments. Nota terminologica utile: l’etichetta del portale dice ancora “Agents” ma la funzione riguarda il representative umano, non un agente AI. Le due caselle sono indipendenti, quindi si può consentire l’invio solo in una direzione. I representative possono trascinare il file nella conversazione, mentre i clienti devono usare l’icona Attach: il drag-and-drop non è supportato nel widget di live chat.

Dimensione ed estensioni si governano altrove, in Advanced Settings > Settings > Administration > System Settings: nella scheda Email il campo Maximum file size (in kilobytes), nella scheda General il campo Set blocked file extensions for attachments. Il limite predefinito è 5 MB e si può arrivare fino a 128 MB, ma per le immagini in live chat il massimo resta 20 MB. Il modello è a lista di blocco, non a lista di permessi: si dichiara ciò che non si vuole. Trappola classica da ricordare: bloccare l’estensione .txt non è supportato, e se lo si fa i transcript delle conversazioni chiuse non sono più disponibili.

Il tipo di file effettivamente accettato dipende poi dal canale. In live chat passano tutti i tipi entro i limiti e non bloccati, mentre WhatsApp via Twilio accetta solo immagini, audio, video e PDF; su WhatsApp un documento inviato dal cliente arriva al representative come semplice testo con il nome del file, per cui la doc raccomanda di convertire in PDF. A conversazione conclusa l’allegato viene archiviato nella collezione Annotations di Dataverse, i file con contenuto malevolo vengono rifiutati e non finiscono nel transcript, e in caso di trasferimento il representative che riceve la conversazione conserva l’accesso ai file.