Data Connectors usam APIs para conectar a sistemas externos para buscar e/ou atualizar dados existentes. Por isso, é importante ter algumas coisas em mente ao configurar Data Connectors no seu workspace Fin.
Usando APIs de terceiros (Shopify, WooCommerce, etc.)
Se você está utilizando APIs de terceiros (não construídas internamente) com Data Connectors no seu workspace Fin, provavelmente tem pouco ou nenhum controle sobre como elas funcionam ou a resposta que recebe de uma requisição.
Dito isso, o guia abaixo ainda contém instruções úteis, mas algumas seções podem não ser totalmente aplicáveis ao seu caso de uso.
Usando APIs próprias
Nossos engenheiros compilaram uma lista de pontos a observar ao projetar ou modificar suas APIs existentes para funcionar com Fin e Data Connectors no seu workspace Fin.
Considerações sobre autenticação e identidade
Como proteger seus users e as entradas dos users para uso em Data Connectors
Importante: Você e/ou sua equipe de segurança devem realizar uma avaliação de risco e analisar as consequências de qualquer vazamento de dados. A Intercom não aceitará nem pode aceitar qualquer responsabilidade por dados vazados devido a práticas inadequadas de autenticação e identificação suas ou de APIs de terceiros.
Primeiro, recomendamos fortemente que você ative a Segurança do Messenger com JWTs. Proteger seu Messenger é o controle de segurança mais importante para configurar na sua integração.
Isso também permite que você assine múltiplos atributos via nossa API JavaScript, para que possa enviar dados sobre seus users com segurança pelo Messenger em vez de usar outra integração, por exemplo: REST API.
Para aproveitar os benefícios de enviar dados com segurança, você pode proteger seus atributos contra atualizações inseguras do Messenger e então qualquer JWT enviado, que consideramos uma fonte segura, ainda atualizará esse campo no user. Isso é crucial para Data Connectors, quando o Data Connector exibe dados sensíveis ou manipula dados.
Por exemplo, se seu Data Connector está fazendo uma requisição para API usando “GET /accounts/<account_id>/invoices”, você quer ter certeza que account_id está protegido para que o user não possa simplesmente enumerar account_ids coletando dados. Porém, se seu Data Connector é "GET /pizza-order-status/<order_id>" então talvez você não se importe com a confiabilidade de "order_id" e não se importe se essa informação foi exibida para a pessoa certa.
Além disso, você deve garantir que o atributo que seu Data Connector usa para identificar unicamente seus users (email, por exemplo) seja confiável. Isso significa que você precisa saber que confia na fonte dos atributos identificadores do seu Data Connector. Por exemplo, se seu Data Connector identifica o user por user_id, a verificação de identidade é a assinatura do atributo user_id ou se seu Data Connector identifica o user por email ou qualquer outro atributo, então esse atributo está protegido e não é coletado do End User sem alguma verificação.
Isso impede que agentes maliciosos possam, por exemplo, fornecer o email de outra pessoa e acessar um Data Connector como “Get bank statements by email”, o que exporia dados financeiros sensíveis.
Sempre que possível, sugerimos que você não use email como identificador principal para buscar dados dos seus users, mas algo mais aleatório como um ID de user único e não previsível.
Você também deve garantir que o user não possa executar Data Connectors que não está autorizado a fazer, por exemplo, cancelar o pedido de outra pessoa sabendo o ID do pedido. Essa lógica não é tratada dentro do Intercom e você/sua equipe de segurança devem realizar uma avaliação de risco e criar métodos apropriados para lidar com autenticação e autorização.
Como configurar sua chamada API do Data Connectors com segurança
Atualmente, suportamos tokens estáticos, tokens HTTP e OAuth. Qualquer token que você use, é sua responsabilidade garantir que ele seja mantido em segredo e atualizado rapidamente se for vazado em algum lugar. Como boa prática, recomendamos o uso de tokens OAuth sempre que possível.
Nota: Contate-nos via Messenger para mais informações sobre acesso ao OAuth.
Considerações sobre dados
Idealmente, a API deve retornar apenas os dados necessários para sua Task/Workflow. No entanto, isso pode ser irrealista e a API pode retornar uma boa quantidade de dados que na verdade não são necessários para executar o Workflow onde o Data Connectors é usado.
Se você está construindo APIs do zero para serem usadas exclusivamente com Data Connectors e Fin Workflows, você pode:
Construir a API de forma que permita processar a lógica de negócio do workflow em um único Data Connector - isso economiza o número de chamadas API e agrupa a lógica em um só lugar,
Construir endpoints individuais para, por exemplo, encontrar pedidos, obter detalhes do pedido e finalmente, reembolsar o pedido - isso está alinhado com os melhores princípios de design RESTful API mas requer múltiplas chamadas API para completar um workflow (por exemplo, reembolso de pedido)
Algumas considerações que devem ser incluídas ao decidir quais e quanto dados sua API retorna incluem:
O Fin/Workflow realmente precisa de todos os dados fornecidos para completar as etapas do workflow? Por exemplo, se você tem um workflow para criar um reembolso de pedido, provavelmente só precisa dos detalhes do pedido, e não de dados adicionais sobre a conta do user específico.
Data Connectors têm um tempo limite de 15 segundos e, se a API estiver demorando muito para responder, pode ser uma boa ideia considerar reduzir as operações por trás dela e, potencialmente, a quantidade de dados que retorna.
Para Data Connectors que podem levar mais tempo para completar, sugerimos que você use a funcionalidade “Wait for webhook” em vez disso.Data Connectors podem acessar facilmente atributos e arrays que estão aninhados de 1 a 2 níveis, mas objetos complexos que incluem arrays profundamente aninhados são mais adequados para processamento com Fin Tasks. Se você tentar usar esses tipos de objetos de resposta com um Data Connector pode encontrar dificuldades. No entanto, Fin Tasks podem lidar melhor com eles.
Além disso, você deve sempre remover a possibilidade de users fornecerem dados malformados ou simplesmente digitarem qualquer coisa.
Por exemplo, você não deve pedir para o user digitar seu ID de conta, mas apresentar a ele seus IDs de conta (baseado em um identificador conhecido e seguro) e deixá-lo escolher em uma lista suspensa.
Outras considerações
Sua API deve impor limites específicos da aplicação, como limitar reembolsos a um valor máximo por dia.
Garanta que sua API seja idempotente, pois o Fin pode enviar a mesma solicitação de reembolso várias vezes.
Implemente validação do lado do servidor para garantir que todas as entradas estejam no formato especificado no seu Data Connector.
Aplique sanitização de entrada aos dados recebidos, reconhecendo campos gerados por AI que podem conter conteúdo alucinado ou malicioso.
Use códigos de erro HTTP padrão para ajudar o Fin a responder adequadamente. Por exemplo, erros HTTP 429 ou 500 podem justificar uma nova tentativa, enquanto um HTTP 410 indica que não devem ser feitas mais tentativas.
Versione sua API para facilitar a migração suave dos Live Fin Data Connectors entre versões (por exemplo, /v1/orders para /v2/orders).
