Uncategorized

Get Started with Salesforce & Heroku Integration /Premier pas avec l’intégration de Salesforce et Heroku

Learning Objectives /Objectifs de formation

After completing this unit, you’ll be able to: /Une fois cette unité terminée, vous pourrez :

  • Understand the different reasons to integrate Salesforce and Heroku. /Comprendre les différents motifs d’intégration de Salesforce et d’Heroku
  • Describe the methods for integrating Salesforce and Heroku. /Décrire les méthodes d’intégration de Salesforce et d’Herok

As a Salesforce developer you know that Heroku provides a great place to run apps that integrate with Salesforce for a variety of use cases. But what exactly are those reasons and what are the best methods for integration? Read on and your questions will soon be answered. /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.

Reasons for Integrating Salesforce and Heroku /Motifs d’intégration de Salesforce et d’Heroku

Modern enterprise systems are composed of many different parts with different interfaces for a variety of types of users. These interfaces often pull together data from a variety of data sources. The microservices architecture has emerged as a way to decouple the pieces of a system into more easily maintainable, independently deployable services to provide endpoints that bring disparate systems together. Heroku is a great place to run apps and microservices that you can use with Salesforce through a variety of integration methods. /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.

Four common reasons to integrate apps on Heroku with Salesforce are: /Les quatre motifs principaux qui justifient l’intégration d’applications dans Heroku avec Salesforce sont les suivants :

  • Data replication /Réplication de données
  • Data proxies /Proxies de données
  • Custom user interfaces /Interfaces utilisateur personnalisées
  • External processes /Processus externes

We look at each one in more depth later on in the module. /Nous examinerons de plus près ces motifs plus loin dans ce module.

Integration Through Data Replication /Intégration via la réplication de données

Data replication is copying or synchronizing data between Salesforce and another system. You can use data replication for data warehousing to enable cross-data source reporting and analysis. You can also use it to work with legacy systems that either need data from Salesforce or feed data into Salesforce. The most common use case with Heroku and Salesforce is to provide a high-throughput, low-latency interface for customer-facing applications built with open-source technologies. /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.

For instance, let’s say you’re selling inflatable unicorn party hats. Salesforce is your system of record for product information, such as pricing and inventory, with a public website built with Node.js, Rails, Java, and so on. The website uses that data to display availability and provide ordering functionality. With the public web application running on Heroku, it makes sense to replicate the product information to a datastore on Heroku so that it can handle a massive number of requests with low latency. For example, if users of the public site can “like” a product, you can use data replication to propagate the number of likes back to Salesforce for the marketing team. /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.

Integration Through Data Proxies /Intégration via des proxies de données

Data proxies aggregate different datastores, but unlike data replication, the data isn’t copied. The data can be read only on demand. This approach enables data science, business intelligence, reporting, and dashboarding tools to collate data across multiple datastores without worrying about data synchronization challenges like storage and staleness. You can integrate legacy systems and external systems through data proxies to provide data to Salesforce, or Salesforce can provide its data to other external systems. /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.

If a Salesforce user needs to run inventory reports that correlate product data in Salesforce with warehouse data from an external system, data proxies can provide that information without using slower methods like extract transform and load (ETL). When the report is run, Salesforce fetches the necessary data from the external system without ever storing the data. The same also works in the opposite direction — an app running on Heroku is a data proxy for Salesforce to another system providing a security and transformation layer. We’ll touch on that shortly. /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.

Integration Through Custom User Interfaces /Intégration via des interfaces utilisateur personnalisées

You can easily create custom user interfaces for Salesforce using a variety of technologies, such as Visualforce and Lightning Components, to name two. When interfaces are built with open-source technologies like Java, Node.js, PHP, and so on, they can run on Heroku and be integrated into the Salesforce UI or just with Salesforce data. Other times, a legacy or external system provides a user interface that needs to be surfaced in the Salesforce UI. /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.

