Workstream e istanza di canale non sono la stessa cosa

Il workstream è il contenitore che arricchisce, instrada e assegna i work item, e viene associato a un canale. Si crea in Copilot Service admin center da Workstreams in Customer support, con New workstream, e la scelta decisiva è il campo Type, che ammette tre valori: Messaging per instradare le conversazioni da live chat, SMS, social e Microsoft Teams; Record per instradare record come case, email e activity; Voice per le chiamate ai numeri di supporto.

Il campo Channel compare solo se hai scelto Messaging, e lì selezioni l’istanza di canale vera e propria. Se scegli Chat appare in più la casella Make chats persistent. Il Work distribution mode si sceglie fra Push e Pick al momento della creazione e non è più modificabile dopo; per voice esiste solo la modalità push. Completa il quadro il Fallback queue, con le opzioni Create new e Choose existing.

Il punto che l’esame verifica quasi sempre in modo indiretto è la cardinalità: un workstream può appartenere a più canali dello stesso tipo, per esempio più canali chat, e in quel caso tutte le conversazioni di quei canali ereditano le impostazioni di routing e di work assignment del workstream. Il widget quindi non è il workstream: è la faccia visibile di un’istanza di canale che vive dentro un workstream. Se ti viene chiesto dove si cambia la capacity o la coda di fallback, la risposta è il workstream; se ti viene chiesto dove si cambia il colore del pulsante o il testo di benvenuto, la risposta è l’istanza di canale.

Configurare il canale chat e costruire il widget

Prima di configurare qualunque cosa, il canale va provisioned: Channels in Customer Support, poi Manage per Manage channels, spunti i canali e salvi. I canali che si possono provisionare sono Chat, Voice, SMS, Social e Microsoft Teams, e le checkbox restano disabilitate se la licenza non li copre. Nella versione trial di Dynamics 365 Contact Center sono tutti abilitati di default e quindi appaiono in grigio.

Per il canale chat il percorso è Channels, poi Manage per Chat, pagina Chat channels, e Add chat channel. Qui scegli fra la versione Classic e la versione Modern, che è una production-ready preview. La procedura classica ti porta attraverso Channel details con Name e Language; Chat Widget con Title, Subtitle, Theme color, Logo URL e Representative display name, più i toggle per Proactive chat, Reconnect to previous chat, gli orari di operatività e Only show widget on the provided domains; Behaviors, dove stanno i messaggi automatici, il pre-conversation survey, il post-conversation survey, le Authentication settings (obbligatorie per il persistent chat), Show position in queue, Show average wait time e Customer location detection; User features, con File attachments, le notifiche al cliente, i transcript, Voice and video calls, Screen sharing e Co-browse; infine Notifications e Review and finish con Create channel.

La versione Modern aggiunge le sezioni General Configuration, Workstream details, Color Settings, Chat button, Header, Intro page. Su un canale chat che esiste già puoi affiancarla con Add Modern UI dalla pagina del workstream, tenendo la configurazione esistente. Ogni canale chat può ospitare entrambe le versioni: Copy testing script carica sempre quella specifica versione per i test, mentre Set as active decide quale versione serve il tag generico già deployato, e permette il rollback alla Classic.

Incorporare il widget in un sito o in un portale

Il codice si prende da Channels > Chat, selezionando l’istanza e scegliendo Edit: nel tab Chat widget, sezione chat widget, c’è lo snippet da copiare. Per un sito si incolla nel sorgente HTML dentro <body>. Per un portale Power Apps si passa invece dal Portal Management app, Portal > Content Snippets, si apre il content snippet Chat Widget Code e si incolla nel campo Value (HTML) del tab General. Ricorda un vincolo lato cliente: il widget ha bisogno di session storage e local storage nel browser, quindi i cookie devono essere abilitati.

Quando i widget e i workstream diventano molti, la web engagement orchestration sostituisce lo script per widget con un tag unico. Si va in Channels > Web Engagement > Manage, si crea un ruleset nella pagina Engagement Rulesets e si preleva il tag con Copy Live Chat Widget Script, che è unico per ruleset. Le regole vivono dentro versioni di cui una sola può essere pubblicata alla volta, e nel rule builder le condizioni sono Site Area (basata su una regular expression sull’URL), Custom Context e Custom Client Function, mentre le azioni sono Show Chat Button, Open Chat Widget e Do Nothing. La valutazione segue la colonna Priority in ordine crescente e si ferma alla prima regola vera. Attenzione: la orchestration vale solo per il web, non per gli SDK di messaggistica mobile.

Record-based channel e canali digitali

Il record-based channel è l’eccezione concettuale: non c’è nessun cliente collegato in tempo reale, si instradano record. Serve unified routing abilitato, il ruolo System Administrator e gli utenti configurati come bookable resource, e soprattutto la tabella deve essere abilitata per le code: in Power Apps, su Table properties > Properties > Advanced options, si seleziona Can be added to a queue, e la doc avverte che dopo non si può più disabilitare. Poi si va in Routing > Manage per Record routing > Add, si sceglie il record nella dialog Add a record type, si crea un workstream con Type impostato a Record e si definiscono le Intake rules, che decidono quale workstream prende in carico il work item. Lato supervisione, la vista Ongoing record conversations in Copilot Service workspace permette di fare Assign, Transfer, Release e Remove sulle conversazioni riinstradate da case, email o activity.

Qui vale la distinzione fra i due prodotti. Le pagine su canale chat, widget e canali digitali riportano tutte il banner che le dichiara valide per Dynamics 365 Contact Center (embedded e standalone) e per Dynamics 365 Customer Service. La pagina di configurazione del record routing invece sta solo sotto la documentazione di Customer Service e formula il prerequisito così: “To set up record routing for Customer Service, unified routing must be enabled in your environment.” Non trattarla come identicamente valida ovunque senza verificare.

I canali digitali disponibili sono SMS (attraverso Azure Communication Services oppure Twilio), i social (Facebook, WhatsApp through Twilio, LINE, e Apple Messages for Business, il cui supporto è però deprecato), Microsoft Teams e il custom messaging channel basato su Direct Line e Bot Framework, dove Telegram e Kik sono stati rimossi. WhatsApp si configura anche via Azure Communication Services, con i campi ACS resource name, Event grid app ID, Event grid app tenant ID, ACS connecting string e Channel ID. Ultima trappola lessicale: quando aggiungi un agent AI a un workstream, l’interfaccia mostra ancora l’area Bot e il comando Add bot — la doc lo dichiara apertamente, il rename è in corso.