Skip to main content

Premier pas avec l'intégration de Salesforce et Heroku

Objectifs de formation

Une fois cette unité terminée, vous pourrez :

  • Expliquer les différents motifs d’intégration de Salesforce et d’Heroku
  • Décrire les méthodes d'intégration de Salesforce et d'Heroku

En tant que développeur Salesforce, vous savez qu'Heroku offre un emplacement très efficace pour exécuter des applications qui s'intègrent à Salesforce pour divers cas d'utilisation. Qu'est-ce qui justifie cette intégration et quelles sont les meilleures méthodes d'intégration ? Cette unité répond à ces questions.

Motifs d'intégration de Salesforce et d'Heroku

Les systèmes professionnels modernes sont composés de multiples parties différentes qui présentent diverses interfaces pour un large éventail de types d'utilisateur. Ces interfaces extraient souvent des données de diverses sources. L'architecture de microservices s'est imposée en tant que méthode de découplage des parties d'un système en services déployables indépendamment et faciles à gérer, afin de fournir des points de terminaison qui rassemblent des systèmes disparates. Heroku est un emplacement parfaitement adapté à l'exécution d'applications et de microservices que vous pouvez utiliser avec Salesforce via diverses méthodes d'intégration.

Les quatre motifs principaux qui justifient l'intégration d'applications dans Heroku avec Salesforce sont les suivants :

  • Réplication de données
  • Proxies de données
  • Interfaces utilisateur personnalisées
  • Processus externes

Nous examinerons de plus près ces motifs plus loin dans ce module.

Intégration via la réplication de données

La réplication de données consiste à copier ou à synchroniser des données entre Salesforce et un autre système. Vous pouvez utiliser la réplication pour l'entreposage des données en vue de générer des rapports et des analyses entre plusieurs sources de données. Vous pouvez également l'utiliser avec des systèmes hérités qui exploitent les données de Salesforce ou alimentent Salesforce en données. Heroku et de Salesforce sont le plus souvent utilisés pour fournir une interface à haut débit et faible latence à des applications orientées clients élaborées à l'aide de technologies de source ouverte.

Par exemple, supposons que vous vendez des chapeaux de fête unicornes gonflables. Salesforce est votre système d'enregistrement des informations sur les produits, notamment les prix et l'inventaire, avec un site Web public créé à l'aide de Node.js, Rails, Java, etc. Le site Web utilise ces données pour afficher la disponibilité et fournir une fonctionnalité de commande. L'application Web publique étant exécutée sur Heroku, il semble logique de répliquer les informations sur les produits dans un magasin de données sur Heroku, afin de pouvoir gérer le nombre important de requêtes avec une faible latence. Par exemple, si les utilisateurs du site public peuvent « aimer » un produit, vous pouvez utiliser la réplication de données afin de propager le nombre de mentions j'aime dans Salesforce pour l'équipe marketing.

Intégration via des proxies de données

Les proxies de données regroupent différents magasins de données, mais les données ne sont pas copiées, contrairement à la réplication de données. Les données peuvent être lues uniquement à la demande. Cette approche permet aux outils de science des données, d'intelligence économique, de génération de rapports et de création de tableaux de bord de récupérer les données à partir de multiples magasins de données, sans se soucier des défis de la synchronisation des données, notamment le stockage et l'exactitude des données. Vous pouvez intégrer des systèmes hérités et des systèmes externes via des proxies de données pour fournir des données à Salesforce. Alternativement, Salesforce peut fournir ses données à d'autres systèmes externes.

Si un utilisateur Salesforce doit exécuter des rapports d'inventaire pour corréler les données de produits dans Salesforce avec les données d'entrepôt d'un système externe, les proxies de données peuvent fournir ces informations sans utiliser des méthodes plus lentes telles que les ETL (extraction, transformation et alimentation). Une fois le rapport exécuté, Salesforce extrait les données utiles du système externe, sans jamais les stocker. Le même principe fonctionne en sens inverse : une application exécutée sur Heroku est un proxy de données Salesforce vers un autre système qui fournit une couche de sécurité et de transformation. Nous en reparlerons plus loin.

Intégration via des interfaces utilisateur personnalisées

Vous pouvez aisément créer des interfaces utilisateur personnalisées pour Salesforce à l'aide de diverses technologies, notamment Visualforce et des composants Lightning, entre autres. Lorsque les interfaces sont élaborées à l'aide de technologies de source ouverte telles que Java, Node.js, PHP, etc., elles peuvent être exécutées sur Heroku, puis intégrées à l'interface utilisateur de Salesforce ou simplement aux données Salesforce. Parfois, un système hérité ou externe fournit une interface utilisateur qui doit être exposée dans l'interface utilisateur de Salesforce.

