Questions? Feedback? powered by Olark live chat software

Milestones PM+ Free Edition Admin Guide

Updated August 30th, 2016.


This guide covers your setup and understanding of Milestones PM+ Free Edition, the free version of Milestones PM+. In general, when we make mention to Milestones PM+ in this document, we are referring to the Milestones PM+ Free Edition version, but we will call out our premium/paid product, Milestones PM+ Premium Edition in situations where limitations do apply with the free version. If your question or need is not covered in our admin guide, we recommend that you purchase our Upgrade and Support Plan to get assistance with your implementation. This bundled offering includes your activation of Milestones PM+ Premium Edition (paid version) and our fantastic technical support.

Product Installation & Permission Sets

Milestones PM+ can be installed into a professional edition org or higher. 

Installing Milestones PM+ is easy. Just click the green “Get It Now” button on our AppExchange listing and follow the steps in the wizard. Please note that any Salesforce administrator will have access to Milestones PM+. If there are non-administrator users that you want to grant access to the app, please assign the Milestones PM+ Full Access permission set to the user record.

Here is more info on how to assign permission sets to a user:

Lightning activation

Out of the box, Milestones PM+ works well in Lightning. We also added 3 custom lightning pages that work much better than the default Lightning experience. These pages are: 

  • Lightning Milestone Layout
  • Lightning Program Layout
  • Lightning Project Layout

To use these you must activate them by following these steps:

  1. While in the Lightning UX go to Setup.
  2. Type and click on Lightning App Builder.
  3. The 3 pages will be listed. Click view next to the one that you want to activate.
  4. In the top right click Activation.
  5. Finally, click activate and assign. This will overwrite the default lightning page layout.

Note: You will still be able to use our custom page and be able to edit your page layouts with different fields just like the other layouts to configure and customize the look and feel of our custom page.


If you are on the free edition, you will need to add the users that you want to use the app. To do so please refer to the steps outlined by Salesforce found here Assign User to Installed Package

Product Overview Video

Feel free to check out our demo video on youtube.

Upgrading Milestones PM+

Please read the following upgrade instructions carefully!

  • If you are upgrading an existing release of Milestones PM+ (namespace = MPM4_BASE), just click the following links to upgrade:

  • If you are upgrading an existing release of Milestones PM (unmanaged or managed), please read on to learn about installing Milestones PM+:

    • You can install Milestones PM+ along-side Milestones PM as it is separate app. If you need to retain old project data (including custom fields and relationships), we recommend that you contact us for a data migration quote unless you are really good with salesforce data loading (ETL) tools. Most of data migration take no more than 8 hours. If no data retention is necessary, you may uninstall or delete Milestones PM when ready.

    • Migrating Your Milestones PM Projects - Please follow these sub-steps.

      • Please note that this procedure will not export your custom fields, nor does it include any customizations that you have made. Again, if you need assistance with a complete data migration option, or any data migration in Salesforce, please let us know.

      • In Milestones PM, you can export each relevant project that you wish to be migrated from MPM into an xml file that is compatible with MPM+.

      • In Milestones PM+, you can then import each exported MPM file to create a project in MPM+.

      • When you are happy with everything copied over, you may uninstall MPM, which deletes all your project data.


  • If you would like to receive answers to basic questions about Milestones PM+, view our online support group here. Priority response time is given to Milestones PM+ Premium Edition customers.

  • If you would like to report a bug/defect, submit a case by emailing

    • Do not contact resources directly as they may not necessarily be available that day.

  • If you need technical support, please purchase our Upgrade & Support Plan. Learn more about our Plans and Pricing here.

  • Indicate the following details in each requested:

    • Affected user / business unit

    • Affected record

    • Expected results

    • Actual result

    • Confirm remote login access has been granted


Milestones PM+ is native project management app for Salesforce and is easily customizable by an experienced Salesforce Administrator. You own your project management methodology, so we think you should own your project management solution as well. Our solution can be continuously adapted to meet your project management needs. This is why we offer Milestones PM+ Free Edition. It gives you the chance to experience the solution, map out your project management business process, implement project templates, and get off the ground with a more effective project management solution.

Who is Milestones PM+ Suited For?

