In Octopus, our users rely on creating spaces, projects and related entities in order to run their deployment processes smoothly and efficiently.
Whether it’s adding a new user, space, project, certificate or account, users need to create and manage multiple types of entities and often in a short span of time. They could also be adding multiples of the same entity. All of these factors can add up to a tedious experience.
When designing the user flow for adding a new entity, our goal is to ensure that users enter information accurately and successfully, contributing to the overall product goal of helping them achieve reliable continuous deployments.
Definitions
- Projects gather all the processes, releases, and runbooks for an application or service. “Add a new project” is excluded from this UI pattern as it relies on a unique onboarding component.
- An entity is anything that is not a project, and could be: a process, release, runbook, account, variable, credential, environment, feed, package, etc.
- Spaces are the home of projects, releases, runbooks and entities specific to them.
The user journey for adding a resource typically, if not always, starts from an Add or + button in the interface.
Best practices
General
- Help the user scan content in sections or pages
- Avoid crowding the user’s mental load with too many fields or items to consider, as they may miss details, be unsuccessful and abandon the workflow
- Keep the experience aesthetic and usable, to help the user follow the entire user journey
- Do not disable buttons until the form is filled, as it creates an accessibility issue that something is blocked and the user won’t understand why. Instead, show error states upon saving if the form has been incorrectly filled.
Microcopy
- Be clear and concise about the data the user needs to fill in
- The title of the component should always describe what the user is adding, e.g. “Add Git Credential”
Forms
- Input field labels should be short and descriptive, as per the form structure guidelines
- Input field placeholders should show an example of the input, e.g. GitHub URL
- Button microcopy guidelines should be observed
- Form guidelines should be observed
Autosaving
We do not currently provide autosave functionality in our forms, but this is a desired future state.
High level addition flow
All addition flows should follow the high level journey as illustrated below.
The user journey usually starts from a page where the user can add the entity using one of the solutions listed below, and concludes with informing the user of success, error and abandonment.

High level user journey for adding an entity
Types of addition flows
When selecting the type of addition flow, consider:
- Number of entities to choose from, whether single or multiple
- Density of information, whether it requires denser fields to complete or can be lightweight with just a few fields
Adding a single entity

The user adds a single entity with a few fields using a dialog
Number of entities to choose from |
One |
---|---|
When to use |
Adding a singular entity with a form; for longer forms, consider the On-page (Single) |
Can contain |
Title, description, form fields, buttons, multiple steps |
Example |
A new runbook needs to be added, with a few fields to start. |
User flow |
The user fills in details in the dialog to continue or finish the journey. |

The user adds a single entity that contains more than a few fields, with dense help text
Number of entities to choose from |
One |
---|---|
When to use |
Similar to Dialog (Single) but with a higher amount of fields with dense information. |
Can contain |
Title, description, form fields, buttons, multiple steps |
Example |
A new scheduled trigger needs to be added, with 5+ fields that have contextual information near the fields. |
User flow |
The user fills in details in the page to continue or finish the journey. |

The user adds a secondary entity to an existing entity they are already in the process of adding
Number of entities to choose from |
One or multiple |
---|---|
When to use |
Adding another entity to an existing entity |
Can contain |
Title, description, form fields, buttons |
Example |
When an account is being added to a new step in the Process Editor; the new step is the primary entity being added, and the account is the secondary entity. |
User flow |
The user adds details for a new secondary entity and continues via the page below the drawer for the primary entity. |
Adding multiple entities

The user chooses from multiple entities that have self-explanatory titles and brief descriptions
Number of entities to choose from |
Multiple |
---|---|
When to use |
Adding multiple types of resources that can be explained with just a label per type |
Can contain |
Title, one-line description |
Example |
A new account needs to be added from a list. Each account may vary in the number of fields needed. |
User flow |
The user selects an entity from the dropdown and progresses to either Dialog (Single) or On-page (Single) to fill in the details. |

The user chooses from multiple entities using a dialog
Number of entities to choose from |
Multiple |
---|---|
When to use |
Adding multiple types of entities in a grid |
Can contain |
Title, description, a grid of icons, titles and descriptions, multiple steps |
Example |
A new trigger needs to be added, with multiple types of triggers to choose from. |
User flow |
The user selects an entity from multiple types and progresses to either Dialog (Single) or On-page (Single). |

The user chooses from multiple entities and tabs
Number of entities to choose from |
Multiple |
---|---|
When to use |
Similar to Dialog (Multiple) but with an extra layer of organization of the entities, e.g. categories or tabs |
Can contain |
Title, description, tabs, a grid of icons, titles and descriptions, multiple steps |
Example |
A new step template needs to be added, with multiple categories to consider. |
User flow |
The user selects an entity from multiple types and progresses to either Dialog (Single) or On-page (Single). |
Choosing the most appropriate solution
To help you decide which approach is most appropriate, here’s a decision tree with checkpoints on:
- Type and number of entities being added
- Density of information in the form fields
- Whether light organization of the entities is required
This decision tree is not foolproof, however. You may still come across patterns in existing workflows that can be substituted by another.

Form degradation
These are examples of cases where a critical system error is preventing the flow from working as intended. In all cases, best practices for error handling should be followed.
Server degradation
If the user is trying to submit the form but it cannot be saved, do not clear the form fields or disable the button. Instead, retain the form information and inform the users via a callout explaining the form cannot be saved.
No form data is available
If the form is not available, do not show the form fields or buttons. Instead, show an empty state explaining why the form is unavailable.
More information on server-side and client-side validation can be found in Forms UI pattern.
Form success
Once the form has been successfully submitted, clear the form and communicate success on the page.