Passar para o conteúdo principal

Melhores práticas e exemplos de Fin Tasks

Veja nossas melhores práticas e exemplos ao criar Fin Tasks e escrever instruções para Fin.

Usando Fin Tasks, você pode dar instruções passo a passo para Fin sobre a tarefa que deseja que ela execute. Fornecemos algumas melhores práticas e exemplos ao escrever essas instruções para Fin.

Nota: Fin Tasks está atualmente em disponibilidade gerenciada, oferecendo suporte personalizado e prático. Por favor, discuta o acesso com seu Gerente de Conta.


Melhores práticas para Fin Task

Instruções claramente escritas podem fazer uma grande diferença no desempenho da sua Fin Task.

Dicas gerais para prompts de LLM

Antes de mergulhar nos detalhes das Fin Tasks, aqui estão algumas dicas úteis que se aplicam geralmente ao trabalhar com grandes modelos de linguagem (LLMs):

  • Um bom prompt é imperativo e instrutivo. Comece frases com um verbo e evite voz passiva.

  • Não deixe espaço para ambiguidade: instrução detalhada é melhor que breve.

Para leitura adicional, veja os tópicos de introdução aqui.

Escopo e organização da tarefa

Embora Fin retenha memória dos passos anteriores e ações tomadas ou dados armazenados, você ainda precisa projetar tarefas com limites claros e propósitos focados.

Quando usar uma única Fin Task:

  • Todos os passos fazem parte de um processo coeso com progressão clara.

  • Passos posteriores dependem dos anteriores em uma sequência lógica.

  • Todo o processo compartilha os mesmos critérios de decisão e resultados.

Quando considerar múltiplas Fin Tasks:

  • Para processos de negócios completamente separados

  • Você precisa criar pontos de verificação claros em um fluxo de trabalho complexo

  • Diferentes partes interessadas ou equipes são responsáveis por diferentes partes de um processo

  • Você quer permitir diferentes pontos de entrada em um fluxo de trabalho

Estrutura da tarefa

Título e descrição do gatilho

Certifique-se de que o título seja descritivo e não apenas interno.

  • Exemplo de boa prática: Pedidos danificados

  • Exemplo de má prática: Test123

Você deve escrever de 3 a 5 frases para descrever quando Fin deve acionar esta tarefa. Seja o mais específico possível e certifique-se de incluir um ou mais dos seguintes itens:

  • Cenários comuns em que acionar esta tarefa seria apropriado.

  • Exemplos dos tipos de perguntas dos clientes que seriam respondidas por esta tarefa.

  • Frases-chave que os clientes podem usar.

Exemplo de boa prática:

Use esta tarefa quando um cliente relatar o recebimento de um pedido que foi danificado durante a entrega — como bebidas vazando, comida derramada ou recipientes quebrados. Não use esta tarefa se o cliente estiver relatando uma entrega atrasada, um item faltando ou problemas não relacionados a danos no produto.

Exemplo de má prática:

Use esta tarefa para reembolsar um pedido.

Bloco de instruções

O bloco de instruções segue um formato estruturado composto pelas seguintes seções...

1. Instruções:

Este é um plano claro, logicamente completo e passo a passo que Fin deve seguir. Certifique-se de cobrir todas as regras de decisão necessárias para que Fin execute a tarefa.

A melhor e mais fácil forma de formular isso é seguir uma lógica “if + else”. Essa lógica garante que você sempre poderá tomar uma decisão em qualquer etapa e avançar para uma solução ou ter uma saída do processo se ficar preso. Para nosso exemplo, isso seria assim:

1. Se você puder determinar a data do pedido e ela for inferior a 30 dias, emita um reembolso.

2. Se você puder determinar a data do pedido, mas ela for superior a 30 dias, informe ao cliente que a política da Company X não permite reembolsos para compras com mais de 30 dias.

3. Caso contrário, informe ao cliente que você irá escalar para um membro humano da equipe de suporte e execute a escalada fazendo... (este exemplo assume que a lógica de escalada foi incorporada na Fin Task)

Se a lógica e as informações que Fin precisa acessar forem muito abertas, você deve considerar se pode dividir o bloco de instruções em etapas menores com lógica mais bem definida e restrita.

Você também precisará identificar os valores de entrada necessários para executar a tarefa. Declare explicitamente no prompt:

  • Quais são esses atributos, para que podem ser usados e como esses atributos se relacionam com o contexto mais amplo da tarefa.

  • Se esses atributos são garantidos para estar disponíveis (por exemplo, de uma etapa anterior nas instruções)

    • Se sim, onde estão disponíveis ou qual é o seu valor, inserindo-os diretamente no prompt.

    • Se não, onde ou como podem ser coletados (por exemplo, do cliente)

