Vai al contenuto
Come estendere SAP Sales Cloud V2 con app Cloud Foundry personalizzate su SAP BTP
Insights · ·11 min di lettura

Come estendere SAP Sales Cloud V2 con app Cloud Foundry personalizzate su SAP BTP

Dario Pedol

Dario Pedol

CEO & SAP CX Architect, Spadoom AG

Condividi

SAP Sales Cloud V2 è un CRM capace già di serie. Gestione lead, tracking delle opportunità, gerarchie di account, registrazione delle attività — c’è tutto. Ma se avete passato un po’ di tempo a configurare SSCV2 per un’azienda reale, avete raggiunto il punto in cui la configurazione standard si ferma e i requisiti personalizzati iniziano.

Forse è un team di vendita sul campo che ha bisogno di un pianificatore visite basato su AI. Un distributore alimentare il cui indirizzo di fatturazione determina l’organizzazione commerciale. Un call center che necessita di chiamate browser via Twilio registrate direttamente nelle interazioni SSCV2. Non sono casi limite. Sono la normalità.

È qui che entrano in gioco le applicazioni Cloud Foundry personalizzate su SAP BTP — e dove abbiamo investito gli ultimi tre anni costruendo estensioni produttive su più tenant e settori industriali.

In sintesi: Il 35% degli utenti SAP BTP utilizza la piattaforma per estendere le applicazioni SAP mantenendo un core pulito (ASUG, 2025). Abbiamo distribuito estensioni SSCV2 secondo 4 pattern — HTML mashup, custom OData service, webhook event-driven e integrazione API — utilizzando un’architettura Cloud Foundry a tre app che si mette in produzione in settimane. Ecco esattamente come funziona ogni pattern, con le insidie scoperte in produzione.

Perché la configurazione standard di SSCV2 raggiunge un limite?

Si stima che il 20-70% dei progetti CRM non raggiunga le aspettative, principalmente a causa della scarsa adozione da parte degli utenti e del divario tra ciò che un CRM offre di serie e ciò di cui gli utenti hanno realmente bisogno (CRM.org, 2026). Il toolkit di configurazione di SSCV2 — modalità di adattamento, autoflow, impostazioni per key user — copre bene i fondamentali. Ma ha confini rigidi.

Non è possibile costruire una UI personalizzata che interroga dati da tre sistemi simultaneamente. Non è possibile eseguire logiche di business complesse che interrogano S/4HANA, applicano algoritmi di scoring e riscrivono i risultati. Non è possibile incorporare un widget di telefonia in tempo reale con streaming di eventi via WebSocket. E non è possibile registrare oggetti business completamente nuovi con le proprie viste lista e pagine di dettaglio.

Non è una critica — è la natura di qualsiasi prodotto SaaS. Perché è importante? Perché la domanda non è se avrete bisogno di estensioni. È come costruirle senza creare un incubo di manutenzione. È esattamente per questo che SAP ha investito nel modello di estensione side-by-side — per offrire una via d’uscita pulita quando la configurazione raggiunge il suo limite.

Cos’è il modello di estensione side-by-side su BTP?

Il 55% dei membri ASUG utilizza ormai SAP BTP, in crescita dal 40% nel 2023 — e il 35% di questi utenti usa BTP specificamente per personalizzare ed estendere le app SAP mantenendo un core pulito (ASUG Pulse of the SAP Customer, 2025). Il trend di adozione è chiaro: le aziende si stanno spostando dalle modifiche in-app verso estensioni indipendenti e sicure per gli aggiornamenti.

Invece di modificare il core di SSCV2 (cosa che SAP scoraggia esplicitamente nella strategia Clean Core), si distribuiscono applicazioni Cloud Foundry indipendenti che comunicano con SSCV2 attraverso API, eventi e incorporamento nella UI.

Ogni estensione produttiva che abbiamo realizzato segue un’architettura Cloud Foundry a tre app:

ComponenteTecnologiaScopo
AppRouter@sap/approuterAutenticazione XSUAA, CORS, routing, incorporamento in iframe — il punto di ingresso unico che SSCV2 chiama
Express BackendNode.js + ExpressREST API, logica di business, proxying OData, supporto WebSocket, integrazioni esterne
Static UI ServerHTML/CSS/JSPagine mashup incorporate nelle schermate SSCV2

