Passer au contenu principal

Conception et utilisation de vos APIs avec Data Connectors

Un guide pour utiliser les APIs avec Data Connectors dans votre espace de travail Fin.

Data Connectors utilisent des APIs pour se connecter à des systèmes externes afin de récupérer et/ou mettre à jour des données existantes. C’est pourquoi il est important de garder quelques points à l’esprit lors de la configuration des Data Connectors dans votre espace de travail Fin.


Utilisation d’APIs tierces (Shopify, WooCommerce, etc.)

Si vous utilisez des APIs tierces (non développées en interne) avec Data Connectors dans votre espace de travail Fin, vous avez probablement peu ou pas de contrôle sur leur fonctionnement ou sur la réponse que vous recevez d’une requête.

Cela dit, le guide ci-dessous contient toujours des instructions utiles, mais certaines sections peuvent ne pas être entièrement applicables à votre cas d’utilisation.


Utilisation d’APIs propriétaires

Nos ingénieurs ont compilé une liste de points à noter lors de la conception ou de la modification de vos APIs existantes pour fonctionner avec Fin et Data Connectors dans votre espace de travail Fin.

Considérations sur l’authentification et l’identité

Comment sécuriser vos users et les entrées users pour une utilisation dans Data Connectors

Important : Vous et/ou votre équipe de sécurité devez réaliser une évaluation des risques et analyser les conséquences de toute fuite de données. Intercom n’acceptera ni ne pourra accepter aucune responsabilité pour des données divulguées en raison de mauvaises pratiques d’authentification et d’identification de votre part ou de la part d’APIs tierces.

Nous recommandons fortement que vous activiez la sécurité Messenger avec JWTs. Sécuriser votre Messenger est le contrôle de sécurité le plus important à mettre en place pour votre intégration.

Cela vous permet également de signer plusieurs attributs via notre API JavaScript, afin d’envoyer en toute sécurité des données sur vos users via le Messenger au lieu d’utiliser une autre intégration, par exemple : REST API.

Pour bénéficier des avantages de l’envoi sécurisé de données, vous pouvez protéger vos attributs contre les mises à jour non sécurisées du Messenger, et tout JWT envoyé, que nous considérons comme une source sécurisée, mettra toujours à jour ce champ sur le user. Ceci est crucial pour les Data Connectors, lorsque le Data Connector affiche des données sensibles ou manipule des données.

Par exemple, si votre Data Connector effectue une requête à l’API en utilisant « GET /accounts/<account_id>/invoices », vous voulez vous assurer que account_id est protégé afin que le user ne puisse pas simplement énumérer les account_ids pour collecter des données. Cependant, si votre Data Connector est « GET /pizza-order-status/<order_id> », alors vous ne vous souciez peut-être pas de la fiabilité de « order_id » et vous ne vous souciez pas de savoir si vous avez affiché cette info à la bonne personne.

De plus, vous devez vous assurer que l’attribut que votre Data Connector utilise pour identifier de manière unique vos users (email, par exemple) est fiable. Cela signifie que vous devez savoir que vous faites confiance à la source des attributs d’identification de votre Data Connector. Par exemple, si votre Data Connector identifie le user par user_id, la vérification d’identité consiste à signer l’attribut user_id, ou si votre Data Connector identifie le user par email ou tout autre attribut, alors cet attribut est protégé et il n’est pas collecté auprès de l’End User sans une certaine vérification.

Cela empêche les acteurs malveillants de pouvoir, par exemple, fournir l’adresse email de quelqu’un d’autre et accéder à un Data Connector tel que « Obtenir les relevés bancaires par email », ce qui exposerait des données financières sensibles.

Dans la mesure du possible, nous vous suggérons de ne pas utiliser l’email comme identifiant principal pour récupérer les données de vos users, mais plutôt quelque chose de plus aléatoire comme un ID user unique et non devinable.

Vous devez également vous assurer que le user ne peut pas effectuer des Data Connectors qu’il n’est pas autorisé à faire, par exemple, annuler la commande de quelqu’un d’autre en connaissant l’ID de la commande. Cette logique n’est pas gérée par Intercom et vous/votre équipe de sécurité devez réaliser une évaluation des risques et trouver des méthodes appropriées pour gérer l’authentification et l’autorisation.

