La struttura dell’opportunity
In Dynamics 365 Sales l’opportunity rappresenta una vendita potenziale, qualificata e quantificabile, verso un account o un contact. Nasce tipicamente dalla qualifica di un lead (che al momento del Qualify genera account, contact e opportunity) oppure viene creata direttamente quando la relazione commerciale esiste già. I campi chiave sono il topic, il potential customer (account/contact), la estimated revenue, la estimated close date, oltre a informazioni di contesto come budget amount, purchase timeframe e purchase process.
L’opportunity è governata dal Business Process Flow “Opportunity Sales Process”, articolato negli stage Qualify → Develop → Propose → Close. Questi stage non sono un dettaglio estetico: definiscono l’avanzamento del deal e alimentano direttamente i report di sales pipeline, che segmentano il valore atteso per fase del processo.
Opportunity product: catalogo vs write-in
Le righe dell’opportunity (opportunity product) possono essere di due tipi:
- Existing product — selezionato dal product catalog. Richiede che l’opportunity abbia una price list associata: quantità, unità e prezzo unitario derivano dal listino, e gli importi estesi vengono calcolati automaticamente. È la scelta corretta quando vuoi coerenza di pricing, sconti governati e reportistica per prodotto.
- Write-in product — riga a testo libero. Inserisci manualmente descrizione, quantità e prezzo. Non è legata al catalogo né a un listino, quindi è ideale per articoli occasionali, servizi personalizzati o SKU non ancora a catalogo, ma perdi la normalizzazione dei dati e le analisi per prodotto.
Punto architetturale: senza price list non puoi aggiungere existing product, mentre i write-in restano sempre disponibili. Se lo scenario richiede pricing controllato e analisi affidabili, la risposta è existing product + price list; se richiede flessibilità immediata su un articolo fuori catalogo, è write-in.
Revenue: system-calculated vs user-provided
Il campo Revenue dell’opportunity ha due modalità:
- System Calculated — la estimated revenue è la somma degli importi estesi delle opportunity product. È il comportamento corretto quando lavori con line item strutturati: il totale è sempre coerente con le righe.
- User Provided — inserisci manualmente un valore di ricavo, ignorando le righe. Serve quando la stima è un numero negoziato “a corpo” o quando non si vogliono dettagliare i prodotti.
La scelta è mutuamente esclusiva a livello di record e determina se il forecast rispecchia i prodotti o una stima manuale.
Chiusura: won e lost
Chiudere l’opportunity genera un’attività Opportunity Close. Con Close as Won si registra la actual revenue e lo status passa a Won; con Close as Lost si indica un reason e, tipicamente, il competitor che ha vinto. Le opportunity chiuse escono dalla pipeline attiva ma restano fondamentali per win/loss analysis.
Modellare le relazioni con le connection roles
Attorno al deal ruotano più attori, modellati sull’opportunity tramite connections governate da connection role:
- Stakeholders — i contact influenti lato cliente (decision maker, sponsor, utente). Sono connection con ruolo dedicato, non semplici note.
- Sales Team — i membri interni coinvolti (oltre all’owner), anch’essi via connection role.
- Competitors — modellati con l’entità Competitor in relazione N:N con l’opportunity, così tracci contro chi competi e, in caso di lost, chi ha vinto.
Le connection role appartengono a categorie (Business, Sales, Stakeholder, ecc.) e possono definire il ruolo reciproco, permettendo di descrivere relazioni ricche senza creare tabelle custom.
Trappole tipiche d’esame
- Serve aggiungere prodotti a catalogo ma l’utente non riesce → verifica che l’opportunity abbia una price list: senza listino gli existing product non sono selezionabili; solo i write-in restano disponibili.
- La estimated revenue non riflette le righe prodotto → il campo Revenue è impostato su User Provided; per farlo derivare dalla somma degli importi estesi va impostato su System Calculated.
- Tracciare decision maker cliente e membri interni del deal → usa le connection role (Stakeholders e Sales Team), non campi custom o note.
- Registrare chi ha vinto un deal perso → chiudi con Close as Lost indicando il competitor associato (relazione competitor), non un semplice testo nel reason.
- La dashboard di pipeline mostra i deal per fase sbagliata → la pipeline riflette gli stage del Business Process Flow (Qualify/Develop/Propose/Close): è l’avanzamento dello stage, non lo status, a spostare l’opportunity nel funnel.