2. Orientação (opcional):

Oriente como Fin interage, responde e se comporta durante uma tarefa, fornecendo diretrizes claras. Descreva simplesmente quaisquer comportamentos específicos que você gostaria que Fin seguisse ao executar as etapas.

Rascunhos de tarefas

Uma prática recomendada fundamental para gerenciar Fin Tasks é usar o recurso Salvar como rascunho. Isso permite que você edite e teste alterações em uma Tarefa ativa com segurança, sem impactar seus clientes.

Quando você edita uma tarefa ativa, cria duas versões:

  • Versão ativa: Esta é a tarefa ativa com a qual seus clientes estão interagindo.

  • Versão rascunho: Este é o seu conjunto de alterações não publicadas onde você pode trabalhar e testar privadamente.

Isso oferece um ambiente seguro para aperfeiçoar suas automações antes de publicá-las. Sempre use os recursos Visualizar e Simulações dentro do editor de tarefas para testar sua versão rascunho. Suas alterações só entrarão em vigor quando você estiver confiante e clicar no botão Publicar alterações.

Gatilhos de tarefas

Inclua cerca de 10 perguntas de exemplo

Para melhorar a precisão do reconhecimento da tarefa, você deve fornecer perguntas de exemplo específicas que devem e não devem acionar sua tarefa. Isso ajuda Fin a entender melhor quando usar sua tarefa, especialmente quando você tem várias tarefas semelhantes.

Você pode adicionar tanto exemplos positivos ("Acionar quando...") quanto exemplos negativos ("Não acionar quando...").

Comece com cerca de 10 perguntas de exemplo altamente relevantes para garantir que a tarefa seja reconhecida corretamente. Se necessário, você pode estender isso para 20–30 exemplos, mas tenha cuidado com a complexidade. Se a lista ficar muito longa ou específica, considere simplificar a descrição ou passar para gatilhos baseados em intenção para manter a clareza e a gerenciabilidade.

Use exemplos negativos apenas quando houver acionamento incorreto

Exemplos "Não acionar quando..." devem ser incluídos apenas se você estiver observando comportamento de acionamento incorreto. Exemplos negativos ajudam a refinar a detecção esclarecendo o que Fin não deve responder, mas evite adicioná-los a menos que estejam resolvendo um problema específico com acionamentos errôneos.

Instruções da tarefa

Divida as instruções apenas quando as tarefas forem complexas

Use um único bloco de instrução estruturado quando sua tarefa for simples ou tiver menos de aproximadamente 10 etapas. Se a tarefa envolver lógica complexa, ramificações significativas ou ficar difícil de acompanhar, é melhor dividi-la em vários blocos de instrução para maior clareza e manutenção.

Deixe Fin coletar entradas automaticamente para conectores de dados

Você não precisa coletar todas as entradas manualmente antes de executar um conector de dados. Ao configurar o conector de dados, especifique as entradas necessárias, e Fin perguntará automaticamente ao cliente por qualquer entrada que estiver faltando. Isso reduz a complexidade das suas instruções e mantém as interações mais eficientes.

Mudança de tarefa é permitida durante conversas

Fin é capaz de mudar de tarefa no meio da conversa, e até mesmo mudar para respostas informativas (do seu conteúdo de suporte) quando o contexto ou a intenção do cliente mudar. Isso significa que ele pode sair de uma tarefa e começar outra sem interrupções, permitindo interações mais dinâmicas e responsivas com base nas necessidades do usuário em evolução.

Respostas da API são lembradas entre etapas de instrução

Fin lembra automaticamente as respostas da API dentro do mesmo bloco de instrução. Você pode se referir a esses resultados naturalmente em etapas posteriores, como dizendo “usando o saldo retornado anteriormente,” sem precisar repetir ou armazenar os dados manualmente.

Não é necessário salvar respostas da API em atributos temporários

Não há necessidade de armazenar explicitamente as respostas da API em atributos temporários. Fin mantém o controle dos dados internamente, permitindo que você os referencie diretamente em etapas subsequentes usando linguagem natural simples.

Utilize marcação nas etapas de instrução

Marcar uma conversa

Melhore a categorização da conversa instruindo Fin a marcar conversas com tags predefinidas nas instruções da tarefa. Isso ajuda na filtragem, relatórios e acionamento de ações de acompanhamento.

Exemplo de instrução:

"Marcar conversa 'Consulta de Cobrança' e 'Alta Prioridade'."

Nota: Certifique-se de que as tags usadas nas instruções correspondam às configuradas no seu espaço de trabalho Fin.


Exemplos de Fin Task

Compilamos vários prompts de casos de uso abaixo que podem ajudar você a moldar suas Fin Tasks.

