In Workfront, the Templates we build for our teams tend to fall into two major categories. The first is the standard end-to-end workflow for every project type. These come pre-configured with many other settings/features to streamline creation and work management; standard folders, internal queue settings, custom forms etc. The second type of templates are setup as collections of ad-hoc tasks meant to be appended after a project is created for things that aren't done very often (custom legal approvals) or needed repetitively (extra client edit rounds).
The second template has minimal additional features, expecting the project they'll be added into already including them. Inevitably, someone creates fully new projects from them by mistake, and this creates reporting discrepancies and trouble tickets later. I have long wished for a way to block creation of new projects from those templates, while still allowing the person to append the tasks when needed.
With the implementation this year of field-level validation logic, that has finally become possible with a tiny bit of sneaky shenanigans. Credit for the original idea that started this all goes to @AmyReilly.
4 1/2 Easy Steps:
- Create a new custom form
- Put a single field on that form
- Enter a field validation rule that tests a field that is NOT on this form, but WILL be available on a form existing in a correctly set-up project.
- Unlike Display/Skip logic, field validation formulas can test against any field available while a record is being created.
- It is somewhat important that the validation rule can be satisfied from data available in the normal project, even if that means creating a hidden field somewhere else to use. If it can't be satisfied, you may frustrate the user later when they open custom forms for editing and are unable to save changes.
- Recommendation: Test against a universal and mandatory field so that the logic is automatically good, and the user never has to interact with the form again.
- Put that form on every "Attach Only" template where you want to prevent new stand-alone projects
- Optional: Consider options for removing the form automatically if you think it will cause confusion later. I'll likely automate it with Fusion, but could just as easily create a weekly clean-up report.
- Optional: Consider whether the presence/lack of this form creates any useful insights (How many projects are running from the stock template? How many are we appending extra work into, and is there a pattern by client?)
Once completed, anyone attempting to create a new project, the screenshot below shows their experience. Since my logic is checking that an unavailable field is not blank, they are unable to proceed. The form is still visible when attaching the template to a project under 'Customize and Attach', along with the customary red error icons but does not prevent the user from attaching the template anyway. I am not clear whether the logic actually doesn't trigger, or if it's smart enough to look at the data on the project it's heading into where that field is already waiting and completed.
Note: Technically, the user could circumvent the block by removing the form entirely. I'd suggest an audit report that shows you if/when that's happening. Process issues and people issues require different solutions.

Field on the form is 'DE - Product Family', but the logic references 'DE - Product'. In our instance, these are both universally available and mandatory key KPI fields on every project. Therefore I know this logic will succeed if the form winds up on a project via the 'Attach Template' menu instead.

Before Prod implementation, I'd update the form name, comments and errors with something that explains everything much better to my team. I'll also include directions on how to ask for help if the person thinks they have a reason to do what they're trying to do. Sometimes there really are exceptions, and then I have the opportunity to help them navigate that correctly. For the moment, it's Friday afternoon, and 'Lord of the Rings' jokes are happening instead. 😁