Comment configurer en toute sécurité l’appel API de vos Data Connectors

Nous supportons actuellement les tokens statiques, les tokens HTTP et OAuth. Quel que soit le token utilisé, il est de votre responsabilité de vous assurer qu’il reste secret et qu’il soit mis à jour dès qu’il est divulgué quelque part. En bonne pratique, nous recommandons d’utiliser les tokens OAuth autant que possible.

Note : Contactez-nous via le Messenger pour plus d’informations sur l’accès à OAuth.

Considérations sur les données

Idéalement, l’API ne devrait retourner que les données nécessaires pour votre Task/Workflow. Cependant, cela peut être irréaliste et l’API pourrait retourner une bonne quantité de données qui ne sont en fait pas requises pour exécuter le Workflow où le Data Connectors est utilisé.

Si vous construisez des APIs de zéro pour être utilisées exclusivement avec Data Connectors et Fin Workflows, vous pouvez soit :

  • Construire l’API de manière à vous permettre de traiter la logique métier du workflow dans un seul Data Connector - cela réduit le nombre d’appels API et regroupe la logique en un seul endroit,

  • Construire des endpoints individuels pour, par exemple, trouver des commandes, obtenir les détails d’une commande et enfin, rembourser la commande - cela est conforme aux principes de conception RESTful API mais nécessite plusieurs appels API pour compléter un workflow (par exemple, remboursement de commande)

Certaines considérations à inclure lors de la décision de ce que votre API retourne et en quelle quantité incluent :

  • Est-ce que Fin/Workflow vraiment a besoin de toutes les données fournies pour compléter les étapes du workflow ? Par exemple, si vous avez un workflow pour créer un remboursement de commande, vous avez probablement seulement besoin des détails de la commande, et non des données supplémentaires sur le compte spécifique de l’utilisateur.

  • Les Data Connectors ont un délai d’attente de 15 secondes et donc, si l’API met trop de temps à répondre, il pourrait être judicieux de réduire les opérations derrière elle et, potentiellement, la quantité de données qu’elle retourne.
    Pour les Data Connectors qui pourraient prendre plus de temps à s’exécuter, nous vous suggérons d’envisager d’utiliser la fonctionnalité « Attendre le webhook » à la place.

  • Les Data Connectors peuvent facilement accéder à des attributs et tableaux imbriqués à 1 ou 2 niveaux, mais les objets complexes incluant des tableaux profondément imbriqués sont mieux traités avec Fin Tasks. Si vous essayez d’utiliser ces types d’objets de réponse avec un Data Connector, vous pourriez rencontrer des difficultés. Cependant, Fin Tasks les gèrent mieux.

De plus, vous devez toujours supprimer la possibilité pour les users de fournir des données mal formées ou simplement taper n’importe quoi.

Par exemple, vous ne devez pas demander à l’utilisateur de saisir son ID de compte, mais lui présenter ses IDs de compte (basés sur un identifiant connu et sécurisé) et lui permettre de choisir dans une liste déroulante.

Autres considérations

  • Votre API doit appliquer des limites spécifiques à l’application, comme plafonner les remboursements à un montant maximum par jour.

  • Assurez-vous que votre API est idempotente, car Fin peut soumettre plusieurs fois la même demande de remboursement.

  • Mettez en œuvre une validation côté serveur pour garantir que toutes les entrées respectent le format spécifié dans votre Data Connector.

  • Appliquez une sanitation des entrées aux données entrantes, en reconnaissant les champs générés par AI qui peuvent contenir du contenu halluciné ou malveillant.

  • Utilisez des codes d’erreur HTTP standard pour aider Fin à répondre de manière appropriée. Par exemple, les erreurs HTTP 429 ou 500 peuvent justifier une nouvelle tentative, tandis qu’une erreur HTTP 410 indique qu’aucune autre tentative ne doit être effectuée.

  • Versionnez votre API pour faciliter la migration transparente des Data Connectors Fin en production entre les versions (par exemple, /v1/orders vers /v2/orders).

Avez-vous trouvé la réponse à votre question ?