Passar para o conteúdo principal

Exemplos práticos de Procedimentos Fin

Veja exemplos práticos de como construir etapas eficazes, condições e chamadas de conector de dados em seus Procedimentos Fin.

Escrito por Dawn

Este artigo aborda exemplos práticos de como estruturar suas etapas, condições e chamadas de conector de dados em Procedimentos Fin.


Estruturando etapas de Instrução

A etapa Instrução é a etapa padrão e mais poderosa.

Combine ações relacionadas em uma única etapa

Menos etapas, bem projetadas e que combinam ações relacionadas de forma coerente são melhores do que muitas etapas pequenas e separadas.

Menos eficaz:

  • Etapa 1: @read Email.

  • Etapa 2: Peça o email se ele não estiver presente.

  • Etapa 3: @use get_subscription_details

  • Etapa 4: Envie uma resposta listando todos os campos da API.

Mais eficaz:

@read email. Se não for conhecido, peça ao usuário seu email antes de continuar. Então @use get_subscription_details e responda perguntando com o que o usuário precisa de ajuda. Inclua o plano atual do usuário, status do plano e próxima data de renovação na sua resposta.

Seja claro e completo

Pense no Fin como um novo colega de equipe sem contexto prévio. Se um humano não entender facilmente suas instruções, provavelmente o Fin também não entenderá.

Menos eficaz:

Colete o número do pedido do cliente e certifique-se de que é válido e não um número de rastreamento

Mais eficaz:

Colete o número do pedido do cliente. Se ele forneceu um número, mas ele tem mais de 11 caracteres excluindo o # no início, informe que pode ser um número de rastreamento e peça o número do pedido novamente. Se o cliente não puder fornecer o número do pedido, não continue @Escalate:Support team.

Adicionando notas para contexto do colega de equipe

Use @Add note dentro de uma etapa de instrução para deixar contexto interno na conversa. Isso é especialmente útil antes de escalonamentos ou transferências, dando aos colegas o contexto necessário.

Menos eficaz:

  • Etapa 1: @use Get_Order_Details e informe ao cliente o status.

  • Etapa 2: Se o pedido estiver perdido, @Escalate para Support team.

Mais eficaz:

@use Get_Order_Details e informe ao cliente o status. Se o pedido estiver perdido ou não entregue após a data prevista, @Add note com o número do pedido, fornecedor de envio, data prevista de entrega e status atual do rastreamento. Então @Escalate para Support team.


Usando a etapa Condição

Condições dizem ao Fin como se comportar em diferentes situações. Você pode usá-las para grandes e distintas ramificações na sua lógica.

Exemplo: Condição de código para elegibilidade de reembolso

Este exemplo usa uma condição Código para verificar a saída de um conector de dados.

SE: data["Check refund eligibility"].decision == "eligible"

  • Informe ao usuário que a assinatura dele é elegível para reembolso. Apresente a pausa como alternativa: "Se preferir, você pode pausar sua assinatura em vez de cancelar — assim não precisará pagar taxa de reinício se decidir voltar depois." Confirme se o usuário deseja continuar com o reembolso ou pausar a assinatura.

  • Se o usuário desejar continuar com o reembolso, então @Use Process refund para completar o reembolso. Após concluído, informe ao usuário que o reembolso foi processado e os fundos estarão na conta dele normalmente em 7-14 dias.

SENÃO:

  • Informe ao usuário que a assinatura dele não é elegível para reembolso. @Tag Not refund eligible.

  • Ofereça a opção de cancelar a assinatura e que isso pausará quaisquer pagamentos futuros.

  • @Escalate to Support team.

Exemplo: Condição de Linguagem Natural para status de atendimento

Este exemplo usa Linguagem Natural para verificar um atributo.

SE: @Read Fulfillment status é 'fulfilled'

  • Notifique o cliente que o pedido dele não pode ser cancelado, pois já foi atendido.

  • @End Fin continua

A partir daqui, você pode clicar no ícone + para Adicionar condição else if ou Adicionar else.


Trabalhando com conectores de dados e atributos

Você pode usar conectores de dados e atributos para obter ou atualizar informações.

Chamando um conector de dados

Você pode instruir o Fin a usar um conector de dados para obter ou atualizar informações de um sistema externo.

Exemplo: @Use: Get order status e informe ao cliente qual é o status do pedido.

Deixando o Fin coletar entradas