Reembolso de pedido

Descrição: O objetivo desta tarefa é determinar se uma solicitação de reembolso feita por um cliente é válida e, se for, processá-la. Seguindo as instruções abaixo, você poderá verificar e processar a solicitação de reembolso de um cliente para pedidos feitos com a Company X.

Etapa 1: Use @get_order_details para o pedido com ID @collected_order_id para recuperar os detalhes desse pedido. Em seguida, siga a lógica abaixo para determinar se o pedido recuperado pode ser reembolsado:

  • Se a data do pedido for mais de 30 dias anterior à data atual, informe ao cliente que você não pode oferecer reembolso porque o pedido foi feito há mais de 30 dias. Defina @refund_outcome como "denied" e informe o cliente sobre o resultado.

  • Se a data do pedido for menos de 30 dias anterior à data atual, prossiga para a Etapa 2.

  • Caso contrário, informe ao cliente que você não pode verificar se o pedido pode ser reembolsado e encaminhe para um membro humano da equipe de suporte. Defina @refund_outcome como "escalation" e informe ao cliente que você tomou essa ação.

Etapa 2: Use @process_items_refund com o ID do pedido @collected_order_id para processar um reembolso para esse pedido. Em seguida, colete a resposta e:

  • Se o reembolso foi bem-sucedido, informe ao cliente que o reembolso foi processado com sucesso. Defina @refund_outcome como "success" e informe o cliente sobre o resultado.

  • Caso contrário, se o reembolso falhou, informe ao cliente que você não conseguiu processar o reembolso. Defina @refund_outcome como "escalation" e informe ao cliente que você tomou essa ação.

Orientação: Seja empático ao comunicar notícias negativas sobre negações de reembolso. Quando um reembolso for bem-sucedido, seja caloroso e claro sobre os prazos de processamento do reembolso.

Solicitação de cancelamento de assinatura

Descrição: O objetivo desta tarefa é determinar se uma solicitação de cancelamento de assinatura feita por um cliente é válida e, se for, processá-la. Seguindo as instruções abaixo, você poderá verificar e cancelar a assinatura de um cliente para a Company X.

Etapa 1: Use @get_subscription_details para a assinatura com ID @collected_subscription_id para recuperar os detalhes dessa assinatura. Em seguida, siga a lógica abaixo para determinar se a assinatura recuperada pode ser cancelada:

  • Se a assinatura ainda estiver no seu período mínimo de compromisso (um prazo de 12 meses que ainda não expirou):

    • Informe ao cliente que você não pode cancelar a assinatura neste momento porque a assinatura está dentro do período de compromisso.

    • Defina @cancellation_outcome como "denied".

  • Se a assinatura for elegível para cancelamento (é um plano mensal ou o período de compromisso terminou):

    • Prossiga para a Etapa 2.

  • Caso contrário, se você não conseguir determinar pelos detalhes da assinatura se ela pode ser cancelada:

    • Informe ao cliente que você não pode verificar a elegibilidade de cancelamento da assinatura e encaminhe para um membro humano da equipe de suporte.

    • Defina @cancellation_outcome como "escalation".

Etapa 2: Use @cancel_subscription com o ID da assinatura @collected_subscription_id para processar o cancelamento. Em seguida, colete a resposta e:

  • Se o cancelamento for bem-sucedido:

    • Informe ao cliente que a assinatura foi cancelada com sucesso.

    • Defina @cancellation_outcome como "success".

  • Se o cancelamento falhar:

    • Informe ao cliente que você não conseguiu cancelar a assinatura e que o problema foi encaminhado.

    • Defina @cancellation_outcome como "escalation".

Orientação: Seja direto, mas empático ao explicar os períodos de compromisso. Quando for bem-sucedido, confirme claramente o que acontecerá com a cobrança daqui para frente.

Solicitação de Alteração de Endereço

Descrição: O objetivo desta tarefa é determinar se uma solicitação de atualização do endereço de entrega para um cliente é válida e, se for, processá-la. Seguindo as instruções abaixo, você verificará e atualizará o endereço de entrega no sistema da Company X.

Etapa 1: Use @get_customer_profile fornecendo o ID @collected_customer_id para recuperar o status atual da conta do cliente. Em seguida, siga a lógica abaixo:

  1. Se a conta do cliente estiver bloqueada ou sinalizada (seu account_status for "suspected fraud" ou "unpaid balance"):

    • Informe ao cliente que você não pode prosseguir com a alteração do endereço devido a restrições na conta.

    • Defina @address_change_outcome como "denied".

  2. Se a conta do cliente estiver ativa e elegível para atualizações:

    • Prossiga para a Etapa 2.

  3. Caso contrário, se o sistema não conseguir determinar o status da conta ou se houver informações insuficientes:

    • Informe ao cliente que você não pode verificar se o endereço pode ser atualizado e encaminhe para um agente humano de suporte.

    • Defina @address_change_outcome como "escalation".

