Passer au contenu principal

Conception et utilisation de vos APIs avec les Data connectors

Écrit par Ivan Branimir Skoric

Les 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 Intercom.


Utilisation des APIs tierces (Shopify, WooCommerce, etc.)

Si vous utilisez des APIs tierces (non développées en interne) avec les Data connectors dans Intercom, vous avez probablement peu ou pas de contrôle sur leur fonctionnement ou sur la réponse reçue d’une requête.

Cela dit, le guide ci-dessous reste une orientation utile, mais certaines sections peuvent ne pas s’appliquer entièrement à votre cas d’usage.


Utilisation des 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 les Data connectors dans Intercom.

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

Comment sécuriser vos users et les données saisies par les users pour une utilisation dans les 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 être tenu responsable des fuites de données dues à de mauvaises pratiques d’authentification et d’identification de vos APIs ou de celles de tiers.

Nous recommandons vivement que vous activiez la sécurité du Messenger avec les 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 ainsi tout JWT envoyé, que nous considérons comme une source sécurisée, mettra à 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 avec « GET /accounts/<account_id>/invoices », vous devez 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> », vous ne vous souciez peut-être pas de la fiabilité de « order_id » et vous ne vous souciez pas non plus de savoir si cette info a été affichée à 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, par exemple, de fournir l’adresse email de quelqu’un d’autre et d’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 utilisateur unique et non devinable.

Pour effectuer la vérification d’identité sur les leads, notre équipe travaille actuellement sur une fonctionnalité de mot de passe à usage unique (OTP) qui vous aidera à vérifier l’identité d’une personne si elle contacte votre support en tant que lead. Si cette fonctionnalité vous intéresse, n’hésitez pas à contacter notre équipe Support via Messenger, ils seront ravis de vous aider à l’activer.

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 dans 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 l’appel API de votre Data connector en toute sécurité

Intercom supporte actuellement les tokens statiques, les tokens HTTP et OAuth (bêta fermée, contactez-nous via Messenger pour plus d’informations). 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.

Considérations sur les données

Idéalement, l’API ne devrait retourner que les données nécessaires à votre 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 connector est utilisé.

Si vous construisez des APIs de zéro pour être utilisées exclusivement avec les Data connectors et les 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 sur ce que et combien de données votre API retourne 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 peuvent 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 les Fin Procedures. Si vous essayez d’utiliser ces types d’objets de réponse avec un Data connector, vous pourriez rencontrer des difficultés. Cependant, les Fin Tasks les gèrent mieux.

Note : Lors de l’utilisation des Fin Procedures, les Data connectors disposent d’une fenêtre de délai d’attente de 30 secondes (pour certains espaces de travail éligibles), au lieu des 15 secondes par défaut. Cette distinction est importante lors de la conception de Workflows avec des appels API plus longs.

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 au user 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. Plus d’informations sur la collecte de données auprès des users sont disponibles ici.

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 données entrantes, en reconnaissant les champs générés par l’IA 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 direct entre les versions (par exemple, /v1/orders vers /v2/orders).

En résumé

  1. Sécurisez le Messenger avec les JWTs pour protéger les données et attributs des users.

  2. Utilisez des identifiants fiables (par ex. IDs utilisateurs signés, pas d’email) pour récupérer les données.

  3. Restreignez les actions des users à ce qu’ils sont autorisés à faire.

  4. Évitez les saisies libres — utilisez des listes déroulantes provenant de sources connues et sécurisées.

  5. Choisissez des tokens API sécurisés, idéalement OAuth (en bêta fermée).

  6. Retournez uniquement les données nécessaires pour éviter les retards ou l’exposition des données.

  7. Utilisez une structure API claire — réponses simples, versionnage approprié et codes d’erreur standard.

  8. Validez toutes les entrées et nettoyez tout contenu généré par les users ou l’IA.

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