Você não precisa dizer explicitamente ao Fin para coletar os dados que um conector precisa. O Fin infere as entradas que precisa coletar com base na configuração do conector.

Errado (desnecessariamente complexo):

Primeiro peça ao cliente o e-mail dele, depois chame @get_order_details com esse e-mail

Simples e claro:

Chame @get_order_details

Lendo dados de um conector

Quando você usa um conector de dados, os dados retornados estão disponíveis durante todo o Procedimento. Use @read attribute para acessar esses dados em etapas posteriores, em vez de chamar o mesmo conector novamente.

Menos eficaz (mais lento):

  • Passo 1: @use Get_Subscription_info e inclua @read plan status na sua resposta

  • Passo 2: @use Get_Subscription_info e inclua @read refund eligibility na sua resposta

Simples e mais rápido:

  • Passo 1: @use Get_Subscription_info inclua @read plan status na sua resposta

  • Passo 2: inclua @read refund eligibility na sua resposta

Lendo um atributo do Intercom

Você também pode ler dados do Intercom como atributos de Pessoas, Empresa ou Conversa.

Exemplo: Diga ao cliente o @Read People.Plan dele


Usando Seções

Seções permitem que você organize um Procedimento em blocos nomeados e lógicos. Por padrão, o Fin executa as etapas de cima para baixo, independentemente dos limites das seções — as seções não mudam o comportamento de execução a menos que você direcione o Fin para pular para uma delas.

Exemplo: Organizando um procedimento de devoluções com seções

Divida um procedimento longo em seções nomeadas para melhorar a legibilidade e facilitar a navegação com Ir para seção.

Seção: Verificar pedido

  • @use Get_Order_Details. Se o pedido não for encontrado, informe o cliente e @End Fin continua.

Seção: Determinar tipo de devolução

  • Pergunte ao cliente se ele gostaria de um reembolso ou uma troca.

SE: o cliente quiser um reembolso

  • Ir para seção: Processar reembolso

SENÃO:

  • Ir para seção: Processar troca

Seção: Processar reembolso

  • @use Process_Refund e informe ao cliente que o reembolso chegará em 7-14 dias. @Add note com o número do pedido e o valor do reembolso. @End Fin continua.

Seção: Processar troca

  • Pergunte ao cliente qual item ele gostaria em vez disso. @use Create_Exchange e confirme os detalhes do novo pedido. @End Fin continua.

Quando usar seções vs subprocedimentos

Use seções para organizar o fluxo dentro de um único procedimento. Use sub-procedures quando a mesma lógica for reutilizada em vários procedimentos ou quando quiser encapsular uma parte complexa da lógica que tenha suas próprias entradas e saídas.


Usando sub-procedures

Sub-procedures são conjuntos reutilizáveis de etapas que podem ser chamados de outro Procedimento. Isso é recomendado para lógica complexa ou repetida.

Exemplo: Executando um sub-procedimento em uma condição

Você pode executar um sub-procedimento como parte de um ramo condicional.

SE: a escolha do cliente for devolver o item e receber um reembolso total

  • Envie o link https://... para baixar a etiqueta de devolução e explique que eles receberão o reembolso total após os sapatos serem devolvidos em 3-5 dias.

SENÃO:

  • @Run sub-procedure Enviar etiqueta de devolução e fornecer código de desconto

Nomeando sub-procedures

Use nomes claros e orientados para ação que comuniquem o que o sub-procedimento faz.

Bons nomes:

  • CollectPaymentInfo

  • VerifyUserIdentity

  • ResolveDeliveryIssue

Nomes ruins:

  • Step4

  • ParteB

  • SeçãoDeReembolsoManuseioA


Usando a etapa Perguntar ao Colega (Human-in-the-Loop)

A etapa Perguntar ao Colega permite que Fin pause no meio do procedimento e solicite a opinião de um colega humano — sem transferir toda a conversa. Use isso para decisões de alto risco, sensíveis ou complexas, onde você quer automação na maior parte do tempo, mas ainda precisa de um humano em pontos-chave.

Exemplo: Aprovação de reembolso acima de um limite

Passo 1: @use Check_Refund_Eligibility. Se elegível, @read refund amount.

SE: data["Check_Refund_Eligibility"].refund_amount > 500

  • Informe ao cliente que a solicitação de reembolso está sendo analisada e que ele receberá uma resposta em breve.

  • Perguntar ao Colega: "O cliente está solicitando um reembolso de @read refund amount para o pedido @read order number. Motivo: @read refund reason. Por favor, aprove ou negue."