For example, a company that uses Salesforce for CRM acquires another company with a custom system built in Java. An easy first method of integrating those systems is simply to run the Java system on Heroku and render it in Salesforce. Running the Java system on Heroku can alleviate the scaling and ops burdens while standardizing on a deployment architecture for custom systems. Standalone user interfaces that run on Heroku and integrate with Salesforce data can provide back-office extensions to Salesforce as well as customer-facing web and mobile apps. Custom user interfaces might have libraries, features, or developer skillsets that drive the decision to use Heroku and open-source technologies over the native Force.com options. /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 Force.com natives.

Integration Through External Processes /Intégration via des processus externes

External processes can offload batch processing or workflow and trigger event handling to apps on Heroku. This method can be helpful depending on the type of job that needs to be done and the amount of effort involved. Data science, machine learning, image and video processing, and integration with legacy or external systems can be reasons to offload external processes to Heroku. /Les processus externes peuvent décharger le traitement par lot ou le workflow 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.

As an example, let’s say your real estate company uploads photos for each house it lists for sale. These photos are huge, so you need a way to resize them to reduce loading times and storage costs. You can easily offload this job to an external process on Heroku. Each time a photo is uploaded to Salesforce, it is sent to an app on Heroku for processing, and the resized image is saved back into Salesforce. The app on Heroku that handles the external process could be responsible only for that one piece of the system. In that case, the app is likely considered a microservice that can be deployed separately without any other system dependencies. /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.

Integration Methods Overview /Vue d’ensemble des méthodes d’intégration

So now you know that data replication, data proxies, custom user interfaces, and external processes are all great reasons to combine Heroku and Salesforce. But how do you actually do this? A number of methods to accomplish these types of integrations are available, including: /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 /Heroku Connect
  • Salesforce Connect /Salesforce Connect
  • Salesforce REST APIs /API REST Salesforce
  • Callouts /Appels externes
  • Canvas /Applications de zone de dessin

We’ll dive into each one shortly, but here’s a quick overview to get you started. /Voici une présentation rapide de chaque méthode avant de les examiner en détail.

Heroku Connect /Heroku Connect

Heroku Connect provides both data replication and data proxies for Salesforce. Data replication synchronizes data between Salesforce and a Heroku Postgres database. Depending on how it’s configured, the synchronization is either one way or bidirectional. To get hands on with Heroku Connect, check out the Quick Start: Heroku Connect Trailhead project. Heroku Connect also provides a data proxy to Salesforce through the OData protocol using Heroku External Objects. Heroku External Objects provides an OData wrapper for the Heroku Postgres database that Heroku Connect maintains a connection for. This feature allows other web services to retrieve data from within the specified Heroku Postgres database using RESTful endpoints generated by the wrapper. /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. Pour vous exercer avec Heroku Connect, suivez le projet Trailhead Prise en main rapide : Projet Trailhead Heroku Connect. 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.

Diagram showing arrows first going from Salesforce to a middle component and then on to Heroku and then returning back to Salesforce once a contact has been inserted

One of the biggest benefits of using Heroku Connect for data replication is that a subset of Salesforce data is quickly and easily accessible to an app on Heroku. As an app developer, you simply write standard SQL for queries as you normally would. Heroku Connect and Postgres provide a low-latency and high-throughput access to Salesforce data. /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 /Salesforce Connect

You can use Salesforce Connect (formerly called Lightning Connect) as a data proxy to pull OData or other data sources into Salesforce on demand. No data is copied to the Salesforce database. You can run endpoints that expose OData 2.0 on Heroku or as provided by external systems. As mentioned previously, Heroku Connect can expose a Heroku Postgres database as OData for consumption by Salesforce Connect. Alternatively, Salesforce Connect custom adapters allow Salesforce to proxy any data source that Apex can talk to, including REST with XML or JSON and SOAP. /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 illustrating how External Objects can be used to connect externally with outside data available through SAP, Oracle, Workday or Heroku

The primary benefit of Salesforce Connect is that it brings external data into the Salesforce UI and makes it look as if the data resides in Salesforce, although it’s just proxied on demand from an external data source. This process makes it easy to collate disparate data sources for Salesforce users. /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.

