Aller au contenu
Comment étendre SAP Sales Cloud V2 avec des applications Cloud Foundry personnalisées sur SAP BTP
Insights · ·11 min de lecture

Comment étendre SAP Sales Cloud V2 avec des applications Cloud Foundry personnalisées sur SAP BTP

Dario Pedol

Dario Pedol

CEO & SAP CX Architect, Spadoom AG

Partager

SAP Sales Cloud V2 est un CRM performant dès son installation. Gestion des leads, suivi des opportunités, hiérarchies de comptes, journalisation des activités — tout est là. Mais si vous avez passé un certain temps à configurer SSCV2 pour une entreprise réelle, vous avez atteint le mur où la configuration standard s’arrête et où les exigences métier spécifiques commencent.

Peut-être s’agit-il d’une équipe de vente terrain qui a besoin d’un planificateur de visites assisté par IA. D’un distributeur alimentaire dont l’adresse de facturation détermine l’organisation commerciale. D’un centre d’appels qui nécessite la téléphonie Twilio directement dans le navigateur avec journalisation dans les interactions SSCV2. Ce ne sont pas des cas marginaux. C’est le quotidien.

C’est là qu’interviennent les applications Cloud Foundry personnalisées sur SAP BTP — et c’est le domaine dans lequel nous développons des extensions en production depuis trois ans, sur plusieurs tenants et secteurs d’activité.

En résumé : 35 % des utilisateurs de SAP BTP utilisent désormais la plateforme pour étendre leurs applications SAP tout en préservant un Clean Core (ASUG, 2025). Nous avons livré des extensions SSCV2 selon 4 patterns — HTML mashups, custom OData services, webhooks événementiels et intégration API — en utilisant une architecture Cloud Foundry à trois applications qui se déploie en semaines. Voici exactement comment chaque pattern fonctionne, avec les pièges rencontrés en production.

Pourquoi la configuration standard de SSCV2 atteint-elle ses limites ?

On estime que 20 à 70 % des projets CRM n’atteignent pas les résultats escomptés, principalement en raison d’une mauvaise adoption par les utilisateurs et de l’écart entre les fonctionnalités livrées et les besoins réels (CRM.org, 2026). La boîte à outils de configuration de SSCV2 — mode d’adaptation, autoflows, paramètres utilisateur clé — couvre bien les fondamentaux. Mais elle a des limites strictes.

Vous ne pouvez pas construire une interface personnalisée qui interroge trois systèmes simultanément. Vous ne pouvez pas exécuter une logique métier complexe qui requête S/4HANA, applique des algorithmes de scoring et réécrit les résultats. Vous ne pouvez pas intégrer un widget de téléphonie en temps réel avec streaming d’événements via WebSocket. Et vous ne pouvez pas enregistrer de nouveaux objets métier avec leurs propres vues en liste et pages de détail.

Ce n’est pas une critique — c’est la nature de tout produit SaaS. Pourquoi est-ce important ? Parce que la question n’est pas de savoir si vous aurez besoin d’extensions. C’est de savoir comment les construire sans créer un cauchemar de maintenance. C’est exactement la raison pour laquelle SAP a investi dans le modèle d’extension side-by-side — pour vous offrir une issue propre lorsque la configuration atteint ses limites.

Qu’est-ce que le modèle d’extension side-by-side sur BTP ?

55 % des membres ASUG utilisent désormais SAP BTP, contre 40 % en 2023 — et 35 % de ces utilisateurs utilisent spécifiquement BTP pour personnaliser et étendre leurs applications SAP tout en préservant un Clean Core (ASUG Pulse of the SAP Customer, 2025). La tendance d’adoption est claire : les entreprises abandonnent les modifications in-app au profit d’extensions indépendantes et compatibles avec les mises à jour.

Au lieu de modifier le noyau de SSCV2 (ce que SAP déconseille explicitement dans le cadre de sa stratégie Clean Core), vous déployez des applications Cloud Foundry indépendantes qui communiquent avec SSCV2 via des API, des événements et l’intégration d’interface.

Chaque extension en production que nous avons développée suit une architecture Cloud Foundry à trois applications :

ComposantTechnologieRôle
AppRouter@sap/approuterAuthentification XSUAA, CORS, routage, intégration iframe — le point d’entrée unique appelé par SSCV2
Express BackendNode.js + ExpressAPI REST, logique métier, proxy OData, support WebSocket, intégrations externes
Serveur d’interface statiqueHTML/CSS/JSPages des mashups intégrées dans les écrans SSCV2