SENÃO:

  • @use Process_Refund e informe ao cliente que o reembolso foi processado. Os fundos chegarão em 7-14 dias.

Como funciona o Perguntar ao Colega

Quando Fin chega na etapa Perguntar ao Colega:

  1. Fin pausa e envia uma nota para o colega designado com o contexto que você configurou.

  2. O colega vê a conversa em uma visualização dedicada Precisa de input do colega na inbox.

  3. O colega pode enviar uma resposta (Fin retoma o procedimento usando o input dele) ou assumir a conversa completamente (Fin para).

  4. Se ninguém responder dentro do tempo configurado, Fin envia uma mensagem de escalonamento para o cliente e atribui a conversa à sua equipe de escalonamento.

Dicas para Perguntar ao Colega

  • Forneça um contexto claro na nota — Inclua os pontos de dados específicos que o colega precisa para tomar uma decisão (ex: valor do reembolso, detalhes do pedido, histórico do cliente).

  • Não use Perguntar ao Colega para decisões rotineiras — Se a lógica pode ser expressa como uma condição ou verificação de código, use essas em vez disso. Reserve Perguntar ao Colega para situações realmente ambíguas ou de alto risco.


Alternando entre Procedimentos

Você pode direcionar Fin para mudar de um procedimento para outro quando as necessidades do cliente mudam no meio da conversa.

Usando @Switch para troca determinística

Use o comando @Switch dentro de uma etapa de instrução para mover explicitamente para outro procedimento.

Exemplo:

Se o cliente disser que deseja cancelar a assinatura em vez de atualizar o método de pagamento, @Switch para o procedimento de Cancelamento.

Usando Agentic Switch para troca automática

Quando o Agentic Switch está ativado, Fin pode mudar autonomamente do procedimento atual para outro procedimento ativo se determinar que a intenção do cliente mudou. Fin toma essa decisão com base na conversa e nas descrições dos gatilhos do procedimento, e pode fazer perguntas para esclarecer.

Agentic Switch é opcional e pode ser ativado nas configurações do procedimento. Você ainda pode usar @Switch para controle determinístico junto com o Agentic Switch.


Usando outras etapas e orientações

Use Orientação para regras gerais e etapas de Fim para dizer ao Fin o que fazer a seguir.

Orientação do Procedimento

Use a seção Orientação para regras globais sobre como Fin deve interagir durante este Procedimento.

  • Exemplo: "Nunca mencione um reembolso a menos que o cliente fale sobre isso primeiro."

Etapas de Fim

As etapas de Fim dizem ao Fin que o Procedimento terminou e o que fazer a seguir.

  • Exemplo (Passar para fluxo reutilizável): Se o cliente ainda não fornecer o número do pedido, então @Pass to reusable workflow Transferência para Agente.

  • Exemplo (Fim e escalar): @End - Escalate para a equipe de Suporte

  • Exemplo (Fim e deixar Fin continuar): @End - Let Fin continue


    Dicas para construir Procedimentos melhores

    Use revisão com IA antes de entrar no ar

    Depois de construir seu procedimento, use a revisão do procedimento com IA para verificar possíveis problemas nas suas instruções. A revisão analisa suas etapas e sinaliza problemas que podem fazer com que Fin não siga as instruções de forma confiável. É uma forma rápida de detectar problemas antes que seus clientes os encontrem.

    Use notas de versão e reversões

    Ao publicar alterações em um procedimento ativo, adicione uma nota de versão descrevendo o que você mudou. Se algo der errado, você pode ver seu histórico de versões e reverter para qualquer versão anterior ativa diretamente na página do procedimento.

  • Exemplo (Fim com mensagem): @End com a mensagem "Obrigado por entrar em contato! Se precisar de mais alguma coisa, é só nos enviar outra mensagem." Isso envia uma mensagem de encerramento ao cliente antes do fim do procedimento.

  • Exemplo (Fim e fechar conversa): @End - Close conversation. Isso termina o procedimento e fecha automaticamente a conversa.

  • Exemplo (Fim e criar um ticket): @End - Create a ticket usando o tipo de ticket "Bug Report". Isso termina o procedimento e solicita que o cliente crie um ticket, depois passa a conversa para um colega.

Respondeu à sua pergunta?