Data connectors usam APIs para conectar a sistemas externos para buscar e/ou atualizar dados existentes. Por isso, é importante ter alguns pontos em mente ao configurar Data connectors no Intercom.
Usando APIs de terceiros (Shopify, WooCommerce, etc.)
Se você está utilizando APIs de terceiros (não construídas internamente) com Data connectors no Intercom, provavelmente tem pouco ou nenhum controle sobre como elas funcionam ou a resposta que recebe de uma solicitação.
Dito isso, o guia abaixo ainda é uma orientação útil, 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 Intercom.
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.
O Intercom não aceitará e não pode aceitar qualquer responsabilidade por dados vazados devido a práticas inadequadas de autenticação e identificação de suas APIs ou 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 em 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 através do 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 solicitação para API usando “GET /accounts/<account_id>/invoices”, você quer ter certeza de que account_id está protegido para que o user não possa simplesmente enumerar account_ids coletando dados. No entanto, se seu Data connector é "GET /pizza-order-status/<order_id>" então você pode não se importar com a confiabilidade de "order_id" e não se importa 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 é assinar o atributo user_id ou se seu Data connector identifica o user por email ou qualquer outro atributo, então esse atributo é protegido e não é coletado do End User sem alguma verificação.
Isso impede que agentes maliciosos possam, por exemplo, fornecer o endereço de email de outra pessoa e acessar um Data connector como “Obter extratos bancários por 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.
Para realizar a verificação de identidade em leads, nossa equipe está atualmente trabalhando em um recurso de One Time Password (OTP) que ajudará a verificar a identidade de alguém se estiver entrando em contato com seu suporte como lead. Se você estiver interessado nesse recurso, sinta-se à vontade para contatar nossa equipe de Suporte via Messenger e eles ficarão felizes em ajudar a ativá-lo.
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 deve realizar uma avaliação de risco e criar métodos apropriados para lidar com autenticação e autorização.
Como configurar a chamada API do seu Data connector com segurança
O Intercom atualmente suporta tokens estáticos, tokens HTTP e OAuth (beta fechado, entre em contato conosco via Messenger para mais informações). 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.
Considerações sobre dados
Idealmente, a API deve retornar apenas os dados necessários para seu 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 connector é usado.
Se você estiver 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, portanto, 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 ela 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 Procedures. Se você tentar usar esses tipos de objetos de resposta com um Data connector, pode encontrar dificuldades. No entanto, Fin Tasks pode lidar melhor com eles.
Nota: Ao usar Fin Procedures, Data connectors têm um tempo limite de 30 segundos (para alguns workspaces elegíveis), em vez dos 15 segundos padrão. Essa distinção é importante ao projetar Workflows com chamadas API de longa duração.
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 ao user para 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. Mais informações sobre como coletar dados dos users podem ser encontradas aqui.
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 no 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 IA 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 Data connectors Fin ativos entre versões (por exemplo, /v1/orders para /v2/orders).
Em resumo
Proteja o Messenger com JWTs para proteger dados e atributos dos users.
Use identificadores confiáveis (por exemplo, IDs de user assinados, não email) para buscar dados.
Restrinja ações dos users apenas ao que eles estão autorizados a fazer.
Evite entrada livre — use listas suspensas de fontes conhecidas e seguras.
Escolha tokens API seguros, idealmente OAuth (em beta fechado).
Retorne apenas os dados necessários para evitar atrasos ou exposição de dados.
Use estrutura clara na API — respostas simples, versionamento adequado e códigos de erro padrão.
Valide todas as entradas e sanitize tudo que for gerado por users ou IA.
