Passar para o conteúdo principal

Aprovações Human-in-the-loop via API

Como conectar etapas Human-in-the-Loop em Fin Procedures aos seus próprios sistemas usando o canal Respond by API, webhooks e a API do Intercom.

Escrito por Dawn

O canal Respond by API permite conectar etapas Human-in-the-Loop (HITL) em Fin Procedures aos seus próprios sistemas usando webhooks e a API do Intercom. Quando o Fin alcança uma etapa HITL, o Intercom envia um webhook para seu endpoint. Seu sistema processa a solicitação, preenche os atributos necessários e envia uma resposta de volta, permitindo que o procedimento continue automaticamente.

Nota: Este recurso está atualmente em disponibilidade gerenciada. Para usá-lo, seu app Developer Hub deve estar configurado para a versão Preview da API.

Exemplos

Aqui estão algumas formas de usar este recurso:

  • Workflows de aprovação automatizados: Direcione aprovações de reembolso ou desconto para uma ferramenta interna que aplica regras de negócio e responde automaticamente

  • Painéis personalizados para colegas: Exiba solicitações HITL em suas próprias ferramentas de suporte ou portal interno junto com outras tarefas

  • Escalonamento para equipes externas: Encaminhe perguntas para equipes que não usam Intercom — como engenharia, jurídico ou finanças — e capture a resposta deles

  • Registro de auditoria e conformidade: Registre cada decisão HITL em um sistema de conformidade antes de responder, criando uma trilha automática de papel


Antes de começar

Para configurar o Respond by API, você precisará de:

  • Um Fin Procedure com pelo menos uma etapa Human-in-the-Loop

  • Um app Developer Hub — crie um em Configurações > Developer Hub se ainda não tiver um

  • Um endpoint HTTPS que possa receber solicitações webhook

  • Seu app Developer Hub deve ter os escopos OAuth read_conversations e write_conversations


Passo 1: Ative Ask via webhook em seu procedimento

  1. Abra o procedimento que deseja configurar no editor de Procedures.

  2. Selecione sua etapa Human-in-the-Loop.

  3. Abra o painel de Configurações da etapa clicando no ícone de engrenagem.

  4. Selecione a aba Mais canais.

  5. Expanda a seção Ask via webhook.

  6. Ative Habilitar para este procedimento.

  7. Clique em Verificar configuração do webhook para confirmar que seu app Developer Hub está corretamente inscrito.

  8. Salve seu procedimento.

Após clicar em Verificar configuração do webhook, você verá uma das seguintes mensagens:

  • "Webhook conectado." — seu webhook está configurado corretamente

  • "Nenhum webhook encontrado." — você precisa configurar seu webhook no Developer Hub (veja o Passo 2)

Se a verificação falhar, clique em Developer Hub para abrir a configuração do seu app em uma nova aba.

Nota: O canal Ask via webhook funciona junto com os canais Inbox e Slack. Quando uma etapa HITL é alcançada, todos os canais habilitados são notificados ao mesmo tempo. O canal que responder primeiro vence — respostas subsequentes são rejeitadas.


Passo 2: Configure seu webhook no Developer Hub

  1. Vá para Configurações > Developer Hub, ou navegue diretamente para as configurações do seu app.

  2. Selecione seu app, ou crie um novo.

  3. Vá para Versão da API e mude para Preview.

  4. Vá para Webhooks na configuração do seu app.

  5. Digite a URL do endpoint do seu webhook (deve ser HTTPS).

  6. Adicione o tópico procedure.hitl_notification.created aos seus tópicos inscritos.

  7. Certifique-se de que seu app tenha os escopos OAuth necessários: read_conversations (necessário para receber notificações webhook) e write_conversations (necessário para enviar respostas de callback via API).

  8. Salve a configuração do seu webhook.

Importante: O tópico webhook HITL está disponível apenas na versão Preview da API enquanto este recurso está em disponibilidade gerenciada. Você deve mudar para esta versão antes que o tópico apareça na lista de tópicos webhook.


Passo 3: Trate a carga útil do webhook

Quando um procedimento alcança uma etapa Human-in-the-Loop com Ask via webhook ativado, o Intercom envia uma requisição POST para o endpoint do seu webhook. A carga útil inclui:

  • O ID da conversa

  • A pergunta que o Fin está fazendo

  • Os atributos que seu sistema precisa preencher

  • Uma URL de callback para enviar sua resposta

  • Mensagens recentes da conversa para contexto

Para especificações completas da carga útil e dos campos, veja a referência da API de procedures.


Passo 4: Envie uma resposta de callback

Depois que seu sistema processar a solicitação HITL, envie uma requisição POST para a callback_url fornecida na carga útil do webhook. Inclua o step_id e os valores para cada atributo listado em attributes_to_collect. Autentique com um token Bearer que tenha o escopo OAuth write_conversations.

Após uma resposta bem-sucedida, o Fin retoma o procedimento usando os valores dos atributos que você forneceu. O colega associado ao seu token OAuth é registrado como quem respondeu.

Para o formato completo da requisição de callback, detalhes de autenticação, tipos de dados suportados e códigos de erro, veja a referência da API de procedures.


Melhores práticas

Tenha estas dicas em mente ao construir sua integração:

  • Verifique assinaturas webhook: O Intercom assina cargas úteis webhook com HMAC. Sempre verifique a assinatura para confirmar que a solicitação é autêntica. Veja a referência da API de procedures para detalhes.

  • Responda antes do tempo limite: Solicitações HITL têm um tempo de espera configurável definido no editor de Procedures. Se nenhuma resposta for recebida antes de expires_at, o procedimento executa seu comportamento de timeout configurado (mensagem de escalonamento, reatribuição, etc.).

  • Não envie respostas duplicadas: O callback não é idempotente. Se você enviar uma resposta mais de uma vez para a mesma etapa, requisições subsequentes retornam 409 Conflict. Se receber um 409, sua resposta original já foi processada.

  • Para atributos de lista, envie o id da opção: Não envie o rótulo exibido da opção — envie seu id do array de opções.

  • Rastreie quem responde: O colega associado ao seu token OAuth é registrado como o respondente. Considere usar uma conta de serviço dedicada se quiser uma identidade consistente.

  • Trate corridas multi-canal com cuidado: Se o canal API estiver habilitado junto com Inbox ou Slack, a primeira resposta vence. Seu sistema pode receber um 409 se um colega responder por outro canal primeiro.

Respondeu à sua pergunta?