Manage your sales from Salesforce Opportunity to Forecast Project

Our Salesforce integration contains a variety of useful tools to help you manage your sales from Salesforce Opportunity to Forecast Project. Note: this integration only works for Salesforce Enterprise Edition and up.

Integration Setup

To start the process of installing the Salesforce integration, go to the Salesforce integration page in your Forecast company.

    1. Click the INSTALL button. This will redirect you to Salesforce.
    2. Log in to an admin account in Salesforce (on the instance where you want to install the integration).
    3. Select the Install for All Users option and press Install.
    4. Tick the Yes, grant access to these third-party web sites and press Continue.
    5. Wait for the installation to complete and click the Setup integration button to be redirected back to the Salesforce integration page.
    6. Once the Salesforce integration page is loaded, it will immediately begin the activation process. If this flow is interrupted, you can restart it by going back to the Salesforce integration page and click the ACTIVATE button.
    7. Allow access to the requested information by following the on-screen instructions.
    8. You will be redirected back to the Salesforce integration page one last time, and your integration should now be activated!

    Package updates

    Some of the updates to this integration will require an update of the installed package. If the package you currently have installed is not the most recent, you will be presented with a banner at the top of the page on the Salesforce integration page. The banner will provide you with a link to the most recent package. Some of the functionality described on this page will require that you have the newest package.

    Configuring Opportunity to Project automation

    Now that the integration is set up, you can configure when a Salesforce opportunity should have a corresponding project created in Forecast. On the Salesforce integration page you should see a list of the opportunity stages in your Salesforce instance. The table contains the following columns

    • Order, which is the order of the opportunity stage from Salesforce.
    • Name, the name of the opportunity stage.
    • Project Stage, the project stage which the opportunity stage should map to.
    • Create Project, which indicates whether or not an opportunity reaching this stage should be created in Forecast as a project.
    • Forecast Probability, shows the probability of the project in Forecast, based on the settings.
    • Salesforce Probability, shows the probability of the opportunity when it is in the corresponding stage.

    The default setup is that the lowest order opportunity stage is set as to create a project in Forecast in with the stage "Opportunity". Since it is the lowest order opportunity stage, every other opportunity will also set the project to "Opportunity".

    In this example, an opportunity in Salesforce will only be created in Forecast when it is put into the stage of "Qualification" or "Value Proposition" in Salesforce. Once it is created, it will be moved to the corresponding stage when moved to a opportunity stage (eg. a project moving from "Qualification" to "Id. Decision Makers" will move that project from "Opportunity" to "Planning").

    For the opportunity stages of "Prospecting", "Value Proposition" and "Id. Decision Makers", the probability values are highlighted in red, as they differ. For "Prospecting" this is because the opportunity will not have a corresponding project in Forecast. For "Value Proposition" and "Id. Decision Makers" this is because that the project will be set to "Planning" in Forecast, meaning that it will be counted as having a probability of 100%. 

    Due to the way probability works in Forecast, we recommend a setup similar to this example:

    Conditional project creation

    If you do not want your Salesforce opportunities to be created as Forecast projects solely based on their stage, you can specify a Salesforce Object Query Language (SOQL) query to work as a condition.

    Once saved, every trigger from Salesforce opportunities changing stage, will have the condition checked against it in addition to the configuration of the opportunity stage table. In order for the condition to be saved, it has to be valid SOQL syntax (as verified by your Salesforce instance). Therefore we recommend that you develop the condition in a developer console in your Salesforce instance and then copy paste it to Forecast.

    • The condition is considered passed if it returns more than zero results
    • The opportunity which the trigger is regarding (ie. the opportunity that was updated) can be referred to by id with <OpportunityId>
    • When saving, the query is run against your Salesforce instance "/query" endpoint, to check that the syntax is valid. The condition is considered valid for any 2XX status code, regardless of the number of results.

    Condition examples

    SELECT COUNT() FROM Opportunity WHERE Id = <OpportunityId> AND Id IN (SELECT OpportunityId FROM OpportunityLineItem WHERE Quantity > 10,0 AND Product2Id = '01t09000001LcVQAA0')

    Checks that the opportunity has more than 10 quantity of a specified product.

    SELECT COUNT() FROM Opportunity WHERE Id = <OpportunityId> AND Name LIKE 'PRIORITY%'

    Checks that the opportunity has the prefix 'PRIORITY'

    SELECT COUNT() FROM Opportunity WHERE Id = <OpportunityId> AND Amount >= 50000

    Checks that the opportunity has at least an amount of 50.000

    Creating project by template

    By default the project created in Forecast by the Salesforce integration will be empty and to avoid tedious setup by the user every time a new project is created, you can specify which template the created project will apply. This can be configured on the Salesforce integration page in the Project Template section.

    To create a project template, specify a project in the dropdown, adjust the Reference as desired and click the add button (+). The references are what you will be selecting from in Salesforce, so choose a reference that you and your users will be able to recognize as the template. Once the template is created you can toggle what it should copy from the indicated project.

    Finally one of the templates is selected as the default, which is what is used if no template is indicated in Salesforce. If you do not wish to use templates the functionality can be disabled with the switch in the top left (Enable).

    In this table you can specify any amount of templates you require and you can even have different variants based on the same project. The only requirement is that each template has a unique Reference. Once your templates are set up or have been updated, click the Export to Salesforce to make the templates available from Salesforce. Note that if you change the templates but to not press the export button, the changes are still applied, but deleted or created templates will not be reflected in Salesforce, meaning that they will not be usable.

    To actually select a project template, an opportunity should have a template selected as it is created in or moved to an opportunity stage which would trigger the creation of the project. The input for selecting a project template is labelled Forecast Project Template.

    Manual linking and unlinking of a project

    From the project settings page you can manually select an opportunity from a dropdown to link that Forecast project to that Salesforce opportunity. Once linked, data is sent to your Salesforce instance, as when a project would be created from an opportunity entering a configured opportunity stage as described above.

    From the project settings page of a project you can also unlink a project that is linked to a Salesforce opportunity. This will remove the connection to Salesforce and delete the corresponding object data in Salesforce. Note that this will only delete the object created by Forecast in Salesforce and not change the opportunity itself.

    Forecast Project record

    Once an opportunity has a corresponding project in Forecast, we create a Forecast Project record in salesforce and link it to the opportunity. The Forecast Project record contains budget number, progress and some overall data, all of which is also reflected in the opportunity object

    Field Description SF API Name*
    Forecast Project Name Name of the project Name
    Start Date Start date of the project
    End Date End date of the project
    Project Progress Project progress
    Stage Which stage the project is in
    Status The raw status of the project (RED, YELLOW or GREEN)
    Project Status The status of the project interpreted to colors.
    Project URL URL to the project
    Project Contact Contact person of the project
    Baseline budget numbers Baseline revenue, cost, profit and margin.
    Planned budget numbers Planned revenue, cost, profit and margin.
    Actual budget numbers Actual revenue, cost, profit and margin.
    Forecast budget numbers Forecast revenue, cost, profit and margin.
    Invoiced Invoiced total on project.
    Invoiced paid Paid of the invoiced total.
    Total scope Scoped hours for the project.
    Approved scope Approved scoped hours for the project.
    Reported Reported (registered) hours for the project.
    Remaining Remaining hours on the project.

    These fields are exposed through the opportunity, so they can be added to page layouts as soon as the package is installed. You can find more information on our article on utilizing Salesforce components. *Please note: all SF API names are prefixed with the package name: "ForecastAppV2".

    Account Project list

    Included in the package is also a Visualforce Page which displays the list of related Forecast Projects (via opportunities for an Account) from an accounts' page layout. The Visualforce page is called Account Related Forecast Projects.

    Data update

    There are three distinct phases in which the Forecast Project record in Salesforce will be updated:

    • Opportunity: the first phase starts as a Salesforce opportunity triggers the creation of the corresponding Forecast Project in the "Opportunity" stage. When the opportunity changes stage, it will also be updated with the most recent information from the Forecast project. In addition, a periodic update will run when changes are made to the project in Forecast.
    • Project: the opportunity is won and the project is moved to the "Planning" stage. The periodic update will be the sole way in which the information in salesforce is updated.
    • Archived: the project is moved to either "Done" or "Halted", which consequently locks all of the data in Forecast. This manually triggers a data update, to ensure that the "final" data in Salesforce is the same as in Forecast.

    Asides from the initial creation of a project, all of the data flows from Forecast to Salesforce. An exception to this rule is that the probability is synchronized from Salesforce to Forecast (if possible).


    With the package also comes a report displaying all of the Forecast Project records in Salesforce. The report is named Forecast Projects Report and is placed in the Forecast Project Reports folder in Salesforce.

    You are of course also able to create your own reports and include Forecast data in those, Salesforce permitting.

    Feature Requests

    If there is something that you would really like to see done (or done differently) in the Salesforce integration, reach out to us! As you most likely know, Salesforce is highly customizable which makes it difficult for us to make a general enough integration that anyone can use, but specific enough that it provides significant value.