Linking a Process Template to a Status
Each process template can be linked to one or more statuses. In this way, when a contact's or project's status changes the software can add milestones from the linked template(s) to that contact or project.
Note that a template may be linked to more than one status, and a given status may be tied to more than one template.
When a user changes a contact or project status, and that status is tied to one or more templates, they are presented with a dialog asking if they'd like to apply the template's milestones to the project.
Learn more about all this here: Milestone Templates
Both the contact and project status fields have OnObjectModify script triggers tied to them. In Contacts this calls the script "Contact Status Changed" and in projects the trigger calls "Project Status Changed"
This project script "Project Status Changed" does several things:
The contacts version of the script is much simpler and just looks for Process Templates, though it can be expanded upon.