Etapa 2: Use @validate_address fornecendo o @collected_new_address para verificar sua autenticidade e possibilidade de entrega. Em seguida, siga a lógica abaixo:

  1. Se o novo endereço não for reconhecido ou estiver fora das regiões atendidas pela Company X (o valor do endereço pode ser apenas "United States", "European Union" ou "Canada", nenhuma outra região é suportada):

    • Informe ao cliente que o endereço não pode ser atendido ou é inválido.

    • Defina @address_change_outcome como "denied".

  2. Se o endereço for reconhecido e entregue:

    • Prossiga para a Etapa 3.

  3. Se o resultado da validação do endereço for inconclusivo ou não puder ser determinado pelo sistema:

    • Informe ao cliente que você não pode verificar o endereço no momento e que a solicitação foi encaminhada.

    • Defina @address_change_outcome como "escalation".

Etapa 3: Use @update_customer_address fornecendo tanto @collected_customer_id quanto @collected_new_address para finalizar a atualização do endereço. Em seguida, siga a lógica abaixo:

  1. Se a atualização do endereço for bem-sucedida:

    • Informe ao cliente que o endereço foi atualizado com sucesso.

    • Defina @address_change_outcome como "success".

  2. Se a atualização do endereço falhar por qualquer motivo (erro do sistema ou registros conflitantes):

    • Informe ao cliente que você encaminhou o problema para um agente humano de suporte.

    • Defina @address_change_outcome como "escalation".

Orientação: Seja claro sobre quais regiões são suportadas. Ao confirmar uma alteração de endereço bem-sucedida, lembre o cliente que isso afetará todos os envios futuros.

Ajuste de Pontos de Fidelidade

Descrição: O objetivo desta tarefa é determinar se a solicitação de ajuste de pontos de fidelidade de um cliente é válida e, se for, realizar esse ajuste. Seguindo estas instruções, você revisará o status da conta de fidelidade do cliente, validará a solicitação e ajustará os pontos conforme necessário no sistema da Company X.

Etapa 1: Use @get_loyalty_profile com o ID @collected_loyalty_member_id para recuperar o status da conta do membro. Em seguida, siga a lógica:

  1. Se a conta de fidelidade estiver inativa, suspensa ou sinalizada por atividade suspeita:

    • Informe ao cliente que a conta não está elegível para ajuste de pontos no momento.

    • Defina @points_adjustment_outcome como "denied".

  2. Se a conta estiver em situação regular:

    • Prossiga para a Etapa 2.

  3. Caso contrário, se o sistema não conseguir determinar o status da conta:

    • Informe ao cliente que você não pode verificar a conta dele e que encaminhará o assunto para um especialista de suporte.

    • Defina @points_adjustment_outcome como "escalation".

Passo 2: Use @audit_loyalty_activity fornecendo @collected_loyalty_member_id e @collected_points_adjustment_request para revisar transações recentes de fidelidade e verificar se a solicitação é justificada. Então:

  1. Se o ajuste solicitado se referir a uma transação fora do prazo de reivindicação (data da reivindicação é superior a 90 dias):

    • Informe ao cliente que a solicitação não pode ser concedida devido às políticas do programa.

    • Defina @points_adjustment_outcome como "denied".

  2. Se a solicitação for válida (por exemplo, pontos não foram creditados em uma compra elegível recente):

    • Prossiga para o Passo 3.

  3. Se a auditoria retornar resultados inconclusivos (nenhuma transação correspondente encontrada ou apenas dados parciais):

    • Informe ao cliente que uma investigação adicional é necessária e que você está escalando o assunto para um agente humano.

    • Defina @points_adjustment_outcome como "escalation".

Passo 3: Use @adjust_loyalty_points fornecendo @collected_loyalty_member_id e o valor de @collected_points_adjustment_request para finalizar o ajuste de pontos. Então:

  1. Se o ajuste de pontos for processado com sucesso:

    • Informe ao cliente que o saldo de fidelidade foi atualizado.

    • Defina @points_adjustment_outcome como "success".

  2. Se o ajuste falhar devido a um erro de sistema ou registros conflitantes:

    • Informe ao cliente que não foi possível concluir a solicitação e que ela foi escalada para revisão manual.

    • Defina @points_adjustment_outcome como "escalation".

Orientação: Quando um ajuste de pontos for bem-sucedido, faça referência à transação específica que gerou os pontos. Seja informativo sobre as políticas do programa ao negar solicitações.

Respondeu à sua pergunta?