Tutte e tre le app vengono distribuite nello stesso CF space. L’AppRouter autentica l’utente tramite token JWT XSUAA e instrada le richieste al backend o al server UI. Le chiamate alle API SSCV2 passano attraverso il BTP Destination Service — mai via HTTP diretto. Questo gestisce automaticamente lo scambio di token OAuth2, la gestione dei certificati e il connection pooling.

Dalla nostra esperienza: Questo pattern a tre app non è teorico. È in produzione nel nostro sistema Engage CTI, nel portale clienti, nell’integrazione WhatsApp, nel pianificatore visite per la forza vendita e nei mashup di product tracking — tutti distribuiti su BTP Cloud Foundry.

Come funzionano gli HTML mashup per estendere SSCV2?

Gli HTML mashup sono il pattern di estensione più semplice e il percorso più rapido verso la produzione. Si registra un URL, SSCV2 lo carica in un iframe nel layout di pagina scelto, e il gioco è fatto. Nessuna registrazione di metadati. Nessun endpoint OData. Solo una pagina web che appare all’interno del CRM.

Ma “semplice” non significa “limitato”. La vera potenza sta nel contesto che SSCV2 passa al mashup tramite parametri URL — accountId, contactId, opportunityId e qualsiasi parametro personalizzato configurato. Il mashup riceve questi dati, chiama le API necessarie e renderizza una UI che sarebbe impossibile con la configurazione standard.

Esempio reale: Per un distributore alimentare svizzero, abbiamo costruito un mashup che mostra i dati del business partner S/4HANA accanto ai dettagli dell’account SSCV2. Il commerciale vede indirizzi di consegna, condizioni di pagamento e ordini aperti da S/4 — tutto all’interno della pagina account SSCV2, senza cambiare sistema.

Un altro esempio: Il nostro pianificatore visite per OPO Oeschger incorpora un’interfaccia completa di pianificazione settimanale drag-and-drop all’interno di SSCV2. Un algoritmo di scoring AI valuta oltre 100 account per commerciale, pesando visite scadute (40%), classificazione ABC (30%), cadenza delle visite (20%) e clustering geografico (10%). Il commerciale trascina le visite suggerite sul proprio calendario — tutto all’interno di un mashup.

Un vincolo da conoscere: SSCV2 limita l’altezza dell’iframe del mashup a circa 800 pixel (SAP Note 0003704111). Progettate la vostra UI di conseguenza.

Come consentono i custom OData service un’integrazione profonda?

Quando un mashup non è sufficiente e serve che SSCV2 tratti i vostri dati come un cittadino di prima classe, si registra un custom service. Questo fornisce entità OData V4 complete con operazioni CRUD, viste lista, pagine di dettaglio e quick view — tutto renderizzato dal framework UI nativo di SSCV2.

Il flusso di registrazione prevede sei passaggi:

  1. POST dei metadati OData V4 al repository-service di SSCV2
  2. Creazione di un data connector in modalità DIRECT che punta all’URL del CF AppRouter
  3. Configurazione delle viste UI (work list, dettaglio, quick view) nel designer UI di SSCV2
  4. Assegnazione del servizio a un ruolo tramite il IAM service
  5. Creazione di extension field sulle entità correlate se necessario
  6. Registrazione dell’endpoint OData sul backend Express

Una volta registrato, SSCV2 chiama la vostra app CF come se fosse una sorgente dati nativa. Gli utenti vedono le entità personalizzate nella navigazione, le cercano e filtrano, e accedono alle pagine di dettaglio — tutto all’interno dell’esperienza SSCV2 standard.

Abbiamo utilizzato questo pattern per l’integrazione con il gateway di pagamento (Wallee) e i servizi di product tracking. Il vantaggio chiave rispetto ai mashup: i vostri dati partecipano al modello relazionale di SSCV2. Potete collegare entità personalizzate ad account, contatti e opportunità tramite extension field.

Come abilitano i webhook le estensioni event-driven?

Gli autoflow di SSCV2 possono attivare webhook — chiamate HTTP POST alla vostra app CF quando si verificano eventi specifici. È così che si costruiscono estensioni reattive che rispondono all’attività CRM in tempo reale, senza polling o intervento dell’utente.