Salesforce REST APIs /API REST Salesforce

The Salesforce REST APIs provide apps on Heroku access to Salesforce data through simple JSON-formatted HTTP requests. You can use this integration for data proxies and custom user interfaces. Applications built with open-source technologies that are running on Heroku can use OAuth to authorize users in a custom user interface and then interact with Salesforce data on their behalf. Integration use cases without a user interface can broker data between Salesforce and external systems. /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 showing a connection between the objects in Salesforce to Heroku through a REST interface

Callouts /Appels externes

You can use callouts from Salesforce to call external processes on Heroku. You write the callouts in Apex or use workflow outbound messages to have events on Salesforce trigger the execution of a process on Heroku. That process often uses one of the previously mentioned integration methods to get the result of the process back into Salesforce. /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 messages sortants de workflow 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.

Diagram showing a box with Salesforce and a Data Event that is triggered or sent from an outbound message. An arrow comes from the box and points to another box that contains all the apps that Heroku hosts

Canvas /Zone de dessin

Canvas provides a way to load an external user interface into Salesforce that can interact with Salesforce data through a JavaScript API. You can run the external UI on Heroku and build it with an open-source web technology. The data requests that Canvas apps make happen in the context of the Salesforce user. /Une zone de dessin permet de charger une interface utilisateur externe dans Salesforce qui peut interagir avec les données Salesforce via une API JavaScript. Vous pouvez exécuter l’interface utilisateur externe sur Heroku et l’élaborer avec une technologie Web de source ouverte. Les requêtes de données des applications de zone de dessin sont effectuées dans le contexte de l’utilisateur Salesforce.

Diagram showing that Heroku apps can interact with Salesforce through a Canvas Javascript bridge

Comparing Integration Methods /Comparaison des méthodes d’intégration

Each Salesforce and Heroku integration method has a place depending on developer skillsets and the use case at hand. Here are some basic differences between the integration options. /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 ConnectSalesforce ConnectREST APIsCalloutsCanvas
Security ModelIntegration userVarious (including integration user and named principal)OAuthApp userApp user
LimitsExcluded from limitsMax # of sources, objects, and fieldsAPI limitsAPI limitsRequest limits
SObject FeaturesAll standard featuresRead only
No formula and roll-up summary fields
No triggers, workflow, approvals process
No Validation Rules
Field history tracking
No notes, attachments
All standard featuresN/AAll standard features
Data StrategyReal-time BiDi sync or ODataOData or proxyRead & copyPayloadCanvas API
End UsersAnonymous, customersSalesforce usersAnyNoSalesforce users
ProtocolSQLApexHTTPHTTPHTTP

Here are some general suggestions for integrations: /Voici quelques suggestions générales pour les intégrations :

  • To replicate data between Salesforce and Heroku, use Heroku Connect. /Pour répliquer des données entre Salesforce et Heroku, utilisez Heroku Connect.
  • To expose a Heroku Postgres database to Salesforce, use Heroku Connect External Object. /Pour exposer une base de données Heroku Postgres dans Salesforce, utilisez la fonctionnalité Objet externe Heroku Connect.
  • To proxy OData, SOAP, XML, or JSON data sources into Salesforce, use Salesforce Connect. /Pour traiter par proxy des sources de données OData, SOAP, XML ou JSON dans Salesforce, utilisez Salesforce Connect.
  • If Heroku Connect doesn’t fit the bill, like when you have a custom UI on Heroku where users log in via Salesforce, use the Salesforce REST APIs. /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.
  • To offload or extend the processing of Salesforce data events, use callouts from Salesforce to Heroku. /Pour décharger ou étendre le traitement des événements de données Salesforce, utilisez des appels externes depuis Salesforce vers Heroku.
  • To embed a custom UI from Heroku (or other external web app) into Salesforce, use Canvas. /Pour incorporer une interface utilisateur personnalisée depuis Heroku (ou une autre application Web externe) dans Salesforce, utilisez la fonctionnalité Zone de dessin.

Resources

Leave a Reply

Your email address will not be published. Required fields are marked *