Par exemple, une entreprise qui utilise Salesforce for CRM fait l'acquisition d'une autre société qui utilise un système personnalisé construit en Java. Pour intégrer aisément ces systèmes, une première méthode consiste à exécuter le système Java sur Heroku et de le restituer dans Salesforce. L'exécution du système Java sur Heroku peut réduire les tâches de dimensionnement et d'exploitation tout en normalisant sur une architecture de déploiement pour systèmes personnalisés. Les interfaces utilisateur autonomes qui sont exécutées sur Heroku et s'intègrent aux données Salesforce peuvent fournir des extensions back-office à Salesforce ainsi que des applications orientées clients Web et mobiles. Les interfaces utilisateur personnalisées peuvent inclure des bibliothèques, des fonctionnalités ou des ensembles de compétences de développeur qui motivent la décision d’utiliser Heroku et des technologies de source ouverte à la place des options Salesforce Platform natives.

Intégration via des processus externes

Les processus externes peuvent décharger le traitement par lot et déclencher le traitement des événements vers des applications sur Heroku. Cette méthode peut être utile selon le type de tâche à exécuter et le niveau d'effort requis. La science des données, l'apprentissage machine, le traitement des images et des vidéos, et l'intégration à des systèmes hérités ou externes peuvent justifier le déchargement des processus externes vers Heroku.

Par exemple, supposons que votre agence immobilière charge les photos de chaque maison qu'elle vend. Ces photos sont volumineuses. Vous devez les redimensionner afin de réduire les temps de chargement et les frais de stockage. Vous pouvez aisément décharger cette tâche vers un système externe sur Heroku. Chaque fois qu'une photo est chargée dans Salesforce, elle est envoyée à une application sur Heroku pour traitement et l'image redimensionnée est enregistrée dans Salesforce. L'application qui gère le processus externe sur Heroku peut être responsable d'une partie du système seulement. Dans ce cas, l'application est considérée comme un microservice qui peut être déployé séparément sans aucune dépendance à un autre système.

Vue d'ensemble des méthodes d'intégration

Vous savez maintenant que la réplication des données, les proxies de données, les interfaces utilisateur personnalisées et les processus externes justifient pleinement la combinaison d'Heroku et de Salesforce. Comment procéder ? Plusieurs méthodes permettent de réaliser ces types d'intégration, parmi lesquelles :

  • Heroku Connect
  • Salesforce Connect
  • API REST Salesforce
  • Appels externes

Voici une présentation rapide de chaque méthode avant de les examiner en détail.

Heroku Connect

Heroku Connect fournit la réplication des données et les proxies de données pour Salesforce. La réplication des données synchronise les données entre Salesforce et une base de données Heroku Postgres. Selon sa configuration, la synchronisation est unidirectionnelle ou bidirectionnelle. Heroku Connect fournit également un proxy de données à Salesforce via le protocole OData en utilisant des objets externes Heroku. Les objets externes Heroku fournissent un wrapper OData pour la base de données Heroku Postgres, pour laquelle Heroku Connect maintient une connexion. Cette fonctionnalité permet à d'autres services Web de récupérer des données dans la base de données Heroku Postgres spécifiée à l'aide de points de terminaison RESTful générés par le wrapper.

Diagramme montrant des flèches allant d’abord de Salesforce vers un composant intermédiaire, puis vers Heroku, puis revenant à Salesforce une fois qu’un contact a été inséré

L'un des principaux avantages de l'utilisation d'Heroku Connect pour la réplication des données est la facilité et la rapidité d'accès à un jeu de données Salesforce pour une application sur Heroku. En tant que développeur d'applications, il vous suffit d'écrire un simple SQL standard pour des requêtes, comme vous en avez l'habitude. Heroku Connect et Postgres fournissent un accès à haut débit et faible latence aux données Salesforce.

Salesforce Connect

Vous pouvez utiliser Salesforce Connect (autrefois appelée Lightning Connect) en tant que proxy de données pour extraire à la demande des données OData ou d'autres sources de données dans Salesforce. Aucune donnée n'est copiée dans la base de données de Salesforce. Vous pouvez exécuter des points de terminaison qui exposent les données OData 2.0 sur Heroku ou telles que fournies par des systèmes externes. Comme nous l'avons indiqué plus haut, Heroku Connect peut exposer une base de données Heroku Postgres en tant que données OData qui sont consommées par Salesforce Connect. Alternativement, les adaptateurs personnalisés Salesforce Connect permettent à Salesforce de traiter par proxy n’importe quelle source de données avec laquelle Apex peut communiquer, notamment REST avec XML ou JSON et SOAP.