Dalla nostra esperienza in produzione: Per Intelligentfood, abbiamo costruito un handler webhook che si attiva quando viene creato un nuovo account in SSCV2. L’handler legge l’indirizzo di fatturazione, determina l’organizzazione commerciale corretta (Svizzera, Austria, Francia o Paesi Bassi in base al codice paese) e aggiorna l’account con la voce salesArrangements appropriata. Quella che richiederebbe un’assegnazione manuale da parte di un amministratore avviene automaticamente in meno di un secondo.

Il pattern webhook utilizza Basic Auth anziché XSUAA — è una comunicazione server-to-server senza contesto utente. SSCV2 ritenta i webhook falliti con backoff esponenziale, quindi il vostro handler deve essere idempotente.

Una trappola che abbiamo scoperto presto: l’API $batch di SSCV2 non è supportata attraverso il Destination Service (restituisce HTTP 405). Se il vostro webhook handler deve aggiornare più entità, utilizzate chiamate individuali concorrenti — abbiamo testato fino a 30 richieste parallele senza problemi utilizzando Promise.all().

Quali sono i pattern migliori per l’integrazione API e la sincronizzazione dati?

Le aziende che utilizzano il CRM in modo efficace registrano un aumento delle vendite del 29% e un miglioramento della produttività commerciale del 34% (CRM.org, 2026). Ma questi risultati dipendono dal fatto che il CRM contenga i dati giusti. Molte estensioni servono proprio a colmare questo divario — sincronizzare SSCV2 con sistemi ERP, arricchire i record da fonti esterne o esporre i dati CRM ad altre piattaforme.

Tutto l’accesso alle REST API di SSCV2 dalle app CF passa attraverso il BTP Destination Service con uno di due pattern di autenticazione:

Pattern di autenticazioneCaso d’usoQuando utilizzarlo
OAuth2SAMLBearerAssertionPropagazione dell’identità utenteOperazioni che devono rispettare il controllo di accesso basato sui ruoli di SSCV2
Basic Auth (utente tecnico)Server-to-serverJob in background, integrazioni, webhook senza contesto utente

Gli extension field sono il modo per memorizzare dati personalizzati sulle entità standard di SSCV2. Si creano tramite l’API repository-service e si accedono attraverso l’oggetto extensions in ogni risposta di entità. Li utilizziamo ampiamente per flag di blocco visite, codici gruppo cliente e timestamp di sincronizzazione.

Un avvertimento: la cancellazione di un extension field è permanente. Rimuove tutti i valori memorizzati su tutti i record senza possibilità di rollback. Testate sempre prima nel tenant QAS.

Per l’integrazione con S/4HANA, SAP Integration Suite gestisce la replica dei dati tramite iFlow. Il nostro progetto Intelligentfood lo utilizza per la sincronizzazione bidirezionale tra business partner S/4 e account SSCV2 — un pattern comune per le aziende che utilizzano entrambi i sistemi.

Come funzionano autenticazione e multi-tenancy nella pratica?

Il principale ostacolo all’adozione di BTP resta il gap di competenze — il 46% delle organizzazioni lo indica come la sfida principale, seguito dalla complessità di sviluppo al 43% (Precisely 2026 SAP Trends Survey). Autenticazione e multi-tenancy sono esattamente il punto in cui questa complessità si concentra. Ecco a cosa siamo arrivati dopo il deployment su più tenant:

XSUAA è imprescindibile. Ogni app CF ottiene un’istanza XSUAA service. L’AppRouter valida i token JWT e li inoltra al backend. Il vostro server Express utilizza @sap/xssec per estrarre l’identità dell’utente e verificare gli scope.

IDP personalizzato per il SSO. Quando la vostra estensione si carica all’interno di un iframe mashup SSCV2, l’utente è già autenticato. Senza un IDP personalizzato, l’iframe gli chiederebbe di autenticarsi di nuovo. Configurando SAP IAS come identity provider affidabile e impostando identityProvider: "sap.custom" nell’AppRouter, si ottiene un single sign-on trasparente.

Multi-tenancy tramite file di ambiente. Ogni cliente ottiene il proprio subaccount BTP con un’istanza XSUAA dedicata. Gestiamo la configurazione per tenant tramite file .env.<tenantId> che alimentano la sostituzione di variabili nel manifest.yml al momento del deploy. Stesso codice, infrastruttura isolata.

