ScopeStack supports syncing opportunities from common CRM tools to provide an easy way to get high-level customer information into the platform.
Once you have enabled CRM Opportunity Syncing on your account, you can find your opportunities under the drop-down menu on either a new project or the Project Overview page of an existing project.

Supported CRMs
We support syncing opportunities from the following CRMs
Connectwise Manage
Salesforce
Hubspot
Microsoft Dynamics 365
Autotask by Datto
We offer a couple of additional enhancements for Connectwise Manage. You'll be able to learn about those here.
You can find individual articles about setting up each connection elsewhere in the Help Center.
Fields a CRM Opportunity Updates in ScopeStack
When you select an opportunity from your CRM in ScopeStack, the following fields are updated:
Connectwise Manage Opportunities
Opportunity Sync
Connectwise Manage Field | ScopeStack Field |
Opportunity Summary | Project Name |
Company | Client Name |
Company Site on the Opportunity | Service Location |
Sales Rep | Sales Executive |
Revenue Sync
Scopestack creates a “forecast” with separate entries for Professional Services, Managed Services, and Product Revenue.
Dynamics 365 Opportunities
Opportunity Sync
Dynamics 365 Field | ScopeStack Field |
Topic | Project Name |
Account | Client Name |
Account's Address | Service Location |
Opportunity Owner | Sales Executive |
Revenue Sync
ScopeStack will create a ‘quote’ if none exists, and then create a 'quotedetail' record on that quote with the following details:
ScopeStack Field | Dynamics Field |
Total Contract Revenue | priceperunit |
Total Contract Cost | msdyn_costamount |
Total Contract Cost | msdyn_estimatedcost |
Inclusion or Exclusions of Expenses | msdyn_includeexpens |
Inclusion or Exclusions of Products | msdyn_includematerial |
Fixed Fee or T&M Payment Term Selection | msdyn_billingmethod |
Salesforce Opportunities
Opportunity Sync
Salesforce Field | ScopeStack Field |
Opportunity | Project Name |
Account Name | Client Name |
Account's Address | Service Location |
Opportunity Owner | Sales Executive |
Revenue Sync
The opportunity amount is updated with the Total Contract Revenue.
Autotask Opportunities
Opportunity Sync
Autotask Field | ScopeStack Field |
Opportunity Title | Project Name |
Opportunity Contact Name | Sales Executive |
Opportunity Company Name | Client Name |
Company Address | Service Location |
Revenue Sync
ScopeStack Field | Autotask Field |
Project.contract_revenue | Opportunity.amount |
Project.contract_cost | Opportunity.cost |
Project.mrr_terms | Opportunity.totalAmountMonths |
Project.ps_revenue* | Opportunity.oneTimeRevenue |
Project.ps_cost* | Opportunity.oneTimeCost |
Project.ms_revenue** | Opportunity.xxxRevenue |
Project.ms_cost** | Opportunity.xxxCost |
* only for costs that are not amortized over the length of the MS contract
** xxxRevenue/xxxCost is monthlyRevenue/quarterlyRevenue/yearlyRevenue as dictated by the Project.payment_frequency value
Hubspot Opportunities
Opportunity Sync
Hubspot Field | ScopeStack Field |
deal.name | Project Name |
owner.name | Sales Executive |
deal.company.name | Client Name |
company address info | Service Location |
Revenue Sync
The opportunity amount is updated with the Total Contract Revenue.
Revenue Information Syncing from ScopeStack back to your CRM

We support syncing back the projected revenue to the opportunity in your CRM. To complete this update, press the Update CRM button next to the project name on an approved project.
We also automatically update the revenue when a project is submitted for approval in ScopeStack. In most CRMs, you have the option to skip this automated update if you would like. You can check this option in the Connected App settings area for your CRM.
Syncing Frequency
Due to API rate limits on most common CRMs, we sync opportunities every hour at half past the hour:
At the half-hour (10:30 am, 11:30 am, etc.), we sync open/closed opportunities.
Opportunity State
Open Opportunities: Each platform has a different way to indicate that an opportunity is “open.” This could be a boolean flag (true/false) or a status. We query the CRM for opportunities that match the criteria and then iterate over the results. If we have not previously seen an opportunity returned from the CRM, we create a local record for it. If we have previously seen it, then we update any details that changed.
Closed Opportunities (literally, "Not Open" Opportunities): We query the CRM and ask for “opportunities that are not in the open state.” Any opportunity that is returned from the CRM has a “closed” flag set in ScopeStack. When that’s set, it will no longer appear in the “CRM Opportunity” drop-down.
We also support the customer specifying statuses of their choice that indicate “open.” Based on how an account defines “open," this can change the closed status definition. For example, it may mean “the closed flag is set” or “opportunity status is not one of the open statuses.”