Milestones PM+ is ideal for existing customers of Salesforce that are now looking to mature their organization’s usage of Salesforce by implementing a project management solution. Any project management solution consists of a project management methodology, a tool/app, and users who represent project senior leadership, project managers, and project team members.

Milestones PM+ is flexible platform to meet most project management models and 100% of your project management requirements. Our solution is best for those organizations that view their project management process almost like a manufacturing process with fixed phases. Each phase can have a set of tasks and each phase generally goes in order. Each project may bring with it an additional phase or two or an addition task or two (this is what makes a project unique and difficult), but in the end, baking a cake is baking a cake. With Milestones PM+, you can still have multiple templates for each project type, but generally, your project managers/coordinators are not tasked with re-inventing the wheel each time nor are they truly delivering something truly unique to each customer- they are working off a template or master recipe/outline. In a nutshell, if you can boil down each of your project types to a template currently found in a document, spreadsheet, or MS project plan file, then Milestone PM+ is the correct solution for your organization.


To customize how Milestones PM+ behaves, you must modify custom settings. To find the custom settings page, please go to Setup>Develop>Custom Settings and click “Manage” next to Milestone1 Settings. Think we are missing a custom setting? Please request a new feature by emailing us at

Auto UnFollow A Complete Task - When a Task is marked 'Complete', Automatically unsubscribe the Assigned User from the Chatter Feed for the Task.

Auto Follow A Task - When a Task is Assigned to a User, automatically subscribe the user to follow the task.

Auto Unfollow Reassignment - Automatically unsubscribe the currently assigned user from the task when it is reassigned to another user.

Default Milestone Alias - Insert a valid alias milestone by default to receive the mail about task's creation when a alias is not specified in the mail's subject. (Premium Edition Only)

Auto Milestone/Task Completion - When enabled:

        -If a milestone is complete, all of the tasks belonging to the milestone will be marked as complete.

        -If all of the tasks belonging to a milestone are complete the milestone will be marked complete.

Custom Task Sort Order - When Defining the sort order please input a coma separated value list using field API names. You may also define ascending or descending order by including ASC/DESC. For example: Start_Date__c ASC, Due_Date__c ASC, Name ASC

Custom Milestone Sort Order - When Defining the sort order please input a coma separated value list using field API names. You may also define ascending or descending order by including ASC/DESC. For example: Kickoff__c ASC, Deadline__c ASC, Name ASC

Active Statuses - Sets the default active statuses on a project. Each value must be enclosed in single quotes. Additional values must be separated by a comma. If populated, only projects with statuses equals to one of the values are displayed on the Summary page, otherwise, all projects appear.

Realtime Project Creation - The project creation process will happen in realtime with this setting enabled. If this setting is disabled the project creation will happen in the background and may take a few seconds before the project is created.

Fiscal Year Offset - The month number the fiscal year begins on.

Custom Setting Picklist Filter #1 - Enter single field's API name on the project object. Field must be a picklist field.

Keep Project Template Assignments -  When this setting is selected, the assignment fields on the project, milestone, and task objects will be exported/imported with the project templates. (Premium Edition Only)

Custom Milestone Email Field - This is the field on the milestone object that will be used for the email template notifications. If left blank, the notification email address field will be used. (Premium Edition Only)

Custom Task Email Field - This is the field on the task object that will be used for the email template notifications. If left blank, the email will be sent to the address in the standard notification email field. (Premium Edition Only)

Default Email Template Folder - Email template used by default (Premium Edition Only)

Disable Resource Assignment Notification - When checked resources assigned to tasks will not receive notifications when they have been assigned to a task (Premium Edition Only)

Disable All Resource Email Notifications - When checked resources assigned to tasks will not receive notifications when they have been assigned to a task, or when a predecessor task has been completed. (Premium Edition Only)

Email Template Folder Override - Overides the Default Email Template Folder custom setting by allowing you to enter the field name that will be used to source the ID of the email template folder where you will store your project email templates. (Premium Edition Only)

Sync Tasks Events When in Proj Planning - When unchecked: Projects with a status of “Planning” will not sync Tasks to SFDC Tasks/Events. But when the Project status is changed to “Active” all of the Tasks will then be synced to SFDC Tasks/Events (Premium Edition Only)

Sync on Predecessor Task Completion - When this setting is enabled successor project tasks will only be synced to Salesforce tasks/events when its predecessor project task is marked complete. (Premium Edition Only)

