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.