Les trois applications se déploient dans le même espace CF. L’AppRouter authentifie l’utilisateur via des tokens JWT XSUAA et route les requêtes vers le backend ou le serveur d’interface. Les appels API SSCV2 passent par le BTP Destination Service — jamais en HTTP direct. Celui-ci gère automatiquement l’échange de tokens OAuth2, la gestion des certificats et le pool de connexions.

Retour d’expérience : Cette architecture à trois applications n’est pas théorique. Elle fonctionne en production dans notre système Engage CTI, le portail client, l’intégration WhatsApp, le planificateur de visites terrain et les mashups de suivi de produits — le tout déployé sur BTP Cloud Foundry.

Comment les HTML mashups étendent-ils SSCV2 ?

Les HTML mashups sont le pattern d’extension le plus simple et la voie la plus rapide vers la production. Vous enregistrez une URL, SSCV2 la charge dans un iframe sur la mise en page de votre choix, et c’est fait. Pas d’enregistrement de métadonnées. Pas d’endpoints OData. Juste une page web qui apparaît dans votre CRM.

Mais « simple » ne signifie pas « limité ». La vraie puissance vient du contexte que SSCV2 transmet à votre mashup via les paramètres d’URL — accountId, contactId, opportunityId et tout paramètre personnalisé que vous configurez. Votre mashup reçoit ces données, appelle les API dont il a besoin et affiche une interface qui serait impossible avec la configuration standard.

Exemple concret : Pour un distributeur alimentaire suisse, nous avons développé un mashup qui affiche les données de partenaire commercial S/4HANA aux côtés des détails du compte SSCV2. Le commercial voit les adresses de livraison, les conditions de paiement et les commandes ouvertes de S/4 — le tout dans la page de compte SSCV2, sans changer de système.

Autre exemple : Notre planificateur de visites pour OPO Oeschger intègre une interface complète de planification hebdomadaire par glisser-déposer dans SSCV2. Un algorithme de scoring par IA évalue plus de 100 comptes par commercial, pondérant les visites en retard (40 %), la classification ABC (30 %), la cadence de visite (20 %) et le regroupement géographique (10 %). Le commercial fait glisser les visites suggérées sur son calendrier — le tout dans un mashup.

Une contrainte à connaître : SSCV2 limite la hauteur de l’iframe des mashups à environ 800 pixels (SAP Note 0003704111). Concevez votre interface en conséquence.

Comment les custom OData services permettent-ils une intégration en profondeur ?

Lorsqu’un mashup ne suffit pas et que vous avez besoin que SSCV2 traite vos données comme un citoyen de première classe, vous enregistrez un custom service. Cela vous donne des entités OData V4 complètes avec opérations CRUD, vues en liste, pages de détail et vues rapides — le tout rendu par le framework d’interface natif de SSCV2.

Le processus d’enregistrement comporte six étapes :

  1. POST de vos métadonnées OData V4 vers le repository-service de SSCV2
  2. Création d’un connecteur de données en mode DIRECT pointant vers l’URL de votre AppRouter CF
  3. Configuration des vues d’interface (liste de travail, détail, vue rapide) dans le concepteur d’interface SSCV2
  4. Attribution du service à un rôle via le service IAM
  5. Création de champs d’extension sur les entités liées si nécessaire
  6. Enregistrement de l’endpoint OData sur votre backend Express

Une fois enregistré, SSCV2 appelle votre application CF comme s’il s’agissait d’une source de données native. Les utilisateurs voient vos entités personnalisées dans la navigation, les recherchent et les filtrent, et accèdent aux pages de détail — le tout dans l’expérience standard SSCV2.

Nous avons utilisé ce pattern pour l’intégration de passerelle de paiement (Wallee) et les services de suivi de produits. L’avantage clé par rapport aux mashups : vos données participent au modèle relationnel de SSCV2. Vous pouvez lier des entités personnalisées aux comptes, contacts et opportunités via des champs d’extension.

Comment les webhooks permettent-ils des extensions événementielles ?

Les autoflows de SSCV2 peuvent déclencher des webhooks — des appels HTTP POST vers votre application CF lorsque des événements spécifiques se produisent. C’est ainsi que vous construisez des extensions réactives qui répondent à l’activité CRM en temps réel, sans polling ni intervention de l’utilisateur.

