Considerations for Opportunity Management
This page covers the critical implementation requirements, default configurations, and upgrade considerations for Opportunity Management — read it alongside Key Concepts of Opportunity Management V2 for the conceptual model, and before rolling out or upgrading Opportunity Management V2 org-wide.
Critical upgrade requirement. After upgrading the package, you must add the values "In Progress" and "Completed" to the ibsbaucore__Status__c field on ibsbaucore__Sync_Task__c. Sync tasks will completely fail if these values are not added immediately after upgrade, which can cause data synchronization issues and disrupt business processes. This step is not performed automatically on upgrade — see below.
Required picklist values after upgrade
ibsbaucore__Sync_Task__c drives Opportunity Management’s background sync processing, and its ibsbaucore__Status__c field must include both of the following values:
"In Progress""Completed"
On a fresh installation, these values are set up automatically. On a package upgrade, they are not — an administrator must add them manually to the picklist immediately after the upgrade completes, before any sync task runs. Skipping this step is the most common cause of Opportunity Management sync failures after an upgrade.
Default mappings to configure after upgrade
Like the picklist values above, none of the following mappings are configured automatically on a package upgrade — only on a fresh installation. An administrator should set each of these deliberately after upgrading.
Project Phase to Role mappings
Initial default mappings for which Opportunity roles are relevant to each Project phase:
| Project Phase | Opportunity Roles |
|---|---|
| Design | Architect, Building Owner |
| Implementation Planning | Building Owner, Architect |
| Bid | General Contractor, Processor |
| Decision | Distributor |
These mappings determine which roles are considered relevant during each project phase, and can be adjusted by administrators at any time.
Roles enabled for automatic Opportunity creation
Automatic Opportunity creation only triggers for a Participant whose Role is in this list — adding a new Participant Role elsewhere doesn’t make it eligible until it’s added here too. The initial default list is:
- Architect
- Building Owner
- Developer
- Processor
- Distributor
- General Contractor
Administrators can modify this list after upgrade.
Opportunity status mappings
Initial default status configuration, and what each mapping means for pipeline reporting:
| Status Type | Recommended Value | Business Impact |
|---|---|---|
| Closed Won | Closed Won | Customer selected our product; counts in sales pipeline |
| Indirect Closed Won | Closed Won | Customer selected our product; excluded from pipeline calculations |
| Closed Lost | Closed Lost | Customer chose another product |
| Cancelled | Closed Lost | The Participant lost the job to another company |
Expected Revenue forecasting
Expected Revenue is a forecasting metric calculated as Amount × Probability %, using each stage’s configured probability percentage. To add it to your forecast measures:
- Enable Opportunity Team Selling, then enable Opportunity Team Settings (Setup → Feature Settings → Sales → Opportunities → Opportunity Team Settings).
- Enable Opportunity Splits (Setup → Feature Settings → Sales → Opportunities → Opportunity Splits Settings → Set Up Opportunity Splits), add a new split type, and choose Opportunity – Expected Revenue as its field.
- Add the new Expected Revenue split type to your Forecast Types.
Salesforce creates two default split types (Revenue and Overlay) automatically, but a custom split type on the Expected Revenue field is required for proper forecasting — Expected Revenue is meant for overall sales forecasting, not individual opportunity tracking.
Sharing and access
Respect Record Access, if enabled, means field-sync actions only update Opportunities the running user can read and edit — Opportunities outside that user’s access are skipped silently, with no error surfaced. If sync results look incomplete for a user, check their access to the Opportunity records in question before assuming the sync itself failed.
What’s excluded from auto-creation
“Our Company” / My Company participants never generate an Opportunity — this exclusion is not configurable per org, it’s a hard rule of the auto-create logic (separate from the Role-based eligibility list above).
Probability behavior is asymmetric
- Setting Project Probability to 0 propagates 0 to related active Opportunities (if sync is active) — a real value, sent through.
- Setting Project Probability to Null does the opposite: it disables the sync to related Opportunities rather than propagating a blank. If an Opportunity’s Probability looks “stuck” after a Project field was cleared, this is usually why.
Per-Opportunity overrides exist, and are easy to miss
The donotoverride flag on an individual Opportunity excludes just that one record from Amount sync, while every other related Opportunity keeps syncing normally. If Amount looks wrong on exactly one Opportunity on an otherwise-healthy Project, check this flag before assuming the sync engine is broken.
Lead conversion doesn’t duplicate
Converting a Lead that is also a Participant reuses whichever Opportunity results from the conversion (or the auto-create rule) — it does not create a second, separate Opportunity for the same Account on the same Project.
Post-upgrade verification checklist
After every upgrade, before considering the rollout complete:
- Confirm
"In Progress"and"Completed"are present onibsbaucore__Status__c(ibsbaucore__Sync_Task__c). - Re-verify all Opportunity stage mappings (status mappings and Project-Phase-to-Role mappings above).
- Test any custom automations that interact with Opportunity Management.