Display Tasks On Program Gantt Chart - When checked, the program gantt chart will display Projects, Milestones, and Tasks.

Disable Deletion on Project Plan Page - When disabled the delete column will not be displayed on the manage project plan page. (Premium Edition Only)

Allow View State on Gantt Chart - Allows for keeping track of collapsed settings in the gantt chart when going to print or refreshing the page.

Show Resource on Gantt Chart - Show the resource of the task on the gantt chart (Premium Edition Only)

Disable Parent/Child Functionality - This setting is used to prevent unnecessary queries from being run when parent/child relationships are not being used.

Usage of Limits - Percentage of usage of limits to use. For example if you set it to 100 it will use up to 100 queries in an execution context because that is 100% of the limit.

Disable Triggers - When this checkbox is checked, Milestones PM+ triggers will not run.

Sync Task With Actual Start Finish Dates - Syncs Start Date and Due Date with the values of Actual Start Date and Actual Finish Date


We have a few add-ons that will enhance your Milestones PM+ project management workflow. We’ve included just a few use cases for each of the various add-ons below along with install instructions:

Lookup Helper Add-On

To use Lookup Helper, you must install it first from our Lookup Helper AppExchange listing.

  • Link Projects Automatically To The Program Object

    • If you already have a field that describes what you would consider to be a program on your project object, you can use that field value in Lookup Helper to automatically set the lookup for the Program and attach it to the Project. This allows for Program-level reporting and roll-ups.

  • Display Milestones PM+ Project Tasks Under An Account (or any other CRM Object)

    • Use Lookup Helper to automatically populate the packaged account__c field on the project task custom object based upon the project’s account value.

  • Link Projects Underneath Geographic Regions or States

    • If you report on your projects by state or region, you can use Lookup Helper to automatically group all your projects under a single region or state. With this scenario, you use the account’s billing state to set the project’s state. You can then roll-up and easily report on project information by state or region.

Rollup Helper Add- On:

To use Rollup Helper, you must install it first from our Rollup Helper AppExchange listing.

  • Use Rollup Helper to customize % complete tracking. For example, with Milestones PM+ out of the box, the percent complete field is based upon the number of tasks completed / total number of tasks. If you would like to calculate a percent complete field for milestones completed, you would need to use Rollup Helper in order to complete the calculation. This is because you will need to be able to count the total number of milestones under a project, and count the number of milestones that are completed.

  • Use Rollup Helper to implement any custom date rollups. For example, to calculate and show the earliest project date on a program as the program start date on the program page layout.

  • Use Rollup Helper to help build custom embedded analytic reports on any page in Salesforce to show custom project dashboards. For example, use Rollup Helper to create a rollup of the count of risks and issues onto the project and then create a project-based report that includes these in a report chart and embed the report chart on the project page.


A Note About Workflow

You will notice at various points in this admin guide that we make reference to Salesforce Workflow. For the sake of avoiding ambiguity, we are referring to the legacy Salesforce workflow engine and not the Salesforce Process Builder and/or Flow workflow engine that is still being enhanced and fixed (beta). (68+ known issues as of this update). Passage Technology can easily setup these workflows for you to make a seamless implementation for you if you purchase our Milestones PM+ Upgrade and Support Plan.

Private Projects

By default, projects are set in the organization wide default settings as Public Read Only. This means that any users with access to the app and at least read access to the Projects tab and read access to the Project object will have access to view all projects.

If there are groups of users or individual users who should see less than all projects, or you want to limit access to projects to just those a project manager / user owns, then we would recommend that you change your organization wide default to Private. Then only those projects or milestones shared on a read or read/write basis to other users by the Project Manager or via Automated Sharing Rules can be viewed. The way that these sharing rules are created is manually via the Sharing Button or via Sharing Rules.

Using Project Templates

You may create project templates for each of your project types out of the box. Please be advised that there are limitations with the Free Edition of Milestones PM+. For example, you cannot export custom fields or the assigned to field in your project templates. To gain these additional features, please upgrade to Milestones PM+ Premium Edition to get the Advanced Project Templates feature. 

A template consists of a project, their milestones, and each milestones' tasks.

To create a template, create a project, add milestones to the project, and for each milestone, add tasks.

