Heroku - 20 Configuration Messages Outbound
Bienvenue dans cette suite sur les Outbound Messages. Aujourd'hui nous allons configurer Salesforce pour qu'il envoie un message à notre application Heroku à chaque changement sur l'objet Case. Le plan : (1) déployer une application Heroku qui sait recevoir et parser le XML envoyé par Salesforce, (2) créer une Workflow Rule sur Salesforce qui déclenche l'Outbound Message, (3) valider que tout fonctionne en créant et modifiant un Case.
Application Node.js réceptrice + déploiement
Le code de notre application Heroku utilise body-parser et body-parser-xml pour analyser le corps des messages : si le contenu est du XML, il est automatiquement converti en JSON. Le reste du fichier démarre un serveur HTTP prêt à recevoir les requêtes. Le serveur définit aussi les deux réponses possibles vers Salesforce : ACK (Acknowledge, succès) et NACK (Not Acknowledge, échec) vues dans la leçon précédente. Puisque ce cours n'est pas centré sur le code, vous pouvez simplement copier l'exemple fourni.
heroku login
git add .
git commit -m "deploy app"
git push heroku master
- Application Node Express avec body-parser-xml
- Routes ACK / NACK pour répondre à Salesforce
- Workflow Rule sur l'objet Case, événement « created or modified »
- Outbound Message avec endpoint URL et champs à envoyer
- Activation manuelle de la règle (désactivée par défaut)
Pour déployer, on suit l'onglet « Deploy » de l'application Heroku : déjà loggué, on enchaîne git add ., git commit -m "...", git push heroku master. L'application est en ligne. Côté Salesforce, on ouvre Setup > Workflow Rules > New Rule. On choisit l'objet Case. Pour le critère d'évaluation, on a trois options : à la création, à la création ou modification, ou les deux avec critères personnalisés. On choisit « created or modified ». On laisse les filtres vides pour rester simple, on sauvegarde.
Il faut ensuite ajouter une action : Add Outbound Message. On configure l'URL de l'endpoint (visible via Open App + le path /case), on sélectionne tous les champs à envoyer, on sauvegarde. Attention : la règle est désactivée par défaut, il faut explicitement l'activer.
Test : on crée un nouveau Case dans Salesforce (Type, Priority Medium, Origin Web) et on observe les logs Heroku : la requête arrive bien avec les champs renseignés. Maintenant testons l'échec : on modifie la priorité de Medium à Low. Le code applicatif est conçu pour retourner un NACK quand la priorité est Low. Du coup, Salesforce reçoit un échec et retente l'envoi plusieurs fois. Côté Salesforce, on peut voir cela dans Setup > Outbound Messages Monitor : l'ID du message, l'objet, le nombre de retries (4 dans l'exemple), la raison de l'échec, l'heure du dernier essai et du prochain. Salesforce continue pendant 24 heures puis abandonne. À bientôt pour la prochaine vidéo.
En résumé
Ce cours couvre la configuration complète des messages sortants (outbound messages) depuis Salesforce vers une application Heroku. Vous apprendrez à déployer le code Node.js nécessaire pour recevoir et traiter les messages XML, à configurer une règle de workflow Salesforce, et à valider que les messages sont correctement envoyés et reçus par votre application.
Points clés
- Déployer une application Node.js sur Heroku capable de recevoir des messages sortants au format XML grâce aux modules body-parser et body-parser-xml
- Créer une règle de workflow dans Salesforce pour déclencher l'envoi de messages à chaque création ou modification de cas
- Configurer l'action de message sortant avec l'URL de l'application Heroku et sélectionner les champs à envoyer
- Tester la configuration en créant un cas Salesforce et en validant les logs de l'application pour confirmer la réception du message
- Mettre en place les réponses ACK et NAK (acknowledgement et negative acknowledgement) pour valider le succès ou l'échec du traitement côté application
Questions fréquentes
Quels sont les prérequis pour configurer les outbound messages de Salesforce vers Heroku ?
Vous avez besoin d'une application Node.js déployée sur Heroku avec les modules body-parser et body-parser-xml installés, d'un compte Salesforce avec accès aux workflows, et de l'URL publique de votre application Heroku pour la configuration.
Comment valider que les outbound messages sont correctement reçus par mon application ?
Consultez les logs de votre application Heroku (via la commande heroku logs) après avoir créé ou modifié un cas dans Salesforce. Les messages reçus doivent être visibles dans les logs avec les informations du cas envoyées au format JSON.
Pourquoi dois-je renvoyer les réponses ACK ou NAK de mon application à Salesforce ?
Les réponses ACK (succès) et NAK (échec) informent Salesforce du statut du traitement. Sans ces réponses, Salesforce tentera de renvoyer le message plusieurs fois, ce qui peut créer des doublons ou surcharger votre application.