Retour d’expérience : Pour Intelligentfood, nous avons développé un gestionnaire de webhooks qui se déclenche lors de la création d’un nouveau compte dans SSCV2. Le gestionnaire lit l’adresse de facturation, détermine l’organisation commerciale appropriée (Suisse, Autriche, France ou Pays-Bas selon le code pays), et met à jour le compte avec l’entrée salesArrangements correspondante. Ce qui nécessiterait une attribution manuelle par un administrateur se fait automatiquement en moins d’une seconde.

Le pattern webhook utilise Basic Auth plutôt que XSUAA — c’est du serveur à serveur sans contexte utilisateur. SSCV2 relance les webhooks échoués avec un backoff exponentiel, votre gestionnaire doit donc être idempotent.

Un piège que nous avons découvert tôt : l’API $batch de SSCV2 n’est pas prise en charge via le Destination Service (renvoie HTTP 405). Si votre gestionnaire de webhook doit mettre à jour plusieurs entités, utilisez des appels individuels concurrents — nous avons testé jusqu’à 30 requêtes parallèles sans problème avec Promise.all().

Quels sont les meilleurs patterns pour l’intégration API et la synchronisation des données ?

Les entreprises qui utilisent efficacement leur CRM constatent une augmentation de 29 % des ventes et une amélioration de 34 % de la productivité commerciale (CRM.org, 2026). Mais ces gains dépendent de la présence des bonnes données dans votre CRM. De nombreuses extensions portent uniquement sur ce pont — synchronisation de SSCV2 avec les systèmes ERP, enrichissement des enregistrements à partir de sources externes, ou exposition des données CRM vers d’autres plateformes.

Tout accès à l’API REST de SSCV2 depuis les applications CF passe par le BTP Destination Service avec l’un des deux modèles d’authentification :

Modèle d’authentificationCas d’utilisationQuand l’utiliser
OAuth2SAMLBearerAssertionPropagation de l’identité utilisateurOpérations qui doivent respecter le contrôle d’accès basé sur les rôles de SSCV2
Basic Auth (utilisateur technique)Serveur à serveurTraitements en arrière-plan, intégrations, webhooks sans contexte utilisateur

Les champs d’extension permettent de stocker des données personnalisées sur les entités standard de SSCV2. Créez-les via l’API repository-service et accédez-y via l’objet extensions dans chaque réponse d’entité. Nous les utilisons intensivement pour les indicateurs de blocage de visite, les codes de groupe client et les horodatages de synchronisation d’intégration.

Un point de vigilance : la suppression d’un champ d’extension est définitive. Elle efface toutes les valeurs stockées sur tous les enregistrements, sans possibilité de restauration. Testez toujours d’abord sur votre tenant QAS.

Pour l’intégration S/4HANA, SAP Integration Suite gère la réplication des données via des iFlows. Notre projet Intelligentfood utilise ce mécanisme pour la synchronisation bidirectionnelle entre les partenaires commerciaux S/4 et les comptes SSCV2 — un pattern courant pour les entreprises exploitant les deux systèmes.

Comment fonctionnent l’authentification et le multi-tenancy en pratique ?

Le principal frein à l’adoption de BTP reste le manque de compétences — 46 % des organisations le citent comme leur défi principal, suivi par la complexité du développement à 43 % (Precisely 2026 SAP Trends Survey). L’authentification et le multi-tenancy sont exactement là où cette complexité se concentre. Voici ce que nous avons retenu après des déploiements sur plusieurs tenants :

XSUAA est incontournable. Chaque application CF dispose d’une instance de service XSUAA. L’AppRouter valide les tokens JWT et les transmet au backend. Votre serveur Express utilise @sap/xssec pour extraire l’identité de l’utilisateur et vérifier les scopes.

IDP personnalisé pour le SSO. Lorsque votre extension se charge dans un iframe de mashup SSCV2, l’utilisateur est déjà authentifié. Sans IDP personnalisé, l’iframe l’inviterait à se connecter à nouveau. En configurant SAP IAS comme fournisseur d’identité de confiance et en définissant identityProvider: "sap.custom" dans l’AppRouter, vous obtenez un single sign-on transparent.

Multi-tenancy via fichiers d’environnement. Chaque client dispose de son propre subaccount BTP avec une instance XSUAA dédiée. Nous gérons la configuration par tenant via des fichiers .env.<tenantId> qui alimentent la substitution de variables manifest.yml au moment du déploiement. Même code source, infrastructure isolée.

Ce qui distingue Spadoom

