Purpose
Review our best practices for naming custom elements in Tulip as a starting point for your own apps and naming conventions.
All custom named elements, e.g. Variables, Steps, Records, etc., in Tulip should be named in a way that makes them human readable, unambiguous, and understandable to facilitate usability of apps during their life cycle.
It is recommended to adopt the following general naming conventions for all elements:
- Descriptive name
- Words written out in full, no abbreviations
- First letter of each word in upper case, subsequent letters in lower case
- Individual words separated by a space
- No underscores
| Example | Issue | Better Example |
|---|---|---|
| Done | Non-descriptive | Operation Finished |
| operatorName | Lowercase and no space | Operator Name |
The sections below outline some more detailed guidelines for specific elements.
Variables
Variable names must be unique with an App, however the same names can be reused within the Tulip platform.
- Variable type not included in name
- Unit abbreviations written in parenthesis next to name of numeric variables
| Example | Issue | Better Example |
|---|---|---|
| Total wgt | Abbreviation and units.For regulated industries, see comment below. | Total Weight (g) |
| fltTemperatureF | Type in name, no space and wrong unitFor regulated industries, see next subsection | Temperature (°F) |
Regulated industries
It is recommended to store a value and its unit of measure in two separate Variables/Table Record Fields, e.g. "Total Weight" and "Total Weight UOM". See GxP App Building Best Practices for more information.
| Example | Issue | Better Example |
|---|---|---|
| Temperature (°F) | Only one variable used for value and unit of measure | Temperature Temperature UOM |
Variables used to filter Tables
Variables used to filter a table with respect to a specific column should be named with the prefix 'Filter'. This improves the usability of those variables during app building. This is recommended for variables solely used for filtering. General purpose variables in Apps do not need a prefix.
| Example | Issue | Better Example |
|---|---|---|
| Status Filter | Suffix without | Filter Status |
| IPCtimestamp Filter | Suffix vs. prefix | |
| Lowercase and no space | Filter IPC Timestamp |
Variables for key indicators
For Apps with key indicators, e.g. CPPs/CQAs (Critical Process Parameters / Critical Process Attributes) or KPIs, add a prefix to the variables' names to improve the readability of the variables.
[!IMPORTANT] SME Input Required
The Slack reporter flags that the "Better Example" column in this section uses underscores (e.g.CPP_Temperature) which directly contradicts the general naming rule of "No underscores" stated at the top of the article. The proposed changes below remove underscores and use spaces instead. However, an SME should confirm: (1) whether the prefix separator for key indicators (CPP, CQA, KPI) should be a space, or if a different convention is preferred, and (2) whether the GxP best practices article also needs to be updated for consistency.
| Example | Issue | Better Example |
|---|---|---|
| CPP Temperature | Prefix not clearly separated from variable name | CPP Temperature (°C) |
| AssayB CQA | Use as suffix vs. prefix | CQA Assay B |
| Availability | Missing prefix for key indicator | KPI Availability |
Tables
Tables names should adapt the same naming convention used for Variables and be grouped with a prefix. Tables should be grouped against general purpose, e.g. multiple/all use cases, or specific use cases. It is recommended to use '
##' for general purpose grouping and not to use '*'. The '*' is used by Tulip to mark tables originating from Tulip library Apps.
| Example | Issue | Better Example |
|---|---|---|
| Printed lables table | Use of suffix | #Printed Labels |
| *Printed labels | Use of '*' prefix | #Printed Labels |
Triggers
Do not use the default "unnamed trigger" name. Instead, the name of a trigger should describe its functionality in a few words.
| Example | Issue | Better Name |
|---|---|---|
| Unnamed Trigger | Default name | Increment defect counter |
| Check status | Too little context | Check order delivery status |
Did you find what you were looking for?
You can also head to community.tulip.co to post your question or see if others have solved a similar topic!