Image montrant comment les objets externes peuvent être utilisés pour se connecter avec des données extérieures offertes par SAP, Oracle, Workday ou Heroku

Le principal avantage de Salesforce Connect est d'intégrer des données externes dans l'interface utilisateur de Salesforce, et de les présenter comme si elles résidaient dans Salesforce, alors qu'elles sont seulement traitées à la demande par proxy à partir d'une source de données externe. Ce processus facilite le regroupement de sources de données disparates pour les utilisateurs de Salesforce.

API REST Salesforce

Les API REST Salesforce fournissent aux applications sur Heroku l'accès aux données Salesforce à l'aide de simples requêtes HTTP formatées en JSON. Vous pouvez utiliser cette intégration pour des proxies de données ou des interfaces utilisateur personnalisées. Les applications élaborées à l'aide de technologies de source ouverte, qui sont exécutées sur Heroku, peuvent utiliser OAuth pour autoriser les utilisateurs dans une interface utilisateur personnalisée et interagir en leur nom avec les données Salesforce. Des cas d'utilisation d'intégration sans interface utilisateur peuvent servir d'intermédiaire pour les données entre Salesforce et les systèmes externes.

Image montrant une connexion entre des objets internes à Salesforce et Heroku grâce à une interface REST

Appels externes

Vous pouvez utiliser des appels externes à partir de Salesforce pour appeler des processus externes sur Heroku. Vous écrivez les appels externes en Apex ou utilisez des actions de messages sortants pour que des événements Salesforce déclenchent l’exécution d’un processus sur Heroku. Ce processus utilise souvent l'une des méthodes d'intégration indiquées plus haut pour renvoyer les résultats dans Salesforce.

Consultez la publication Extension des flux avec Heroku Compute : un modèle piloté par les événements sur le blog pour en savoir plus sur Heroku et les services externes.

Diagramme représentant un cadre avec Salesforce et un événement de données déclenché ou envoyé par un message sortant. Une flèche sort du cadre et pointe vers un autre cadre contenant toutes les applications hébergées par Heroku

Comparaison des méthodes d'intégration

Chaque méthode d’intégration de Salesforce et d’Heroku peut être utile en fonction des compétences du développeur et du contexte d’utilisation. Le tableau ci-dessous présente les principales différences entre les options d'intégration.

Heroku Connect

Salesforce Connect

API REST

Appels externes

Modèle de sécurité

Utilisateur de l'intégration

Divers (y compris l'utilisateur de l'intégration et le principal nommé)

OAuth

Utilisateur de l'application

Limitations

Exclu des limitations

Nombre maximal de sources, d'objets et de champs

Limitations en API

Limitations en API

Fonctionnalités SObject

Toutes les fonctionnalités standard

Lecture seule

Aucun champ de formule et champ récapitulatif de cumul

Aucun déclencheur ou processus d’approbation

Aucune règle de validation

Suivi de l’historique des champs

Aucune note ou pièce jointe

Toutes les fonctionnalités standard

Non applicable

Stratégie de données

Synchronisation BiDi en temps réel ou OData

OData ou proxy

Lire et copier

Charge de travail

Utilisateurs finaux

Anonymes, clients

Utilisateurs Salesforce

Tous

Aucun

Protocole

SQL

Apex

HTTP

HTTP

Voici quelques suggestions générales pour les intégrations :

  • Pour répliquer des données entre Salesforce et Heroku, utilisez Heroku Connect.
  • Pour exposer une base de données Heroku Postgres dans Salesforce, utilisez la fonctionnalité Objet externe Heroku Connect.
  • Pour traiter par proxy des sources de données OData, SOAP, XML ou JSON dans Salesforce, utilisez Salesforce Connect.
  • Si Heroku Connect ne convient pas, par exemple lorsque vous avez une interface utilisateur personnalisée sur Heroku à laquelle les utilisateurs se connectent via Salesforce, utilisez les API REST Salesforce.
  • Pour décharger ou étendre le traitement des événements de données Salesforce, utilisez des appels externes depuis Salesforce vers Heroku.

Ressources

Formez-vous gratuitement !
Créez un compte pour continuer.
Qu’est-ce que vous y gagnez ?
  • Obtenez des recommandations personnalisées pour vos objectifs de carrière
  • Mettez en pratique vos compétences grâce à des défis pratiques et à des questionnaires
  • Suivez et partagez vos progrès avec des employeurs
  • Découvrez des opportunités de mentorat et de carrière