Content
View differences
Updated by Dominic Bräunlein over 1 year ago
# User problem
## User
* **Admins:** Want to enforce specific naming conventions for certain work package types (e.g., invoices, vacation requests).
* **Project Members:** Need consistent titles to identify and process specific work packages.
## Problem
* Currently, users can input any title for a work package, leading to inconsistencies. For certain types of work packages e.g. invoices or vacation requests, admins want predefined title patterns to maintain uniformity and avoid errors. These patterns must include relevant attributes (e.g., author name, project name, date) but are not enforced in the current system.
#### Example
* The user creates a work package of type VACATION REQUEST
* This is needed for internal documentation of employee vacations
* The user needs to enter a subject for the work package according to a specific pattern
* At the same time the attributes needed to compose the subject are required anyway to further process the request
## Pain
* Patterns are applied inconsistently, and updates to patterns are not reflected in existing titles.
* Users must rely on verbal or written instructions to apply patterns, which may not always be accurate or up to date.
<br>
## Solution
* **Subject Patterns for Work Package Types**
* Admins can define title composition rules for specific work package types via a settings page.
* The Admin can search and select attributes or add free text in the input field.
* The options are shown as flat drop down list
* The options are current work package attributes and project attributes
* Project attributes do have the prefix "Project" e.g. "Project name"
* List of available attributes: <mention class="mention" data-id="59921" data-type="work_package" data-text="#59921">#59921</mention> **Available attributes:**
* <figure class="table op-uc-figure op-uc-figure_align-center"><table class="op-uc-table"><thead class="op-uc-table--head"><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Attribute name</p></th><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Comments</p></th></tr></thead><tbody><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p"><i>Custom Field name</i></p></td><td class="op-uc-table--cell"><p class="op-uc-p">No long texts</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Assignee</p></td><td class="op-uc-table--cell"><p class="op-uc-p">User</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Author</p></td><td class="op-uc-table--cell"><p class="op-uc-p">User</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Category</p></td><td class="op-uc-table--cell"><p class="op-uc-p"><br></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Creation date</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Date</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Estimated time</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Date</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Finish date</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Date</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Parent work package</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Work Package</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Priority</p></td><td class="op-uc-table--cell"><p class="op-uc-p"><br></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Project</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Project</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Accountable</p></td><td class="op-uc-table--cell"><p class="op-uc-p">User</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Start date</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Date</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Status</p></td><td class="op-uc-table--cell"><p class="op-uc-p"><br></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Work package type</p></td><td class="op-uc-table--cell"><p class="op-uc-p"><br></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Version</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Version</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Project<i> Custom field name</i></p></td><td class="op-uc-table--cell"><p class="op-uc-p">No long texts</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Project active</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Boolean</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Project identifier</p></td><td class="op-uc-table--cell"><p class="op-uc-p">String</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Project name</p></td><td class="op-uc-table--cell"><p class="op-uc-p">String</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Project status</p></td><td class="op-uc-table--cell"><p class="op-uc-p"><br></p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Project parent</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Project</p></td></tr><tr class="op-uc-table--row"><td class="op-uc-table--cell"><p class="op-uc-p">Project public</p></td><td class="op-uc-table--cell"><p class="op-uc-p">Boolean</p></td></tr></tbody></table></figure>
* **Proposed UI to define subject pattern:**
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/248646/content">
* **Enforced Subjects**
* Subjects for these specific types are automatically generated and read-only.
* The user should get appropriate feedback via tooltip why the subject is not editable.
* **Dynamic Updates**
* Subject updates automatically when a work package is updated.
* When project attributes there will be no automatic update of the subject.
* Remark: In a future iteration there should be a bulk update on project or instance level
* **Configuration Location**
* Patterns are set under the work package type settings in the tab "Subject configuration" (`/types/:id/edit/settings`).
<br>
# Launch and Growth
## Measures
* Increase in consistency for specific work package types.
* Reduction in user errors when creating work package titles.
* Feedback from admins on ease of setup and usage.
## Messaging
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p">Headline</p></th><td class="op-uc-table--cell"><p class="op-uc-p">Take control of work package subjects</p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">First Paragraph</p></th><td class="op-uc-table--cell"><p class="op-uc-p">With OpenProject's new automated subject patterns, you can ensure consistent naming conventions for specific work package types like invoices, vacation requests, and more. Say goodbye to manual errors and hello to streamlined workflows!</p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Customer Quote</p></th><td class="op-uc-table--cell"><p class="op-uc-p"><br></p></td></tr></tbody></table></figure><br>
## Go to market
* Feature announcement in release notes and newsletters.
* There is an opportunity to create a blog article about this feature, highlighting use cases and provide customers with a number of patterns they can copy for their workflows. Like a template provider to cover standard use cases. cases.
## Figma and mockups
https://www.figma.com/design/I2IVNb97j1fNNCs32H6p2m/Automatic-generated-subjects?node-id=0-1
## User
* **Admins:** Want to enforce specific naming conventions for certain work package types (e.g., invoices, vacation requests).
* **Project Members:** Need consistent titles to identify and process specific work packages.
## Problem
* Currently, users can input any title for a work package, leading to inconsistencies. For certain types of work packages e.g. invoices or vacation requests, admins want predefined title patterns to maintain uniformity and avoid errors. These patterns must include relevant attributes (e.g., author name, project name, date) but are not enforced in the current system.
#### Example
* The user creates a work package of type VACATION REQUEST
* This is needed for internal documentation of employee vacations
* The user needs to enter a subject for the work package according to a specific pattern
* At the same time the attributes needed to compose the subject are required anyway to further process the request
## Pain
* Patterns are applied inconsistently, and updates to patterns are not reflected in existing titles.
* Users must rely on verbal or written instructions to apply patterns, which may not always be accurate or up to date.
<br>
## Solution
* **Subject Patterns for Work Package Types**
* Admins can define title composition rules for specific work package types via a settings page.
* The Admin can search and select attributes or add free text in the input field.
* The options are shown as flat drop down list
* The options are current work package attributes and project attributes
* Project attributes do have the prefix "Project" e.g. "Project name"
* List of available attributes: <mention class="mention" data-id="59921" data-type="work_package" data-text="#59921">#59921</mention>
*
*
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/248646/content">
* **Enforced Subjects**
* Subjects for these specific types are automatically generated and read-only.
* The user should get appropriate feedback via tooltip why the subject is not editable.
* **Dynamic Updates**
* Subject updates automatically when a work package is updated.
* When project attributes there will be no automatic update of the subject.
* Remark: In a future iteration there should be a bulk update on project or instance level
* **Configuration Location**
* Patterns are set under the work package type settings in the tab "Subject configuration" (`/types/:id/edit/settings`).
<br>
# Launch and Growth
## Measures
* Increase in consistency for specific work package types.
* Reduction in user errors when creating work package titles.
* Feedback from admins on ease of setup and usage.
## Messaging
<figure class="table op-uc-figure_align-center op-uc-figure"><table class="op-uc-table"><tbody><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head" style="width:150px;"><p class="op-uc-p">Headline</p></th><td class="op-uc-table--cell"><p class="op-uc-p">Take control of work package subjects</p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">First Paragraph</p></th><td class="op-uc-table--cell"><p class="op-uc-p">With OpenProject's new automated subject patterns, you can ensure consistent naming conventions for specific work package types like invoices, vacation requests, and more. Say goodbye to manual errors and hello to streamlined workflows!</p></td></tr><tr class="op-uc-table--row"><th class="op-uc-table--cell op-uc-table--cell_head"><p class="op-uc-p">Customer Quote</p></th><td class="op-uc-table--cell"><p class="op-uc-p"><br></p></td></tr></tbody></table></figure><br>
## Go to market
* Feature announcement in release notes and newsletters.
* There is an opportunity to create a blog article about this feature, highlighting use cases and provide customers with a number of patterns they can copy for their workflows. Like a template provider to cover standard use cases.
## Figma and mockups
https://www.figma.com/design/I2IVNb97j1fNNCs32H6p2m/Automatic-generated-subjects?node-id=0-1