Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Informazioni su come configurare i trigger di inattività, con indicazioni sull'installazione, il supporto del canale, le limitazioni e la risoluzione dei problemi.
Sintesi
Il trigger di inattività, detto anche OnInactivity o Il momento in cui l'utente è inattivo per un periodo di tempo, è un trigger di sistema in Copilot Studio che genera automaticamente un argomento quando un utente non invia alcun messaggio per una durata specificata. Viene eseguito lato server, quindi l'agente valuta il timer ed esegue l'attività anche se il client dell'utente è inattivo.
I casi d'uso comuni includono:
- Inviare un promemoria che chiede se l'utente è ancora presente
- Liberare la capacità degli agenti chiudendo automaticamente le conversazioni inattive
- Raccogliere commenti e suggerimenti (ad esempio, un sondaggio sulla soddisfazione dei clienti) prima della fine di una sessione
- Pulire lo stato della sessione per le conversazioni abbandonate
Funzionamento del trigger di inattività
Questa sezione illustra come Copilot Studio valuta i trigger di inattività, pianifica i timer ed esegue argomenti quando una conversazione è inattiva.
Panoramica dell'architettura
L'utente invia un messaggio.
Il runtime valuta tutti i trigger OnInactivity .
I gruppi di runtime si attivano per durata e selezionano uno per ogni livello di durata. Il numero di priorità più basso vince; data di creazione meno recente interrompe i legami.
Il runtime ordina i trigger selezionati per durata, prima più breve.
Il runtime attiva un timer per il prossimo trigger in bus di servizio di Azure. Un solo timer è attivo alla volta.
L'utente è inattivo per la durata configurata.
Il timer viene attivato e l'evento di inattività viene inviato al runtime.
Il runtime identifica ed esegue il tema dell'inattività.
Il runtime calcola il tempo rimanente fino al prossimo attivazione e imposta un nuovo timer.
Comportamenti chiave
Il timer viene reimpostato in ogni messaggio utente.
Ogni volta che un utente invia un messaggio, il sistema rivaluta tutti i trigger di inattività e attiva il successivo, a partire dalla durata più breve. Un solo timer è attivo in qualsiasi momento.
Sono supportati più attivatori.
È possibile avere più trigger OnInactivity con durate diverse, ad esempio 5 minuti e 10 minuti. Il sistema li elabora in ordine crescente di durata. Viene selezionato un solo trigger per ogni livello di durata. Se due trigger hanno la stessa durata, il trigger con il numero inferiore
Priorityviene attivato. Se c'è ancora un pareggio, il trigger creato in precedenza vince. Il sistema scarta altri trigger con la stessa durata.I trigger vengono accodati, ma non sono paralleli.
Un solo timer è attivo alla volta. Dopo l'esecuzione del trigger corrente, il runtime calcola il tempo rimanente fino al trigger successivo e imposta un nuovo timer per coprire la differenza. L'effetto netto è che i trigger vengono attivati in corrispondenza degli offset corretti dal punto di inattività originale, anche se una leggera deriva può verificarsi se l'esecuzione del trigger richiede un tempo significativo.
Esecuzione in secondo piano.
L'evento di inattività è un attivatore in background. Non è necessaria l'interazione dell'utente per attivarsi.
Registrazione della trascrizione.
Il sistema registra gli eventi di inattività nelle trascrizioni della conversazione. Dopo 30 minuti di inattività viene creato un nuovo record di trascrizione.
Sequenza temporale di esempio (più trigger)
| Ora | Evento |
|---|---|
| 0:00 | L'utente invia l'ultimo messaggio |
| 5:00 | Il trigger A (300 s) si attiva e invia un avviso. |
| 10.00 | Trigger B (600 s) si attiva, la conversazione finisce |
Se l'utente invia un messaggio alle 4:30, entrambi i timer vengono reimpostati. Il trigger A viene attivato alle 9:30 e il trigger B viene attivato alle 14:30.
Configurare il trigger di inattività
Questa sezione illustra come Copilot Studio avvia, reimposta e esegue timer di inattività in modo da poter prevedere cosa accade quando una conversazione diventa inattiva.
Creare un argomento trigger di inattività
In Copilot Studio passare a Topics>Aggiungi un argomento>From blank.
Selezionare la frase di attivazione. Invece di una frase, selezionare "Dopo un periodo di inattività".
Impostare la proprietà Durata inattività . In Modalità di input manuale scegliere un set di impostazioni dall'elenco a discesa (15 minuti, 30 minuti, 45 minuti o 1 ora). Per immettere un valore personalizzato in secondi o una formula Power Fx (ad esempio,
Global.TimeoutSeconds), impostare il selettore di modalità su Formula e digitare direttamente il valore.Progettare il flusso dell'argomento (inviare un messaggio, porre una domanda, terminare la conversazione e così via).
Salva e pubblica l'agente.
Riferimento per la durata
| Timeout desiderato | Valore (secondi) |
|---|---|
| 30 secondi | 30 |
| 2 minuti | 120 |
| 5 minuti | 300 |
| 10 minuti | 600 |
| 1 ora | 3600 |
Important
La proprietà utilizza secondi, non minuti o millisecondi. Un valore di 60000 significa circa 16,7 ore, non 60 secondi.
Esempio: Attivatore di avviso singolo
[OnInactivity - 600 secondi]
Messaggio: "Sei ancora lì? Rispondi per continuare.
Fine argomento
Esempio: avviso di 5 minuti e chiusura automatica di 10 minuti
Questo modello è il più comune. Creare due argomenti di inattività:
Argomento 1: Avviso di inattività (5 minuti)
- Trigger: dopo un periodo di inattività
-
durationInSeconds:300 - Azioni: inviare un messaggio: "Sei ancora lì? Questa conversazione si chiude in 5 minuti se non c'è risposta".
Argomento 2: Chiusura automatica (10 minuti)
- Trigger: dopo un periodo di inattività
-
durationInSeconds:600 - Actions:
- Set
Global.DeactivateInactivity = true(variabile guard - vedere Procedure consigliate) - Inviare un messaggio: "Questa conversazione si chiude a causa dell'inattività".
- Fine della conversazione
- Set
Esempio: Raccolta dei feedback
- Trigger: dopo un periodo di inattività
- durationInSeconds:
120 - Actions:
- Chiedi: "Prima di andare, valuta la tua esperienza? (1-5)"
- Archiviare la risposta
- Fine della conversazione
Aggiungere una condizione al trigger
Aggiungere un nodo Condizione subito dopo il trigger in modo che venga eseguito solo in determinate situazioni:
- Esegui solo su un canale specifico:
=Activity.ChannelId = "msteams" - Attiva solo se una variabile di guardia non è impostata:
=Global.DeactivateInactivity = false
Modello consigliato per più trigger (argomento condiviso)
Se sono presenti più trigger con nodi Domanda , usare un argomento condiviso per evitare problemi di stack delle finestre di dialogo:
Creare un argomento condiviso denominato
HandleInactivity:- Aggiungere una variabile
Global.InactivityStageglobale (testo) - Controllarne il valore:
-
"warning"→ Inviare un messaggio di avviso con un nodo Domanda ("Continua?" / "Fine?") -
"close"→ Inviare un messaggio di chiusura e terminare la conversazione
-
- Aggiungere una variabile
Primo trigger in caso di inattività (300 s):
- Impostare
Global.InactivityStage = "warning" - Reindirizzamento a
HandleInactivity
- Impostare
Secondo attivatore OnInactivity (600 secondi):
- Impostare
Global.InactivityStage = "close" - Reindirizzamento a
HandleInactivity
- Impostare
Questo approccio impedisce l'impilamento dei nodi della domanda e la creazione di cicli di richiesta.
Configurazione specifica del canale
Matrice di supporto del canale
| Canale | Livello di supporto | Notes |
|---|---|---|
| Sito Web demo | Pienamente supportato | Canale migliore per testare i trigger di inattività. |
| Sito Web personalizzato (Direct Line) | Pienamente supportato | Funziona come il sito Web demo. |
| Microsoft Teams | Supportato | Funziona, ma consultare la guida specifica di Teams nella sezione successiva. I token di autenticazione potrebbero scadere durante lunghi periodi di inattività. |
| Servizio clienti Dynamics 365 | Pienamente supportato | Richiede passaggi aggiuntivi per chiudere Dynamics 365 Customer Insights - Journeys conversazioni. Per ulteriori informazioni, consulta la configurazione di Dynamics 365 Customer Insights - Journeys. |
| Microsoft 365 Copilot | Trigger viene attivato, ma i messaggi non vengono recapitati | Questo scenario è una limitazione nota. Il trigger viene eseguito sul lato server, ma dall'interfaccia utente di Microsoft 365 Copilot non vengono visualizzati messaggi proattivi dagli agenti. Soluzione alternativa non disponibile. |
| Pannello di test | Non supportato | Questo scenario è in fase di progettazione. I timer sono disabilitati per il canale Studio ID. Usare il sito Web demo o un canale pubblicato per il test. |
| DirectEngine | Non supportato | Questo scenario è in fase di progettazione. I timer sono disabilitati per l'ID del canale DirectEngine (ambiente di progettazione/test). |
| Telefonia/IVR | Non supportato | Per i canali vocali, usare invece il trigger OnSilence . |
Configurazione di Teams
Teams usa un modello di conversazione singola persistente. La conversazione non termina mai dal punto di vista di Teams. Questo modello significa che i trigger di inattività continuano a rieseguire anche dopo che l'utente considera la conversazione completata.
Modello di Teams consigliato:
Creare una variabile
Global.IsConversationClosedglobale (valore booleano, impostazione predefinita:false).All'inizio dell'argomento relativo all'inattività, controllare:
If Global.IsConversationClosed = true→ Fine Argomento (uscita immediata).Quando la conversazione termina logicamente (l'utente dice "goodbye", la soddisfazione del cliente viene completata e così via), impostare
Global.IsConversationClosed = true.Il trigger di inattività potrebbe ancora essere attivato, ma viene chiuso immediatamente senza visualizzare un messaggio.
configurazione Dynamics 365 Customer Insights - Journeys
- Le conversazioni si chiudino automaticamente dopo 30 minuti di inattività per impostazione predefinita.
- La chiamata a EndConversation da sola non chiude la sessione di Dynamics 365 Customer Insights - Journeys. La capacità dell'agente non viene liberata.
- Per chiudere completamente la conversazione, impostare la variabile di contesto
CloseOmnichannelConversationsutruetramite un flusso di Power Automate, quindi usare un nodo Trasferisci ad Agente.
Limitazioni note
Riferimento rapido: Cosa può interrompere il timer di inattività?
| Funzionalità o azione | Effetto sui timer di inattività |
|---|---|
| Fine della conversazione | Cancella definitivamente tutti i timer |
| L'utente invia un messaggio | Reimposta tutti i timer su zero (per impostazione predefinita) |
| Condizione del trigger con variabile non inizializzata | Il timer viene escluso in modo silenzioso - mai braccia |
| La durata supera 7 giorni (604.800 secondi) | Il timer viene ignorato automaticamente |
| Cancellazione delle variabili globali in un tema di inattività | Agent perde il contesto della conversazione |
| Trasferimento al rappresentante del servizio clienti | Il timer rimane attivo e potrebbe essere attivato durante la conversazione del rappresentante del servizio clienti |
Il pannello di test non supporta i trigger di inattività
Il pannello di test Copilot Studio non attiva trigger di inattività. Si tratta di una limitazione prevista da progettazione. Pubblicare l'agente e testarlo su un canale live (sito Web demo, Teams e così via).
Microsoft 365 Copilot non visualizza messaggi di inattività
Il trigger viene eseguito sul lato server, ma qualsiasi output (messaggi, schede) non viene inviato all'utente nell'esperienza di Microsoft 365 Copilot. Non esiste alcuna soluzione alternativa. Vedere Limitazioni note di Teams.
Orchestrazione dell'IA generativa
I trigger di inattività vengono implementati come trigger di argomento di orchestrazione classica e utilizzano una pipeline separata di eventi basata su timer. Quando l'orchestrazione di intelligenza artificiale generativa è attivata, il routing degli argomenti non si basa più sul riconoscimento dei trigger classici, quindi gli argomenti di inattività potrebbero non essere attivati in modo affidabile in tutte le configurazioni. Se è necessaria la gestione dell'inattività, l'orchestrazione classica è la configurazione consigliata e completamente convalidata.
Agenti connessi: l'inattività dell'agente figlio non è consentita
Nelle configurazioni dell'agente connesso , i trigger di inattività negli agenti figlio non funzionano e restituiscono "Risposta dell'agente connesso non valida". Inserire tutta la logica di inattività nell'agente padre.
Durata massima: 7 giorni (604.800 secondi)
I bot pubblicati ignorano automaticamente i trigger con durate superiori a 604.800 secondi. Non viene visualizzato alcun errore. In modalità progettazione potrebbe essere visualizzato un errore. Non esiste un minimo applicato: le durate brevi (meno di 15 secondi) potrebbero comportarsi in modo imprevedibile a causa della latenza dell'infrastruttura timer.
Termina conversazione cancella i timer di inattività
Quando chiami Termina conversazione in un argomento, arresta in modo permanente tutti i timer di inattività attivi per tale conversazione. I timer sono cancellati completamente; non vengono reimpostati o sospesi. L'operazione elimina tutti gli eventi di inattività in sospeso già pianificati.
Se si vuole terminare il flusso di un argomento senza interrompere i timer di inattività, usare una delle azioni alternative:
| Azione (in Copilot Studio) | Effetto sui timer di inattività |
|---|---|
| Fine della conversazione | Cancella tutti i timer; i timer si arrestano in modo permanente |
| Termina l'argomento corrente (EndDialog) | Non influisce sui timer; i timer continuano a essere in esecuzione |
| Annulla tutti gli argomenti (CancelAllDialogs) | Non influisce sui timer; i timer continuano a essere in esecuzione |
Tip
Se il tuo tema deve chiudere il flusso corrente ma si desidera attivare il timer di inattività in un secondo momento (ad esempio, un tema di ricerca JIRA che termina ma la conversazione deve ancora scadere), utilizzare Termina argomento corrente anziché Termina conversazione.
L'uso di una variabile di guardia per impedire la riattivazione rimane una pratica difensiva consigliata.
Il trigger si attiva dopo l'escalation dell'agente
Dopo che il sistema trasferisce una conversazione a un rappresentante del servizio clienti, il trigger di inattività rimane attivo. Potrebbe essere attivato durante la conversazione dell'agente umano e inviare messaggi da parte dell'agente in modo inatteso. Chiamare sempre EndConversation prima del trasferimento o usare una variabile di protezione.
I messaggi trigger potrebbero essere visualizzati nelle trascrizioni dopo la fine della conversazione
Anche dopo la chiusura di una conversazione, il trigger potrebbe ancora essere attivato e i relativi messaggi vengono registrati nella trascrizione. Questa condizione non influisce sull'esperienza utente, ma potrebbe apparire nell'analisi.
Canali telefono, voce e IVR
Il trigger di inattività non è disponibile per i canali telefonici e vocali. Usare invece il trigger OnSilence .
Comuni errori di configurazione
Usare questa sezione per identificare e risolvere i problemi di configurazione comuni che possono impedire il funzionamento dei trigger di inattività come previsto.
Terminare la conversazione nel tema di inattività (rischio di ciclo)
Problema: Quando chiami Termina conversazione da un argomento di inattività, cancella tutti i timer di inattività. Tuttavia, nei canali con conversazioni persistenti (in particolare Teams), la conversazione sottostante rimane attiva. In alcune configurazioni, il trigger può comunque riattivare, causando messaggi ripetuti "sessione terminata".
Soluzione (consigliata come pratica difensiva): Usare una variabile guard:
Crea
Global.DeactivateInactivity(booleano, impostazione predefinita:false).All'inizio di ogni argomento di inattività, aggiungere una condizione: procedere solo se
Global.DeactivateInactivity = false.Impostare
Global.DeactivateInactivity = trueprima di chiamare EndConversation.
Note
Il modello di variabile di protezione è particolarmente importante per i canali di Teams, in cui il modello di conversazione persistente indica che la conversazione non termina mai.
Durata impostata sul valore errato
Problema:durationInSeconds è espresso in secondi. Il valore 60000 è di circa 16,7 ore, non 60 secondi.
Soluzione: Controllare i valori rispetto alla tabella di riferimento nella sezione 3.
Nodi delle domande in più argomenti di inattività (stack di richieste)
Problema: Se più trigger hanno un nodo Domanda , il secondo trigger interrompe il primo. Quando l'utente risponde, il primo nodo Domanda riprende e richiede nuovamente, creando un ciclo.
Soluzione: Usare il modello di argomento condiviso. Consolidare la logica del nodo Domanda in un singolo argomento o assicurarsi che solo un trigger abbia un nodo Domanda .
Cancellazione delle variabili globali nell'argomento relativo all'inattività
Problema: Se l'argomento di inattività cancella le variabili globali, l'agente perde tutto il contesto della conversazione e non risponde quando l'utente restituisce.
Soluzione: Reimpostare solo variabili specifiche dell'inattività, non l'intero stato della conversazione.
Mancata visualizzazione di trigger di inattività in Teams
Problema: In Teams il modello di conversazione persistente indica che i trigger vengono attivati per un periodo illimitato. Gli utenti ricevono ripetuti messaggi "sei ancora lì?" ore o giorni dopo.
Soluzione: Usare sempre il modello di variabile di controllo per Teams.
Non chiamare la funzione closeOmnichannelConversation
Problem: Per gli agenti Dynamics 365 Customer Insights - Journeys, la sola chiamata a EndConversation non chiude la sessione di Dynamics 365 Customer Insights - Journeys. Le conversazioni si accumulano nella coda dell'agente.
Solution: Imposta CloseOmnichannelConversation su true tramite Power Automate nel tuo argomento di inattività.
Durata dinamica da una variabile non inizializzata
Problema: L'uso di un'espressione Power Fx come =Environment.InactivityTimeout per la durata funziona, ma se la variabile non è inizializzata o null, il trigger viene escluso automaticamente.
Soluzione: Verificare che tutte le variabili usate nelle condizioni di trigger e nelle espressioni di durata abbiano valori predefiniti validi.
Ci si aspetta che i trigger funzionino dopo l'escalation dell'agente
Problema: Dopo il trasferimento del sistema a un rappresentante del servizio clienti, il trigger viene attivato nella conversazione dell'agente originale e invia messaggi durante la sessione dell'agente umano.
Soluzione: Terminare la conversazione dell'agente in fase di escalation, oppure utilizzare una variabile Global.IsEscalated = true di protezione e controllarla all'inizio del tema di inattività.
Risoluzione dei problemi quando il trigger di inattività non funziona
Usare questo albero delle decisioni per diagnosticare il problema:
Dove si esegue il test?
- Se stai usando il pannello di test, fermati. Il pannello di test non supporta i trigger di inattività. Pubblicare e testare su un canale live.
Quale canale stai usando?
- Microsoft 365 Copilot? Questo canale presenta una limitazione nota. Il trigger viene attivato ma i messaggi non vengono recapitati. Soluzione alternativa non disponibile.
- Telefonia/IVR? Questo canale non è supportato. Usare invece il trigger OnSilence .
L'orchestrazione dell'intelligenza artificiale generativa è abilitata?
- I trigger di inattività utilizzano una pipeline di timer separata dal routing basato sul riconoscimento. Tuttavia, il comportamento con l'orchestrazione generativa dell'intelligenza artificiale non è completamente convalidato. Se la gestione dell'inattività è fondamentale, l'orchestrazione classica è la configurazione consigliata.
Il tuo/la tua
durationInSecondsè maggiore di 604.800?- In caso affermativo, il trigger viene ignorato automaticamente. Ridurre a 604.800 o inferiore.
L'agente è un agente figlio in un setup di Agente Connesso?
- In caso affermativo, i trigger di inattività dei child agent non sono supportati. Spostare la logica nell'agente padre.
Sono presenti più trigger di inattività?
- Vengono azionati in ordine di durata (dal più breve al più lungo). Assicurati di aspettare abbastanza a lungo. Tutti i messaggi utente reimpostano tutti i timer.
Il trigger ha una condizione che fa riferimento a una variabile non inizializzata?
- Se una condizione fa riferimento a una variabile non ancora impostata, il trigger viene escluso automaticamente. Verificare che tutte le variabili di condizione abbiano valori predefiniti.
L'agente è stato ripubblicato dopo l'inizio della conversazione?
- Una ripubblicazione potrebbe reimpostare il timer di inattività per le sessioni attive. Avviare una nuova conversazione e riprovare.
Se il trigger di inattività non funziona ancora, provare le opzioni seguenti:
- Controlla le trascrizioni della conversazione per qualsiasi attività relativa al tema dell'inattività. Se l'argomento viene visualizzato ma l'utente non ha visualizzato il messaggio, il problema è il recapito specifico del canale.
- Verificare che l'argomento non sia disabilitato o archiviato.
- Verificare che il tipo di trigger sia "Dopo un periodo di inattività", non un trigger di frase.
Procedure consigliate
Eseguire sempre test su un canale pubblicato. Usare il sito Web demo per i test rapidi. Non fare mai affidamento sul riquadro di test.
Usare una variabile di controllo per impedire i cicli. Crea
Global.DeactivateInactivity(valore booleano, predefinitofalse). Impostarlo sutrueprima di chiamare EndConversation. Controllalo all'inizio di ogni argomento relativo all'inattività.Mantenere ragionevoli le durate. Minimo ~15 secondi, massimo 604.800 secondi (7 giorni).
Verifica le unità. La proprietà è in secondi. 5 minuti =
300, non5.Per Dynamics 365 Customer Insights - Journeys: associare sempre
EndConversationconcloseOmnichannelConversationtramite Power Automate.Per scenari multi-trigger: limitare i nodi domanda a un trigger o usare il modello di argomento condiviso.
Chiamare
EndConversationprima del trasferimento a un rappresentante del servizio clienti per disattivare i trigger di inattività.Monitorare le trascrizioni delle conversazioni dopo la distribuzione per verificare che i messaggi vengano visualizzati in orari previsti.
Domande frequenti
Perché il trigger di inattività non funziona nel pannello di test?
I timer sono disabilitati nel pannello di test per impostazione predefinita. Pubblica l'agente e testalo su un canale in diretta.
È possibile usare durate dinamiche(ad esempio, da una variabile)?
Sì. Il campo durata accetta espressioni Power Fx. È possibile usare una variabile di ambiente o un valore calcolato. L'espressione viene valutata in fase di esecuzione quando il timer è armato. Verificare che la variabile sia inizializzata e contenga un numero valido.
Cosa accade se si pubblica una nuova versione dell'agente mentre le conversazioni sono attive?
Il runtime preleva la nuova versione. Se l'ID del trigger è stato modificato (argomento eliminato e ricreato), il sistema torna alla corrispondenza per durata. Se nessun trigger non trova corrispondenza in base a ID o durata, l'evento di inattività pendente viene eliminato.
Come si arrestano completamente gli attivatori di inattività in Teams?
Non è possibile arrestarli a livello di piattaforma. Usare il modello di variabile di controllo: impostare un valore booleano al termine logico della conversazione e controllarlo all'inizio dell'argomento di inattività per uscire in anticipo.
Il trigger di inattività funziona con l'autenticazione?
Sì, ma per i timeout lunghi della sessione (ad esempio, 24 ore), il token di autenticazione dell'utente potrebbe scadere prima dell'attivazione del trigger. Assicurarsi che l'agente gestisca correttamente la riautenticazione.
Cosa accade se l'argomento di inattività chiama un connettore che richiede molto tempo?
Le chiamate al connettore hanno un limite di timeout (30 secondi predefinito, massimo 60 secondi). Ottimizzare il connettore o gestire correttamente il timeout.
Contenuti correlati
- Impostare i trigger dell'argomento
- Variabili di sistema - InactivityTimer.Continue, InactivityTimer.Count
- Usare Power Fx in Copilot Studio
- Configurare il trasferimento del servizio clienti in Dynamics 365
- Configurazione vocale e rilevamento del silenzio
- Distribuire agenti su Microsoft Teams
- Agenti connessi
- Trascrizioni delle conversazioni in Copilot Studio
- Chiudere automaticamente le conversazioni omnicanale
- Limitazioni conosciute in Microsoft 365 Copilot