Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aprenda a configurar gatilhos de inatividade, com orientações sobre a configuração, suporte aos canais, limitações e resolução de problemas.
Descrição geral
O gatilho da inatividade, também chamado OnInactivity, ou O utilizador está inativo durante algum tempo, é um disparador do sistema em Copilot Studio que dispara automaticamente um tópico quando o utilizador não envia nenhuma mensagem durante um período especificado. Corre do lado do servidor, por isso o agente avalia o temporizador e executa o tópico mesmo que o cliente do utilizador esteja inativo.
Os casos de uso comuns incluem:
- Envia um lembrete a perguntar se o utilizador ainda está lá
- Liberte a capacidade do agente fechando automaticamente conversas inativas
- Recolha feedback (por exemplo, um inquérito de satisfação do cliente) antes de terminar uma sessão
- Limpar o estado da sessão para conversas abandonadas
Como funciona o gatilho da inatividade
Esta secção explica como o Copilot Studio avalia os gatilhos de inatividade, agenda temporizadores e executa tópicos quando uma conversa está inativa.
Descrição geral da arquitetura
O utilizador envia uma mensagem.
O ambiente de execução avalia todos os gatilhos OnInactivity.
O tempo de execução agrupa gatilhos por duração e seleciona um por nível de duração. O número de menor prioridade vence; A data de criação mais antiga desfaz empates.
O tempo de execução ordena os gatilhos selecionados por duração, sendo o mais curto primeiro.
O runtime arma um temporizador para o próximo gatilho no Azure Service Bus. Só um temporizador está ativo de cada vez.
O utilizador está inativo durante a duração configurada.
O temporizador dispara, e o evento de inatividade é enviado para o runtime.
O ambiente de execução corresponde e executa o tópico de inatividade.
O runtime calcula o tempo restante até ao próximo evento e ativa um novo temporizador.
Comportamentos-chave
O temporizador reinicia em todas as mensagens do utilizador.
Cada vez que um utilizador envia uma mensagem, o sistema reavalia todos os gatilhos de inatividade e ativa o seguinte (começando pela duração mais curta). Só um temporizador está ativo em cada momento.
São suportados múltiplos gatilhos.
Podes ter vários gatilhos de OnInactivity em diferentes durações (por exemplo, 5 minutos e 10 minutos). O sistema processa-as por ordem crescente de duração. Apenas um gatilho é selecionado por nível de duração. Se dois gatilhos tiverem a mesma duração, o gatilho com o número mais
Prioritybaixo dispara. Se ainda houver empate, o vencedor será o gatilho que foi criado mais cedo. O sistema descarta outros gatilhos na mesma duração.Os gatilhos estão em fila, não em paralelo.
Só um temporizador está ativo de cada vez. Após a execução do gatilho atual, o runtime calcula o tempo restante até ao próximo gatilho e define um novo temporizador para a diferença. O efeito líquido é que os gatilhos são acionados nos deslocamentos exatos em relação ao ponto de inatividade original, embora possa ocorrer um pequeno desvio se a execução do gatilho demorar um tempo significativo.
Execução em segundo plano.
O evento de inatividade é um gatilho em segundo plano. Não requer interação do utilizador para disparar.
Gravação de transcrição.
O sistema regista eventos de inatividade nas transcrições das conversas. Um novo registo de transcrições é criado após 30 minutos de inatividade.
Exemplo de linha temporal (múltiplos gatilhos)
| Hora | Evento |
|---|---|
| 0:00 | Utilizador envia a última mensagem |
| 5:00 | O gatilho A (300 s) dispara e envia aviso |
| 10:00 | Ativação do gatilho B (600 s), termina a conversa |
Se o utilizador enviar uma mensagem às 16:30, ambos os temporizadores são reiniciados. O gatilho A aciona às 9:30, e o gatilho B aciona às 14:30.
Configurar o gatilho de inatividade
Esta secção mostra como o Copilot Studio inicia, reinicia e executa temporizadores de inatividade para que possas prever o que acontece quando uma conversa fica inativa.
Crie um tema de gatilho de inatividade
No Copilot Studio, vá a Tópicos>Adicione um tópico>From blank.
Selecione a frase de gatilho. Em vez de uma frase, selecione "Após um período de inatividade".
Define a propriedade Duração de Inatividade . No modo de entrada manual, escolha um tempo predefinido no menu suspenso (15 minutos, 30 minutos, 45 minutos ou 1 hora). Para inserir um valor personalizado em segundos ou uma fórmula Power Fx (por exemplo,
Global.TimeoutSeconds), mude o seletor de modo para Fórmula e digite o valor diretamente.Desenha o fluxo do tema (envia uma mensagem, faz uma pergunta, termina a conversa, e assim por diante).
Salve e publique o seu agente.
Referência de duração
| Tempo de espera desejado | Valor (segundos) |
|---|---|
| 30 segundos | 30 |
| 2 minutos | 120 |
| 5 minutos | 300 |
| 10 minutos | 600 |
| Uma hora | 3600 |
Important
A propriedade usa segundos, não minutos ou milissegundos. Um valor de 60000 significa cerca de 16,7 horas, não 60 segundos.
Exemplo: Gatilho de aviso único
[EmInatividade - 600s]
Mensagem: "Ainda estás aí? Responder para continuar."
Fim do Tópico
Exemplo: aviso de 5 minutos e fecho automático de 10 minutos
Este padrão é o mais comum. Crie dois tópicos de inatividade:
Tema 1: Aviso de inatividade (5 minutos)
- Disparador: Após um período de inatividade
-
durationInSeconds:300 - Ações: Enviar uma mensagem: "Ainda estás aí? Esta conversa termina em 5 minutos se não houver resposta."
Tema 2: Fecho automático (10 minutos)
- Disparador: Após um período de inatividade
-
durationInSeconds:600 - Actions:
- Set
Global.DeactivateInactivity = true(variável de guarda - ver Melhores Práticas) - Envie uma mensagem: "Esta conversa termina por inatividade."
- Fim da conversa
- Set
Exemplo: Recolha de feedback
- Disparador: Após um período de inatividade
- DuraçãoEmSegundos:
120 - Actions:
- Pergunte: "Antes de ir, poderia avaliar a sua experiência? (1-5)"
- Armazenar a resposta
- Fim da conversa
Adicionar uma condição ao gatilho
Adicione um nó de Condição logo após o gatilho para que só funcione em certas situações:
- Ative apenas num canal específico:
=Activity.ChannelId = "msteams" - Só dispara se uma variável de guarda não estiver definida:
=Global.DeactivateInactivity = false
Padrão recomendado para múltiplos gatilhos (tópico partilhado)
Se tiver múltiplos gatilhos com nós Pergunta, use um tópico partilhado para evitar problemas de empilhamento de diálogos.
Crie um tema partilhado chamado
HandleInactivity:- Adicionar uma variável
Global.InactivityStageglobal (Texto) - Verifique o seu valor:
-
"warning"→ Enviar uma mensagem de aviso com um nó Pergunta ("Continuar?" / "Terminar?") -
"close"→ Enviar uma mensagem de encerramento e encerrar a conversa
-
- Adicionar uma variável
Primeiro gatilho de OnInactivity (300 segundos):
- Definir
Global.InactivityStage = "warning" - Redirecionar para
HandleInactivity
- Definir
Segundo gatilho de OnInactivity (600 segundos):
- Definir
Global.InactivityStage = "close" - Redirecionar para
HandleInactivity
- Definir
Esta abordagem impede que os nós de Pergunta se empilhem e formem ciclos de solicitação.
Configuração específica do canal
Matriz de canais de suporte
| Canal | Nível de suporte | Notes |
|---|---|---|
| Site de demonstração | Totalmente suportada | Melhor canal para testar gatilhos de inatividade. |
| Site personalizado (Direct Line) | Totalmente suportada | Funciona da mesma forma que o site de demonstração. |
| Microsoft Teams | Suportado | Funciona, mas consulte orientações específicas do Teams na secção seguinte. Os tokens de autenticação podem expirar durante longos períodos de inatividade. |
| Atendimento ao Cliente do Dynamics 365 | Totalmente suportada | Requer passos extra para encerrar as conversas do Dynamics 365 Customer Service. Saiba mais na configuração Dynamics 365 Customer Service. |
| Microsoft 365 Copilot | O gatilho dispara, mas as mensagens não são entregues | Este cenário é uma limitação conhecida. O gatilho é executado do lado do servidor, mas a interface do Microsoft 365 Copilot não mostra mensagens proativas dos agentes. Nenhuma solução alternativa. |
| Painel de testes | Não suportado | Este cenário é intencional. Os temporizadores estão desativados para o ID do canal Studio. Usa o site de demonstração ou um canal publicado para testar. |
| DirectEngine | Não suportado | Este cenário é intencional. Os temporizadores estão desativados para o ID de canal do DirectEngine (ambiente de design/teste). |
| Telefonia/IVR | Não suportado | Para canais de voz, usa o gatilho OnSilence em vez disso. |
Configuração das equipas
O Teams utiliza um modelo persistente de conversa única. A conversa nunca "termina" verdadeiramente do ponto de vista do Microsoft Teams. Este modelo significa que os gatilhos de inatividade continuam a disparar novamente mesmo depois de o utilizador considerar a conversa terminada.
Padrão de Equipas Recomendadas:
Crie uma variável
Global.IsConversationClosedglobal (Booleana, padrão:false).No início do seu tópico de inatividade, verife:
If Global.IsConversationClosed = true→ Terminar o Tópico (sair imediatamente).Quando a conversa termina logicamente (o utilizador diz "adeus", a satisfação do cliente termina, e assim sucessivamente), defina
Global.IsConversationClosed = true.O gatilho de inatividade pode continuar a disparar, mas sai imediatamente sem mostrar mensagem.
Configuração do Dynamics 365 Customer Service
- As conversas fecham-se automaticamente após 30 minutos de inatividade por defeito.
- Chamar a função EndConversation sozinho não fecha a sessão do Dynamics 365 Customer Service. A capacidade dos agentes não é liberada.
- Para fechar completamente a conversa, defina a variável de contexto
CloseOmnichannelConversationparatrueatravés de um fluxo Power Automate, depois use um nó Transfer to Agent.
Limitações conhecidas
Referência rápida: O que pode perturbar o temporizador de inatividade?
| Característica ou Ação | Efeito nos temporizadores de inatividade |
|---|---|
| Fim da conversa | Limpa permanentemente todos os temporizadores |
| O utilizador envia uma mensagem | Reinicia todos os cronómetros para zero (intencionalmente) |
| Condição de gatilho com variável não inicializada | O temporizador é excluído silenciosamente - nunca é ativado |
| A duração excede 7 dias (604.800 segundos) | O temporizador é silenciosamente ignorado |
| Eliminação de variáveis globais num tópico de inatividade | agente perde o contexto da conversa |
| Transferência para representante de apoio ao cliente | O temporizador mantém-se ativo e pode disparar durante a conversa com o representante de apoio ao cliente |
O painel de teste não suporta gatilhos de inatividade
O painel de testes do Copilot Studio não dispara gatilhos de inatividade. Esta limitação é propositada. Publique o seu agente e teste num canal ao vivo (site de demonstração, Teams, etc.).
O Microsoft 365 Copilot não mostra mensagens de inatividade
O disparador é executado do lado do servidor, mas qualquer saída (mensagens, cartões) não é entregue ao utilizador na experiência Microsoft 365 Copilot. Não há solução alternativa. Veja as limitações conhecidas do Microsoft Teams.
Orquestração de IA generativa
Os gatilhos de inatividade são implementados como gatilhos clássicos de tópicos de orquestração e utilizam um pipeline de eventos separado baseado em temporizador. Quando a orquestração de IA Generativa está ativada, o roteamento de tópicos deixa de depender do reconhecimento clássico de acionadores, pelo que os tópicos de inatividade podem não disparar de maneira confiável em todas as configurações. Se for necessária a gestão da inatividade, a orquestração clássica é a configuração recomendada e totalmente validada.
Agentes conectados: a inatividade dos agentes subordinados não é suportada
Em configurações de agentes ligados, os gatilhos de inatividade em agentes filhos não funcionam e retornam "Resposta Inválida do Agente Ligado." Toda a lógica de inatividade deve ser colocada no agente principal.
Duração máxima: 7 dias (604.800 segundos)
Bots publicados ignoram silenciosamente gatilhos com duração superior a 604.800 segundos. Não aparece nenhum erro. No modo de design, pode aparecer um erro. Não existe um mínimo imposto – durações curtas (menos de cerca de 15 segundos) podem comportar-se de forma imprevisível devido à latência da infraestrutura do temporizador.
Terminar conversa elimina temporizadores de inatividade
Quando chamas Terminar conversa num tópico, isso interrompe permanentemente todos os temporizadores ativos de inatividade dessa conversa. Os temporizadores estão completamente apagados; Não são reiniciados nem pausados. A operação descarta quaisquer eventos de inatividade pendentes que já estejam agendados.
Se quiser terminar o fluxo de um tópico sem perturbar os temporizadores de inatividade, use uma das ações alternativas:
| Ação (no Copilot Studio) | Efeito nos temporizadores de inatividade |
|---|---|
| Fim da conversa | Limpa todos os temporizadores; Os temporizadores param permanentemente |
| Fim do tópico atual (EndDialog) | Não afeta os temporizadores; Os temporizadores continuam a funcionar |
| Cancelar todos os tópicos (CancelAllDialogs) | Não afeta os temporizadores; Os temporizadores continuam a funcionar |
Tip
Se o teu tópico precisar de fechar o fluxo atual mas ainda quiseres que o temporizador de inatividade dispare mais tarde (por exemplo, um tópico de pesquisa JIRA que termina mas a conversa ainda deve expirar), usa Terminar tema atual em vez de Terminar conversa.
A utilização de uma variável de guarda para evitar o novo disparo continua a ser uma prática defensiva recomendada.
Disparos de gatilho após a escalada do agente
Depois de o sistema transferir uma conversa para um representante de apoio ao cliente, o gatilho de inatividade mantém-se ativo. Pode disparar durante a conversa do agente humano e enviar mensagens inesperadamente. Certifique-se de sempre chamar a função EndConversation antes da transferência ou utilize uma variável guardiã.
Mensagens de gatilho podem aparecer nas transcrições após o fim da conversa
Mesmo depois de uma conversa terminar, o gatilho pode continuar a disparar e as suas mensagens são registadas na transcrição. Esta condição não afeta a experiência do utilizador, mas pode aparecer nas análises.
Canais de telefone, voz e IVR
O gatilho de inatividade não está disponível para canais de telefone e voz. Usa o gatilho OnSilence em vez disso.
Configurações incorretas comuns
Use esta secção para identificar e corrigir problemas comuns de configuração que podem impedir que os gatilhos de inatividade funcionem como esperado.
Terminar a conversa no tema da inatividade (risco de loop)
Problema: Quando chamas Terminar conversa de um tópico de inatividade, limpas todos os temporizadores de inatividade. No entanto, em canais com conversas persistentes (especialmente no Teams), a conversa subjacente mantém-se ativa. Em algumas configurações, o gatilho ainda pode disparar novamente, causando mensagens repetidas de "sessão terminada".
Solução (recomendada como prática defensiva): Use uma variável de guarda:
Create
Global.DeactivateInactivity(Booleano, predefinido:false).No topo de cada tópico de inatividade, adicione uma condição: só prossiga se
Global.DeactivateInactivity = false.Defina
Global.DeactivateInactivity = trueantes de chamar EndConversation.
Observação
O padrão da variável de proteção é especialmente importante nos canais do Teams, onde o modelo persistente de conversa significa que a conversa nunca termina verdadeiramente.
Duração definida para o valor errado
Problema:durationInSeconds é em segundos. Um valor de 60000 é cerca de 16,7 horas, não 60 segundos.
Solução: Verifique novamente os seus valores com a tabela de referência na Secção 3.
Nós de pergunta em múltiplos tópicos de inatividade (empilhamento de prompts)
Problema: Se vários gatilhos tiverem cada um um nó de Pergunta , o nó de Pergunta do segundo gatilho interrompe o primeiro. Quando o utilizador responde, o primeiro nó de Pergunta retoma e recomeça, criando um ciclo.
Solução: Usa o padrão de tópicos partilhados. Consolide a lógica do nó da Pergunta num único tópico, ou certifique-se de que apenas um gatilho tem um nó da Pergunta .
Eliminação de variáveis globais no tópico da inatividade
Problema: Se o tópico de inatividade eliminar variáveis globais, o agente perde todo o contexto da conversa e parece não responder quando o utilizador regressa.
Solução: Apenas reinicia variáveis específicas da inatividade, não todo o estado da conversa.
Não inibir gatilhos de inatividade no Microsoft Teams
Problema: No Teams, o modelo de conversa persistente significa que os gatilhos disparam indefinidamente. Os utilizadores recebem mensagens repetidas de "ainda aí está?" horas ou dias depois.
Solução: Usa sempre o padrão de variáveis de bloqueio para o Teams.
Não ligar a closeOmnichannelConversation
Problema: Para agentes do Dynamics 365 Customer Service, chamar apenas "EndConversation" não encerra a sessão do Dynamics 365 Customer Service. As conversas acumulam-se na fila de espera dos agentes.
Solution: Defina CloseOmnichannelConversation para true via Power Automate no seu tópico de inatividade.
Duração dinâmica a partir de uma variável não inicializada
Problema: Usar uma expressão Power Fx como =Environment.InactivityTimeout para a duração funciona, mas se a variável não estiver inicializada ou for nula, o gatilho é silenciosamente excluído.
Solução: Garantir que todas as variáveis usadas nas condições de disparo e expressões de duração tenham valores predefinidos válidos.
Esperar que os gatilhos funcionem após o escalonamento do agente
Problema: Depois de o sistema ser transferido para um representante de apoio ao cliente, o gatilho é ativado na conversa original do agente e envia mensagens durante a sessão do agente humano.
Solução: Ou termina a conversa com o agente no momento da escalada, ou usa uma variável de proteção e verifica no início do tema de inatividade.
Solução de problemas quando o gatilho de inatividade não está a funcionar
Use esta árvore de decisão para diagnosticar o problema:
Onde estás a testar?
- Se estiveres a usar o painel de testes, para. O painel de teste não suporta gatilhos de inatividade. Publique e teste num canal em direto.
Que canal estás a usar?
- Microsoft 365 Copilot? Este canal tem uma limitação conhecida. O gatilho dispara mas as mensagens não são entregues. Nenhuma solução alternativa.
- Telefonia/IVR? Este canal não é suportado. Usa o gatilho OnSilence em vez disso.
A orquestração com IA generativa está ativada?
- Os gatilhos de inatividade utilizam um pipeline de temporizador separado do encaminhamento baseado em reconhecimento. No entanto, o seu comportamento com a orquestração de IA generativa não está totalmente validado. Se a gestão da inatividade for crítica, a orquestração clássica é a configuração recomendada.
O teu
durationInSecondsé superior a 604.800?- Se sim, o gatilho é silenciosamente ignorado. Reduza para 604.800 ou menos.
O agente é um agente filho numa configuração de Connected Agent?
- Se sim, os gatilhos de inatividade do agente criança não são suportados. Transfere a lógica para o agente principal.
Tens múltiplos gatilhos de inatividade?
- Disparam por ordem de duração (primeiro o mais curto). Certifica-te de que estás à espera tempo suficiente. Qualquer mensagem de utilizador reinicia todos os temporizadores.
O gatilho tem alguma condição que faça referência a uma variável não inicializada?
- Se uma condição faz referência a uma variável ainda não definida, o gatilho é silenciosamente excluído. Garantir que todas as variáveis de condição têm valores predefinidos.
O agente foi republicado depois da conversa ter começado?
- Uma republicação pode reiniciar o temporizador de inatividade para sessões ativas. Comece uma nova conversa e teste novamente.
Se o gatilho de inatividade ainda não estiver a funcionar, experimente as seguintes opções:
- Consulte as transcrições das conversas para qualquer atividade relacionada com o tema da inatividade. Se o tema aparecer mas o utilizador não viu a mensagem, o problema é a entrega específica do canal.
- Verifica se o tema não está desativado ou arquivado.
- Confirma que o tipo de gatilho é "Após um período de inatividade", não um gatilho de frase.
Melhores práticas
Teste sempre num canal publicado. Use o site de demonstração para testes rápidos. Nunca confie no painel de teste.
Utilize uma variável de guarda para evitar loops. Create
Global.DeactivateInactivity(Booleano, por defeitofalse). Defina paratrueantes de chamar EndConversation. Consulta no início de cada tópico sobre inatividade.Mantenha as durações razoáveis. Mínimo ~15 segundos, máximo 604.800 segundos (7 dias).
Verifique as suas unidades. A propriedade chega em segundos. 5 minutos =
300, não5.Para Dynamics 365 Customer Service: Emparelhe sempre
EndConversationcomcloseOmnichannelConversationvia Power Automate.Para cenários com múltiplos gatilhos: limite os nós da Pergunta a um único gatilho, ou use o padrão de tópicos partilhados.
Ligue para
EndConversationantes de transferir para um representante do cliente para desativar os gatilhos de inatividade.Monitorize as transcrições das conversas após a implantação para verificar se as mensagens aparecem nos horários previstos.
FAQ
Porque é que o gatilho de inatividade não funciona no painel de teste?
Os temporizadores estão desativados no painel de testes por design. Publique o seu agente e teste num canal ao vivo.
Posso usar durações dinâmicas (por exemplo, de uma variável)?
Yes. O campo de duração aceita expressões de Power Fx. Pode usar uma variável de ambiente ou um valor calculado. A expressão é avaliada em tempo de execução quando o temporizador é ativado. Certifique-se de que a variável está inicializada e contém um número válido.
O que acontece se eu publicar uma nova versão do agente enquanto as conversas estão ativas?
O runtime adota a nova versão. Se o ID do gatilho mudou (tópico apagado e recriado), o sistema volta a corresponder por duração. Se nenhum trigger corresponde por ID ou duração, o evento de inatividade pendente é cancelado.
Como posso parar completamente os gatilhos de inatividade no Teams?
Não os podes parar ao nível da plataforma. Utiliza o padrão de variável de controlo: define uma variável booleana quando a conversa termina logicamente e verifica-a no início do tópico de inatividade para sair antecipadamente.
O gatilho de inatividade funciona com autenticação?
Sim, mas para longos tempos de espera de sessão (por exemplo, 24 horas), o token de autenticação do utilizador pode expirar antes do disparo do trigger. Garanta que o seu agente gere a reautenticação com elegância.
O que acontece se o meu tópico de inatividade chamar um conector que demora muito tempo?
As chamadas de conector têm um limite de tempo de espera (30 segundos padrão, 60 segundos no máximo). Otimiza o conector ou trata do timeout com elegância.
Conteúdo relacionado
- Definir acionadores de tópico
- Variáveis do sistema: InactivityTimer.Continue, InactivityTimer.Count
- Use Power Fx em Copilot Studio
- Configure transferência de Dynamics 365 Customer Service
- Configuração de voz e deteção de silêncio
- Implementar agentes no Teams
- Agentes ligados
- Transcrições de conversas em Copilot Studio
- Encerrar automaticamente conversas Omnicanal
- Limitações conhecidas em Microsoft 365 Copilot