Create templates

Templates are the foundation of any blueprint. They serve as a standardized building block, ensuring consistency across projects. Each blueprint must reference a source folder containing the templates used to create sheets, reports, and dashboards for every project.

At least one sheet must exist in the blueprint folder to display a folder selection.


Using forms in templates

You can integrate forms into dashboards in Control Center templates using the Shortcut widget or Web Content widget.

Keep in mind

  • If the form is associated with a sheet in the copied folder, the dashboard copy includes the URL of the new form copy, not the original URL.
  • A dashboard global update replaces the form URL with a clone of the template form URL, making it a generic form instead of project-specific.
  • If the form link references a sheet outside the copied folder, the resulting project retains the original form URL.
  • Document and highlight the widgets on dashboards that use form links. These links are absolute to the project and not relative links.
  • Ensure that scalable links originate from active forms only. If you provision an inactive form link, the dashboard widget displays The form you are attempting to access is no longer active.

Best practices

  • Minimize cross-sheet formulas, as global updates can’t create new references.
  • Ensure sheet, report, and dashboard names comply with the 50-character limit, including any naming rules applied by Control Center during provisioning.
  • Group templates by type and purpose to enhance clarity.
  • Use conditional formatting to create consistent layouts across sheets.
  • Review and test each report to confirm whether it should pull data from the toolkit sheets or external sheets.
  • Avoid overloading templates with automated workflows and conditional formatting, as you can't scale or update these with global updates.

Limitations

  • Certain elements, such as automated workflows, conditional formatting, filters, project settings, and the sheet summary panel can’t be updated at scale with global updates.
  • Scalable form links aren’t supported in Rich Text widgets or sheet rows.
  • Running global updates, archiving, or deleting forms via Control Center doesn’t work with scalable forms.

Using summary sections in templates

The summary section in work execution sheets supports scalability and facilitates manual updates once the solution goes live.

To ensure Control Center recognizes rows as part of the summary section, add the word Summary in the Primary column, and indent all subsequent rows one level beneath it.

All the rows under the summary section provide portfolio reporting and are also known as profile data

When to use the summary section?

  • Create status-tracking metrics or KPIs, such as % complete, forecast end date, and project health.
  • Capture user-entered values for portfolio-level reporting, such as latest accomplishments or general notes.
  • Include static or one-time write values sourced from the intake sheet.

Best practices

Do

  • Indent metrics under the row labeled Summary in the Primary column.
  • Use clear and descriptive metric names in the Primary column.
  • Put profile data in a text/number column to the right of the name.
  • Lock profile data rows that shouldn’t be updated.
  • Use One Time Write when the intake sheet won’t be the source of truth for those profile data fields or those need to remain static after you've created the project.
  • Use Cell Link for fields where the intake sheet remains the source of truth for the profile data field after you've created the project.

Don’t

  • Indent rows more than one level beneath the summary row.
  • Use line breaks, colons (:), or unsupported characters in Profile Data field names.
  • Use the word summary somewhere else. Global updates identify the first summary occurrence in a sheet and use it to define the profile data section.
  • Use Project Type or Program Name as they're profile data names
    • If Project Type isn’t used as an intake field, it populates with the blueprint name.
    • If you set a Target Column, it ignores the intake and populates with the blueprint name.