Pay special attention to predecessor’s between milestones and tasks and adjust all the dates to match your expected/target /average durations. Review this with your team. After this review, click the "Export Template" project. This will create your project template!

After creating a project template file, use the "Import Template" tab to create a project from the template file.

IMPORTANT: When you use the import functionality, it will not change any of the dates in the template. To mass update your milestone and task dates, we recommend using the Project Configuration Button on the Project Detail page (after you initially import) to shift the project ahead or behind by N number of days. If you would like the dates to be set automatically, please use the automatic project creation process.


You can also automatically create projects from other objects in Salesforce and set the kickoff date to the import date. See the "CREATE PROJECTS FROM AN OPPORTUNITY / ANY OBJECT IN SALESFORCE' section for more details on this.

Please read our Template Training Guide to learn more about the process of managing templates.

Cloning Limitations:

  • Project and Milestone Clone buttons will not copy predecessor relationships.

  • We do not recommend using the clone buttons as the clone process will copy bad date data that has been entered by the user. We recommend using templates instead.


You can easily link / relate any object in Milestones PM+ to any object in Salesforce. Doing so will allow you to implement new functionality in Salesforce such as:

  • Displaying project(s) that have been worked on for a client opportunity.

  • Displaying cases underneath a project for issues tied to the go-live of something.


Automatic project creation process is great way to enforce consistent template utilization within your project management organization and it supports the automatic assignment of a project kickoff date based upon when project creates starts.

In order to setup project template creation automatically from any object in Salesforce, you will need two main variables to be managed by your users or your workflow. One variable will be the template name to use when a project is to be created from another object and the second variable is the name for your project. In most implementations, you will have your users either populate a custom text field or select a picklist field to select a template. If you are going to go down the path of implementing a picklist field, you will want to make sure that you do not default the picklist field to a specific template name value as then the trigger that is deployed behind the scenes will never fire. Also, it is important to note that if you are using any workflow as part of your solution, that you use the legacy workflow builder of Salesforce and not the new Lightning Process Builder. The new Lightning Process Builder has some issues that prevent it from being used with our solution reliably at this time due to its lack of debugging utilities. Problems are often extremely difficult to isolate, and it is much easier to fix a problem when it does arise.

To get started with enabling this process, please follow these steps:

1) Log into your sandbox.

2) First create a picklist field in your sandbox on the object where projects will be auto-created from and populate the picklist with options that match the same values as your project template document names / templates names. Jot down the name of the api name for this field (E.g. Project_Type__c)

3) Click on your name and then select "Developer Console".

4) Go to File>New>Apex Trigger

5) Enter the trigger name and select the object that you want to create project automatically from. For the trigger name we recommend "MPM4__Opportunity_Project_Creation.

6) Copy and paste the template trigger code on the next page, and replace variables accordingly. Make sure you have "after insert,  after update) in the parenthesis.


