Chat di gruppo
Sui canali per Microsoft Teams e Slack, è possibile rendere disponibili competenze e assistenti digitali per le chat di gruppo, in cui più partecipanti umani possono collaborare con un assistente digitale nella stessa conversazione.
Le chat di gruppo sono utili per le situazioni in cui è necessaria una competenza per eseguire azioni o fornire informazioni per un gruppo di partecipanti umani. In una chat di gruppo:
- Tutti gli aspetti della conversazione sono visibili a tutti i partecipanti.
- Lo skill risponde solo ai messaggi in cui l'utente include una menzione del bot Microsoft o dell'applicazione Slack che rappresenta lo skill. Ciò significa che i partecipanti umani in una chat di gruppo possono scambiare messaggi tra di loro senza coinvolgere l'abilità. Ad esempio, potrebbero voler avere una discussione per concordare su cosa richiedere l'abilità prima di effettuare tale richiesta.
- Per impostazione predefinita, lo skill non fungerà da mediatore tra gli utenti. Risponderà all'input nell'ordine ricevuto come se fosse tutto proveniente dalla stessa persona. Ad esempio, se un utente contraddice un altro utente, il bot non tenterà di riconciliare i due, a meno che non sia stata programmata una logica in un componente personalizzato per farlo (ma probabilmente dovrebbe aver effettuato l'accesso agli utenti che il bot potrebbe tracciare esplicitamente).
- Qualsiasi query fatta a uno skill all'interno di una chat di gruppo si basa sull'identità (e, nel caso di skill che richiedono l'autenticazione, le credenziali corrispondenti) dell'utente nella chat di gruppo che ha effettuato la query.
È inoltre possibile impostare lo skill per richiedere l'autenticazione di tutti i partecipanti di una chat di gruppo.
Per consentire il funzionamento della chat di gruppo, è necessario impostare un canale Microsoft Teams o Slack.
Se si utilizza un canale Microsoft Teams, assicurarsi di aver selezionato gli ambiti bot appropriati per abilitare la chat di gruppo. È possibile selezionare Team e/o Chat di gruppo, l'ultimo dei quali è un gruppo definito dall'utente.
Se si utilizza Slack come canale, assicurarsi che l'applicazione Slack disponga delle seguenti sottoscrizioni agli eventi:
message.im
app_mention
message.mpim
message.channels
Una volta impostato un canale per lo skill o l'assistente digitale da utilizzare nella chat di gruppo, gli utenti possono aggiungere il bot Microsoft o l'app Slack corrispondente a un gruppo. Nella conversazione, possono richiamare il bot o l'applicazione con una menzione utente.
Autorizzazione utente nelle chat di gruppo
Nelle competenze target per le chat di gruppo, potrebbe essere necessario richiedere l'autorizzazione per gli utenti a inviare messaggi. Poiché più utenti possono accedere allo skill in una sessione, è necessario configurare lo skill per gestire correttamente l'autorizzazione per ogni utente, non solo per l'utente che per primo incontra lo stato di autorizzazione. A tale scopo, utilizzare:
- La proprietà Richiede autorizzazione negli stati in cui si desidera applicare l'autorizzazione. Ciò garantisce che un utente non possa immettere un messaggio nella chat quando si trova in tale stato fino a quando l'utente non è autorizzato.
- Evento Autorizza utente per indirizzare gli utenti non autorizzati allo stato di autorizzazione appropriato quando tentano di immettere un messaggio nella chat con stato protetto.
- La variabile
skill.system.event.value.authorizeUser.requestedState
per identificare lo stato in cui un utente non autorizzato immette un messaggio nella chat (e, pertanto, lo stato in cui deve essere reindirizzato dopo l'autorizzazione riuscita). - La proprietà booleana
system.message.channelConversation.groupConversation
, alla quale è possibile fare riferimento quando è necessario determinare se la conversazione è una chat di gruppo.
Applica autorizzazione utente per chat di gruppo
Di seguito sono riportati i passi generali per l'applicazione dell'autorizzazione per ogni utente in una chat di gruppo.
- Supponendo che si desideri applicare l'autenticazione per la maggior parte degli stati dello skill, configurare lo skill nel suo complesso in modo che richieda l'autorizzazione per impostazione predefinita. A questo scopo:
- Fare clic su
per aprire il menu laterale, selezionare Sviluppo > Skill e selezionare lo skill desiderato.
- Nella navigazione a sinistra dello skill, fare clic su
.
- Fare clic sulla scheda Configurazione.
- Impostare la proprietà Requires Authorization su
true
.
In questo modo viene impostato il valore predefinito per la proprietà Richiede autorizzazione per tutti gli stati nel flusso della finestra di dialogo. Questo valore può essere sostituito nei singoli stati.
- Fare clic su
- Per gli stati che non richiedono l'autorizzazione, impostare la proprietà Requires Authorization su
false
. Ad esempio:Nota
In alternativa, è possibile impostare la proprietà Richiede autorizzazione dello skill sufalse
, quindi impostare la proprietà Richiede autorizzazione su singoli stati sutrue
. - Aggiungere un componente OAuth Collegamento account o OAuth 2.0 Collegamento account nel flusso della finestra di dialogo per l'autenticazione degli utenti.
Utilizzare variabili con ambito utente per memorizzare il token di accesso e l'ID utente autenticato. In caso contrario, le informazioni di autorizzazione di ciascun utente che partecipa alla chat sostituiranno le informazioni di autorizzazione dell'utente precedente che ha aderito alla chat.
Per la transizione
pass
, utilizzare la variabile di sistemaskill.system.event.value.authorizeUser.requestedState
per riportare l'utente allo stato in cui ha tentato di immettere la conversazione. - Aggiungere gli stati per l'errore di autorizzazione. Ad esempio, è possibile che esistano stati separati per i seguenti casi:
- Dove si verifica l'autorizzazione non riuscita in una chat di gruppo. In questo caso, l'utente potrebbe non essere in grado di eseguire l'autenticazione, ma la conversazione può continuare con gli altri partecipanti.
- Dove l'autorizzazione non riuscita avviene in una singola chat, nel qual caso la conversazione può semplicemente finire.
Nota
In questo caso, è possibile utilizzare la proprietà del canale personalizzatoephemeral
per visualizzare il messaggio solo all'utente che sta attivando la risposta.responseItems: - type: "text" text: "Sorry ${profile.firstName}, you are not authorized to use this skill" channelCustomProperties: - channel: "slack" properties: ephemeral: true
- Nella sezione Mapping eventi della configurazione del flusso, mappare l'evento Autorizza utente allo stato di autenticazione utente.
Questo evento viene attivato quando un utente non ancora autorizzato tenta di partecipare alla conversazione e raggiunge uno stato che richiede l'autorizzazione.
Abilita messaggi senza menzione utente nelle chat di gruppo Slack
È possibile configurare i canali Slack per consentire l'invio di messaggi all'applicazione Slack senza menzioni utente dell'applicazione Slack. Questo comportamento potrebbe essere particolarmente utile per i canali Slack in cui ci sono molti utenti e non tutti sanno che avrebbero bisogno di una menzione utente per l'app Slack per rispondere. Un canale di supporto utente ne è un esempio.
Per abilitare il passaggio dei messaggi senza menzione dell'utente all'assistente digitale nelle chat di gruppo Slack, procedere come segue.
- Quando si crea il canale o si modifica successivamente la configurazione del canale, impostare il parametro Consenti messaggi senza menzione applicazione nella chat di gruppo su ON.
Consenti agli utenti di interrompere l'invio dei messaggi all'applicazione Slack
Nei canali Slack in cui sono stati abilitati i messaggi senza che un utente menzioni l'applicazione Slack da inviare all'assistente digitale, potrebbero verificarsi casi in cui l'utente desidera impedire l'invio di tali messaggi all'assistente digitale. In questo caso, è possibile avviare la "modalità ambiente" per impedire l'invio dei messaggi all'assistente digitale tramite l'app Slack. A tale scopo, è possibile specificare un'azione di postback system.startAmbientMode
nella definizione del flusso della finestra di dialogo.
Il postback per l'avvio della modalità ambiente potrebbe avere un aspetto simile al seguente:
responseItems:
- type: "text"
text: "Do you want to stop chatting with the skill?"
name: "stopMessages"
actions:
- label: "Stop chatting with the skill"
type: "postback"
payload:
action: "system.startAmbientMode"
name: "stop"
Una volta selezionata questa opzione, i seguenti messaggi dell'utente non verranno inviati all'assistente digitale finché l'utente non immetterà nuovamente una menzione dell'applicazione Slack in un messaggio.
Analogamente, è possibile aggiungere un'azione di postback system.stopAmbientMode
nella definizione del flusso della finestra di dialogo alla modalità ambiente finale.
Cosa devono sapere gli utenti sulle chat di gruppo
Quando si crea uno skill destinato a funzionare in una chat di gruppo, è necessario assicurarsi che gli utenti dello skill siano a conoscenza dei seguenti elementi:
- Per coinvolgere la competenza (o l'assistente digitale) nella chat di gruppo, è necessario rivolgersi al bot di Microsoft Teams corrispondente o all'applicazione Slack con una menzione utente (
@bot_name
).Nota
Per i canali Slack, è inoltre possibile inviare messaggi all'applicazione Slack senza menzionare un utente. Vedere Abilita messaggi senza menzione utente nelle chat di gruppo Slack. - Per ogni messaggio immesso che si prevede una risposta dal bot, è necessario includere la menzione utente del bot.
- Se il messaggio è destinato solo agli altri partecipanti umani, non includere una menzione utente per il bot. Il bot ignorerà tali messaggi.
- Nelle chat di gruppo Slack, le chat devono essere conservate nel thread in cui il bot è stato introdotto per la prima volta nella conversazione. Se qualcuno risponde al di fuori del thread della conversazione, crea una nuova conversazione indipendente da quella precedente.
- Quando un partecipante alla chat di gruppo effettua una richiesta del bot, il bot è a conoscenza dell'utente che ha effettuato la richiesta. Pertanto, se del caso, la risposta alla richiesta si basa sull'identità e sulle credenziali del richiedente. Se un partecipante diverso effettua una richiesta, la risposta a tale richiesta si basa sull'identità e sulle credenziali del secondo partecipante.
- Tutti gli utenti che hanno aderito a una chat di gruppo possono visualizzare tutte le risposte del bot. È responsabilità dei partecipanti alla chat di gruppo non ottenere informazioni dal bot che gli altri partecipanti non dovrebbero vedere.