Cosa distingue Spadoom?

L’ecosistema dei partner SAP comprende oltre 25.000 aziende (SAP News Center, 2025). Perché allora lavorare con noi? Perché non ci limitiamo a consigliare sull’estensibilità di SSCV2 — mettiamo in produzione codice funzionante.

Engage è la nostra suite di estensioni di punta: CTI con chiamate browser Twilio, un portale self-service per i clienti, messaggistica WhatsApp con registrazione delle interazioni, integrazione documentale SharePoint e un hub amministrativo cross-product. Sei applicazioni separate distribuite come SaaS multi-tenant su BTP.

MCP-SSCV2 espone oltre 65 REST API di SSCV2 come strumenti accessibili dall’AI, consentendo a Claude di interagire programmaticamente con Sales Cloud V2. È il modo in cui automatizziamo il setup dei tenant, testiamo il comportamento delle API e prototipiamo nuove idee di estensione più velocemente di chiunque con una collezione Postman.

Intelligentfood gestisce l’integrazione completa S/4HANA-SSCV2 per un’azienda alimentare svizzera — assegnazione account guidata da webhook, pianificazione visite e sincronizzazione dati bidirezionale attraverso due BTP destination.

Il pianificatore visite di OPO Oeschger utilizza lo scoring AI per prioritizzare oltre 100 account per commerciale alla settimana, con schedulazione drag-and-drop incorporata direttamente in SSCV2.

Non sono demo da conferenza. Sono sistemi produttivi che gestiscono dati reali per team vendite reali, ogni giorno.

Domande frequenti

È possibile estendere SAP Sales Cloud V2 senza modificare il core?

Sì. Il modello side-by-side di SAP su BTP consente di distribuire app CF che si integrano tramite API, mashup e webhook — senza toccare il core di SSCV2. Il 35% degli utenti BTP utilizza ormai questo approccio di estensione Clean Core (ASUG, 2025).

Qual è la differenza tra un HTML mashup e un custom service?

I mashup incorporano la vostra web app come iframe — ideali per dashboard e integrazioni rapide. I custom service registrano entità OData V4 complete che SSCV2 tratta come dati nativi, con viste lista standard, pagine di dettaglio e operazioni CRUD. Consultate la nostra panoramica su SAP BTP per capire come entrambi si inseriscono nell’architettura della piattaforma.

Come funziona l’autenticazione per le estensioni su BTP?

XSUAA gestisce l’autenticazione basata su JWT, con il Destination Service che gestisce lo scambio di token. Per il SSO negli iframe mashup, configurate SAP IAS come identity provider personalizzato in modo che gli utenti si autentichino una sola volta.

Quanto tempo serve per costruire un’estensione SSCV2 personalizzata?

Un HTML mashup base: 1-2 settimane. Un custom OData service con CRUD: 3-6 settimane. Estensioni multi-pattern complesse come CTI o pianificazione visite: 2-4 mesi a seconda dell’ambito.

Spadoom supporta deployment multi-tenant?

Ogni estensione che realizziamo supporta il deployment multi-tenant con subaccount BTP isolati per cliente. Stesso codice, configurazione basata sull’ambiente, infrastruttura indipendente.

Iniziamo a costruire

Se la vostra istanza SSCV2 sta raggiungendo i limiti della configurazione standard, non dovete scendere a compromessi. Le applicazioni Cloud Foundry personalizzate su BTP offrono tutta la potenza di una piattaforma di sviluppo moderna mantenendo il core del CRM pulito e sicuro per gli aggiornamenti.

Abbiamo costruito queste estensioni in diversi settori — distribuzione alimentare, materiali edili, servizi finanziari — e abbiamo distillato i pattern in un’architettura ripetibile che si mette in produzione in settimane, non mesi. Che stiate migrando da C4C o estendendo un’istanza SSCV2 appena installata, l’approccio è lo stesso.

Pronti a estendere il vostro SAP Sales Cloud V2? Parlate con il nostro team di estensioni SSCV2 — definiremo insieme le possibilità.

SAP Sales Cloud V2SAP BTPCloud FoundrySide-by-Side ExtensionsCustom Development
Prossimo passo

Soluzioni per Vendite

Scopri come SAP Sales Cloud V2 può trasformare il tuo business.

Articoli correlati

Chiedi a un esperto