trigger MPM4_<Your_Object_Name>_Project_Creation on Your_Object_Name__c (after insert, after update) {

    Type pcu = System.Type.forName('MPM4_BASE', 'Milestone1_Project_Creation_Utility');
          if(pcu != null){
            MPM4_BASE.Milestone1_Project_Creation_Utility projCreationUtil = (MPM4_BASE.Milestone1_Project_Creation_Utility) pcu.newInstance();
projCreationUtil.CreateChildProject(trigger.oldMap, trigger.newMap, new Map<string, object>{
'projectCreationField' => 'field_api_name__c',
'projectLookupField1' => 'field_api_name__c',
'projectLookupField2' => 'field_api_name__c',
'secondaryLookup' => 'field_api_name__c',
'projectNamingConventionField' => 'field_api_name__c'


In the CreateChildProject method, there are multiple parameters.

The 'projectCreationField'  parameter is a MANDATORY text field representing the API name for the field containing the value that represents which project template document to search for. It also is the field that when set triggers project creation. Important: You will want to make sure that when creating project templates that you have your template named (document named) according to the value specified by this field. For example, if the value in the API field name referenced by the projectCreationField parameter is "Standard", you will need to make sure that you have a project template named, "Standard" or containing the word "Standard".

The 'projectLookupField1' parameter is a MANDATORY text field representing the API name for the primary lookup on the project object that will connect to your newly created object to the parent object on which the project was automatically created.

The 'projectLookupField2' parameter is an OPTIONAL text field representing the API name for a second lookup on the project object that will connect to your newly created object to an additional lookup field NOTE: If you are using the secondaryLookup parameter to determine the source for the ID field to use for the secondaryLookup, you will need to set this field for where to put this ID field on the Project custom object.

The 'secondaryLookup' parameter is an OPTIONAL text field representing the API name for an additional lookup field on the parent object on which the project was automatically created. For example, Opportunities have accounts as their parent (grandparent to the project) and if you are creating a project from an opportunity, you can set the Opportunity.'AccountID' api name / field name value to use in this parameter to relate the project to both the opportunity and it's account.

The 'Project_Naming_Convention__c' parameter is a MANDATORY text field representing the API name containing the field or formula field that sets the name of your newly created project.

If you need assistance in deploying this trigger or changing your setup of how projects are created automatically , please let us know. We presently support creating a child project off any object (e.g. opportunity), but can set this up to run differently based on your requirements (e.g. an opportunities products can be used to select the template, a project can support being tied to multiple child opportunities).

TIP: You can use Rollup Helper to rollup the product(s) on an opportunity, and then use that roll-up field as part of workflow that triggers project creation.

TIP: If you have a third (or even more) lookups to set on the project object you can use our other app Lookup Helper to accomplish with clicks and not code.

Trigger Test Method

Once the Trigger has been created you will also need to create a test method for the trigger in order to deploy it into a production environment. Below you will find the code you can use as an example to build your trigger.

PLEASE NOTE: If you have any extra required fields on Account or Opportunity you will need provide values for those fields in the constructor before inserting the record.


// All test methods in this class can access all data.


public class Opportunity_Project_Creation_Test {

    static testMethod void Opportunity_Project_trigger_Test() {

         MPM4_BASE__Milestone1_Project__c testProj = new MPM4_BASE__Milestone1_Project__c(name = 'test456');      

         Account testAcc = new Account(

                                 name = 'test321'


         insert testAcc;

         Opportunity testOpp = new opportunity(

                                     name = 'test123',                                     

                                     Accountid =,

                                     Territory__c = 'Lung - Other',

                                     CloseDate = Date.Today(),

                                     ForecastCategoryName = 'Closed',

                                     stagename = 'Closed Won'



        insert testOpp;

        testOpp.Project_Type__c = 'Standard';

        update testOpp;


        testProj = [Select MPM4_BASE__Opportunity__c, id from MPM4_BASE__Milestone1_Project__c where MPM4_BASE__Opportunity__c =:];

        system.assert(testProj != null, 'Project not created!');                                                   



What is each Object / Tab used for?


Implement programs to group your projects together and display on the program-level gantt chart. To add your existing projects to a program, please make sure you add the Program lookup field to your page layout if not already displayed there and also add all your programs using the Programs tab. You can also think of a program as a parent project.


Use projects to track anything that has a start or a finish date. A project has multiple milestones. Projects can even rollup into a program!


If you shift the project start and end date the same number of days, this will have the effect of shifting all milestones and tasks in the project. You can also click the Project Configuration button and enter N number of day (positive / negative value) to bring earlier or delay a project. If you use the button, it will take a few moments for the project to reflect the updates and requires a refresh.


On the Project page there are some 'Status at a Glance' charts to help you track task status and budget status. If you you think you will need to change those charts or create different project-level metrics, we recommend that you look into Rollup Helper to calculate any project metrics / KPIs. If you want to graph any project metric (as we have done with the sample charts), we recommend using Embedded Analytics as that is a completely native solution and fully supported.

You can have a unique project number for each project  by creating a custom field and using the auto-number custom field type. Here is a list of the custom-field types supported in Milestones PM+:


Use milestones to track a component of your project that have a start or a finish date. Milestones can even have multiple tasks or be related to any object in Salesforce! Milestones can be linked to other milestones to form dependencies that are displayed on the Gantt Chart.


When you extend an end date on a milestone beyond the end date of the project the project will be extended.


You may use the Templates functionality for the entire project work breakdown structure (Project, Milestones, Tasks) to be copied.


The quick task update visualforce page component can be added to your Milestones detail page to allow multiple tasks to be marked complete, or for multiple date changes to be updated en masse. You can also use the field set associated to the VF page component to change the fields that appear for the user. When adding the visualforce page component to your Milestones detail page, we recommend setting the parameters as depicted in this image to ensure enough tasks will display for each milestone, and if not, to enable showing scroll bars.


Do not disable the 'Milestone Kickoff must not be earlier than its Predecessor's Deadline' validation rule. Disabling the validation rule will allow for potentially bad data to be created in a project while the user is editing milestones, or during the automated project creation processes that we have (auto-project creation processes, import project).


Use tasks to hold individuals accountable for delivering on specific time-sensitive items. Milestones can even have multiple task or be related to any object in Salesforce!


When you extend an end date on a task beyond the end date of the milestone, the milestone will be extended. Successor tasks will also be shifted over as well.


It is important to note that when you save a task as complete, the default behavior is for your start date to be used as the actual start date (if one is not provided) and that the actual finish date will be set to today (if one is not provided). Changing the start and finish dates whilst marking a task complete, may not apply the correct dates to your plan. If you want to mark a task complete, first make sure that the dates are correct for start and due date first before marketing the task complete. Alternative, you may want to add the actual start and finish dates to your task layouts and Quick Task Update visualforce page component (on the milestone page) to ensure the correct actual start and finish dates are applied to your plan.


You can put time records on each project task using the “New Time” button on the “Times” Related List of your Tasks Detail Page. In Milestones PM+ Free Edition, this is a bit tedious, so if you are looking for an easy to use time tracker for inputting time on multiple tasks at once in a grid-like format, please upgrade to Milestones PM+ Premium Edition.


Use logs to log critical decision, issues, or risks.


Use the calendar to view deadlines of all sort in a calendar format.


You can display a gantt of child projects under a program, a project's milestones, or even a milestone's tasks.

The sorting logic on the gantt chart by default is to order in an ascending fashion, first on the start date, then the end date, and then finally on the name of the item.

The sort order of the gantt chart tasks can be configured by an admin using the 'Custom Task Sort Order' custom setting (Develop>Custom Settings, etc).

Some customers who make extensive use of predecessor relationships between tasks may want to modify this custom setting as follows:

Predecessor_Task__r.Predecessor_Task__r.Due_Date__c asc, Predecessor_Task__r.Due_Date__c asc, desc, Start_Date__c asc, Due_Date__c asc, Name asc


Shows a milestone-level gantt chart of each project with option to search for a project. Can drill down into each project. The layout on the Summary tab is presently fixed, but we hope to improve the configurability of this page in the near future.

Known Isue: You may find that when clicking on the Summary tab you get the following error, “Attempt to de-reference a null object

An unexpected error has occurred. Your solution provider has been notified. (MPM4_BASE)”

If you get this error, please perform the following steps:

  1. Go to Setup>Develop>Custom Settings

  2. Click ‘Manage’ next to Milestone1_Settings

  3. Click the FIRST ‘New’ button at the top of the page to create a new default organization wide custom setting for Milestones PM+.

How do the predecessor/successor dependencies work?

Predecessor/successor dependencies are used to depict that one item relies on the completion of another item in order to continue work. If a predecessor milestone or task is shifted (a "Date Shift"), the successor milestone or task will be shifted over the same number of days. What we mean by a "Date Shift" is that both the start and end dates are shifted by the same number of days.

In order to enact a "Date Shift" at the milestone level that cascades down to its tasks, both the start date AND end date have to shift by the same number of days. If just the start date is shifted, this will not influence the task dates on the updated milestone. Please note that when the end date on the milestone is shifted, then the successor milestones will also have their dates changed and their tasks' dates will also change.

Date Shift Limitations:

  • Please note that when changing the start date or due date on a predecessor task in the mass task update grid, the successor task's dates will not be shifted using the same logic as documented above.

Predecessor Limitations:

  • A project task can only have one task predecessor. If you wish to have a task linked to multiple task predecessors, we recommend that you group the tasks that are the predecessors into one milestone and make that milestone a predecessor milestone to a milestone that contains the downstream task in question. If you still require further customization of this default behavior, please contact us to see about getting this new feature implemented into our product.

  • A project milestone can only have one predecessor project milestone. If you still require further customization of this default behavior, please contact us to see about getting this new feature implemented into our product.

  • A project task can only become a predecessor project task if it is on the same milestone as the successor project task. If you still require further customization of this default behavior, please contact us to see about getting this new feature implemented into our product.

How do I setup task reminders?

If you are looking for a more standardized way of reminding your users about tasks just like Salesforce does with tasks on the homepage and those pop-up reminders that you get on login, we have this functionality in our Premium Edition. With the Premium Edition, we integrate Salesforce tasks/event with Milestones PM+ tasks. The Premium Edition has notification features such as the ability to use native task reminders for tasks due or can even notify downstream task owners when a predecessor task gets completed.

Can I import data into Milestones PM+ from another app (e.g Milestones PM, MS Project, Primavera)?

Yes, we recommend using either the Salesforce app (cloud app) or Salesforce Data Loader app (desktop/client app) for this. We recommend these solutions just for one-time data migration. If you need assistance with a data migration, please contact us.

Can I import MS Project files?

This functionality is not currently available, however, if you need to get a third party app's project plan migrated into Milestones PM+ to use as a template for future usage, the current method is to create it as a project and copy and paste everything in. It should take about 30 minutes to 1 hour to do this and it should be a one-time process done by an admin if possible as this is a bit tricky with all the dependencies that have to be managed. Once your project is setup, just click the 'export template' button to turn the project into a project template.

How do I change the tabs / labels / perform translations?

To change labels for a custom Tab:

  1. Navigate to [Your Name]>Setup.

  2. Under App Setup expand Customize

  3. Expand Tab Names and Labels.

  4. Click Rename Tabs and Labels.

  5. Scroll down to Custom Tabs.

  6. Click Edit next to the custom tab you want to rename.

  7. Change the values in the Record Name, Singular, or Plural fields to ones that make sense for your organization.

  8. Click Save.

  9. Repeat steps 6-8 for each tab you want to rename.

To change labels for a custom Field:

  1. Navigate to [Your Name]>Setup.

  2. Under Administration Setup expand Translation Workbench.

  3. Click Override.

  4. Change Package to Milestones PM+.

  5. Change language to appropriate language (e.g. English).

  6. Change Setup Component to Custom Field.

  7. Pick the Object that contains your Custom Field.

  8. Make sure Aspect is set to Field Label.

  9. Double click in the Field Label Override cell for the label you want to change. Input your new label value.

  10. Click Save button.

To change labels for a custom Related List:

  1. Navigate to [Your Name]>Setup.

  2. Under Administration Setup expand Translation Workbench.

  3. Click Override.

  4. Change Package to Milestones PM+.

  5. Change language to appropriate language (e.g. English).

  6. Change Setup Component to Custom Field.

  7. Pick the Object that contains your Custom Related List.

  8. Make sure Aspect is set to Related List Label.

  9. Double click in the Related List Label Override cell for the label you want to change. Input your new label value.

  10. Click Save button.

Resource Assignment

Assigning Tasks To Salesforce Users

In the free version of Milestones PM+, each task must be assigned to a single task owner and that task owner must be a Salesforce user.

You can assign a task to a user manually or automatically. Milestones PM+ assigns owners to projects, milestones, and tasks automatically based on the user performing or triggering the project import from a template file. Milestones PM+ also changes owners automatically on milestones and tasks when the higher level object’s (parent object’s) owner changes and the old owner matches. You can automate other owner changes using workflow field updates.

Please read on to review our additional resource assignment capabilities.

Assigning Tasks To Non-Salesforce Users That Don’t Require In App View/Update Access

If you are interested in assigning tasks to non-salesforce users and they don’t require in app view/update access, please upgrade to the Milestones PM+ Premium Edition. This package has our ‘Resource Assignment’ feature.  The resource assignment feature includes access to resource object and allows for a seamless process of linking a task to a resource (who is a contact in your database). With the Premium Edition, you will be able to create workflow to drive your business process further with this resource object for various notification email alerts. Please note that workflows are only available with Salesforce Enterprise Edition orgs or higher (or orgs having the API & workflow add-on purchased from Salesforce).

Assigning Tasks To Non-Salesforce Users That Require In App View/Update Access

If you are interested in assigning tasks to non-salesforce users and having them view or update data directly, please read the next section.

Does your app provide external user access?

Yes, this is possible with some advanced configuration and may require additional Salesforce licenses to be purchased from Passage Technology or Salesforce. If you are not comfortable with advanced configuration or not sure which licenses are best for you to purchase,  please subscribe to our Upgrade and Support plan for implementation assistance. Please read on to learn about the various license options available.


This option provides the best blend of functionality and security. This option requires setting up direct access to the system via a Salesforce community portal. In this case, we will setup a community for you to have all your external  / non-salesforce team members access the application securely regardless of having a Salesforce user login today. In this scenario, portal licenses / community licenses are required for users to access the portal. Please contact us for assistance in procuring these licenses through Salesforce.


This alternative allows you to give your external  / non-salesforce team members a similar user experience as your internal users. This option requires purchasing a license either from Passage Technology (single app license) or from Salesforce (chatter plus, one app, or EE licenses - warning: license names change all the time with salesforce, please contact us if you are confused by these options). This option doesn't require a portal to be setup, but may still require security configuration and still requires additional licenses for your customers and partners and other external team members. In this scenario, you will setup a restricted user profile for your external customers or partners to access Salesforce securely.

For assistance with implementing any of these options or related workflow, please subscribe to the Upgrade and Support plan.

Assigning Tasks To Multiple Owners

If you are interested in assigning tasks to multiple resources, please contact us for a quote on delivering this functionality / customization per your needs.

What about document management?

Document management is not really a feature built into Milestone PM+, but you can use Salesforce document management features (Salesforce Content, Chatter files, Notes and Attachments, etc) to get more functionality in this space.

What is your release process? Where do you keep release notes?

Our release process is documented here. We will periodically document releases here.

Will Milestones PM+ interfere with my other applications or deployments?

No, in general Milestones PM+ runs in its own “namespaced”  managed package.

  • Managed package code is not included in the required code coverage calculation for deployment.  The 75% requirement is on all Apex code in your org's namespace.  Managed code has its own namespace, so it is not included.

  • When deploying to production, all tests in your org's namespace will be run.  Managed tests will not be run by default.  

  • If the deployment package explicitly marks runAllTests to true, managed tests will also run.  These will need to execute without any failures should the flag be set.  Despite this, the 75% requirement for code coverage is still only on unmanaged code.

clone any field using the field set

With Milestones PM+ on the project, milestone & task level, you are given the ability to add fields to the field set, so that they can be cloned: 

Milestones PM+ Clone Any Feature

Project buttons (Export template, project configuration, and project report)

The Project object has some pre-built custom buttons that can be added/removed to the page layout on the Project layout.

Export Template - use this the export a template based off of the current project. Make sure you have the project defined exactly how you want it before exporting because changes to the project after exporting it will not update the exported file. You would need to export the template once again.

Project Configuration - this button allows you to shift the project by a certain number of days. You could also check an option to exclude weekend work. This will adjust the project to account for no weekend work and your tasks/milestones will not land on the weekend.

Project Report - this will open up a report on the current project so you can have an overview on the health of the project.

updating resources

If you are upgrading from a version lower than 7.24 to a version equal to or greater than 7.24, you may need to update your resource fields. Version 7.24 has deprecated the Assign To field on Tasks in favor of a more dynamic field called Resource. The resource field can be a contact or a user. The contact field is only available in Premium Edition. To accommodate for this we needed a new object called Resource that can hold either a user or a contact as the resource. In order to transfer your existing Assign To data to the Resource field we will need to first create a resource for each user that doesn't already have a resource aligned with the user and also update all of the resource fields that are currently blank with the value in the Assign To field. To do this just go to the Getting Started page and press execute on the button in the Update Resource section. Note: you can disable resource task assignments before running the process to ensure that users do not get flooded with resource assignment emails.

Create multiple projects simultaneously

You can now create an automatic project creation trigger and then go to the list view of the object and edit multiple instances of that object and save them at once. It will then create projects for all the records that meet the criteria defined in the automatic project creation trigger.

Custom gantt colors

You can change the color of the bar on the gantt chart for each record. To do so edit the field called Gantt Color on the task/milestone object and put the html color code in the field. For example putting a value of 0000FF in the field would make it blue.

internal/external tasks and milestones

Check/uncheck the internal checkbox field to define a task/milestone/project as internal only. If it is internal you can filter it out when viewing the Gantt Chart in the print gantt chart view. This allows you to print a version that hides internal tasks from your clients.