L’écosystème de partenaires SAP compte plus de 25 000 entreprises (SAP News Center, 2025). Alors pourquoi travailler avec nous ? Parce que nous ne nous contentons pas de conseiller sur l’extensibilité SSCV2 — nous livrons du code en production.

Engage est notre suite d’extensions phare : CTI avec appels Twilio dans le navigateur, portail client en libre-service, messagerie WhatsApp avec journalisation des interactions, intégration de documents SharePoint et hub d’administration multi-produits. Six applications distinctes déployées en SaaS multi-tenant sur BTP.

MCP-SSCV2 encapsule plus de 65 API REST SSCV2 sous forme d’outils accessibles par IA, permettant à Claude d’interagir avec Sales Cloud V2 de manière programmatique. C’est ainsi que nous automatisons la configuration des tenants, testons le comportement des API et prototypons de nouvelles idées d’extension plus rapidement qu’avec une collection Postman.

Intelligentfood gère l’intégration complète S/4HANA-vers-SSCV2 pour un distributeur alimentaire suisse — attribution de comptes pilotée par webhooks, planification de visites et synchronisation bidirectionnelle des données entre deux destinations BTP.

Le planificateur de visites d’OPO Oeschger utilise le scoring par IA pour prioriser plus de 100 comptes par commercial et par semaine, avec une planification par glisser-déposer intégrée directement dans SSCV2.

Ce ne sont pas des démonstrations de conférence. Ce sont des systèmes de production qui traitent des données réelles pour de vraies équipes commerciales, chaque jour.

Questions fréquentes

Peut-on étendre SAP Sales Cloud V2 sans modifier le noyau ?

Oui. Le modèle side-by-side de SAP sur BTP vous permet de déployer des applications CF qui s’intègrent via des API, des mashups et des webhooks — sans toucher au noyau de SSCV2. 35 % des utilisateurs de BTP utilisent désormais cette approche d’extension Clean Core (ASUG, 2025).

Quelle est la différence entre un HTML mashup et un custom service ?

Les mashups intègrent votre application web sous forme d’iframe — idéal pour les tableaux de bord et les intégrations rapides. Les custom services enregistrent des entités OData V4 complètes que SSCV2 traite comme des données natives, avec des vues en liste standard, des pages de détail et des opérations CRUD. Consultez notre présentation de SAP BTP pour comprendre comment les deux s’intègrent dans l’architecture de la plateforme.

Comment fonctionne l’authentification pour les extensions sur BTP ?

XSUAA gère l’authentification basée sur JWT, tandis que le Destination Service gère l’échange de tokens. Pour le SSO dans les iframes de mashup, configurez SAP IAS comme fournisseur d’identité personnalisé afin que les utilisateurs ne s’authentifient qu’une seule fois.

Combien de temps faut-il pour développer une extension SSCV2 personnalisée ?

Un HTML mashup basique : 1 à 2 semaines. Un custom service OData avec CRUD : 3 à 6 semaines. Des extensions multi-patterns complexes comme le CTI ou la planification de visites : 2 à 4 mois selon le périmètre.

Spadoom prend-il en charge les déploiements multi-tenants ?

Chaque extension que nous développons supporte le déploiement multi-tenant avec des subaccounts BTP isolés par client. Même code source, configuration basée sur les variables d’environnement, infrastructure indépendante.

Passez à l’action

Si votre instance SSCV2 atteint les limites de la configuration standard, vous n’avez pas besoin de faire de compromis. Les applications Cloud Foundry personnalisées sur BTP vous donnent toute la puissance d’une plateforme de développement moderne tout en préservant un noyau CRM propre et compatible avec les mises à jour.

Nous avons développé ces extensions dans plusieurs secteurs — distribution alimentaire, matériaux de construction, services financiers — et nous avons consolidé les patterns en une architecture reproductible qui se déploie en semaines, pas en mois. Que vous soyez en train de migrer depuis C4C ou d’étendre une instance SSCV2 fraîchement déployée, l’approche est la même.

Prêt à étendre votre SAP Sales Cloud V2 ? Contactez notre équipe d’extensions SSCV2 — nous définirons ensemble ce qui est réalisable.

SAP Sales Cloud V2SAP BTPCloud FoundrySide-by-Side ExtensionsCustom Development
Etape suivante

Solutions pour Ventes

Découvrez comment SAP Sales Cloud V2 peut faire avancer votre entreprise.

Articles associes

Demandez a un expert