As promised in my 2022 Best Practices for All Flow Types, I have compiled my full list of naming conventions. You’ll find a defined naming convention for pretty much every possible thing you might include in a flow. Take what I’ve defined below and customize it for what makes sense in your org.
Note: You’ll find in the examples below I have listed multiple suggested prefixes. For simplicity, you’ll want to decide on ONE prefix for each thing.
In This Blog:
Flows
When Naming Flows, the best format is Object | Trigger | What it Does
.
This makes it easier to locate a Flow identify at a glance how many flows one object might have.
Examples:
- Opportunity | Record Triggered | Update Account
- Contact | Screen | Create New
Resources
In general, use these guiding principles for resources
- Standard prefix to denote resource type (i.e. “v” or “rv” or “c” – see examples below)
- Use camelCase
- Make sense to anyone who updates the flow
Variables
Variable Type | Suggested Prefix(es) | Examples |
---|---|---|
Text | v / var | vContactId / varContact Id |
Record | rv /rvar / recvar | rvAccount / rvarAccount rcvAccounts / rcollvarAccount |
Number | n / num | nCollectionCount / numCollectionCount |
Currency | c / curr | cAmount / currAmount |
Boolean | b / boo | bValueSet / booValueSet |
Date | d / date | dDue / dateDue |
Date/Time | dt | dtStamp |
Picklist | p / pick | pYesNo / pickYesNo |
MultiSelect Picklist | msp / mpick | mspSizes / mpickSizes |
Apex Defined | a / apex | aPopsicle |
Constants
Constant Type | Suggested Prefix(es) | Examples |
---|---|---|
Text | cont / ctext | contErrorMessage / ctextErrorMessage |
Number | conn / cnum | conn5 / cnum5 |
Currency | conc / ccurr | concPrice / ccurrPrice |
Date | cond / cdate | condQuarterStart / cdateQuarterStart |
Boolean | conb / cboo | conbUpdate / cbooUpdate |
Formulas
Formula Type | Suggested Prefix(es) | Examples |
---|---|---|
Text | ft / formt / ftxt | ftFullName / formt |
Number | fn / formn / fnum | fnDiscountRate / formnDiscountRate / fnumDiscountRate |
Currency | fc / formc / fcurr | fcTotalPrice / formcTotalPrice / fcurrTotalPrice |
Boolean | fb / formb / fboo | fbNoToFalse / formbNoToFalse / fbooNoToFalse |
Date | fd / formd / fdate | fdRenewal / formdRenewal / fdateRenewal |
Date / Time | fdt / formdt / fdatetime | fdtScheduled / formdtScheduled / fdatetimeScheduled |
Text Template
Suggested Prefix | Example |
---|---|
tt | ttEmailBody |
Choice
Suggested Prefix | Example |
---|---|
choice / ch | choiceYes / chYes |
Record Choice Set
Suggested Prefix | Example |
---|---|
rc / rch | rcProductsInFamily / rchProductsInFamily |
Picklist Choice Set
Suggested Prefix | Example |
---|---|
pc / pch | pcIndustry / pchIndustry |
Decision Outcomes
I have provided a suggested prefix and example for you below, but I often don’t get too nitpicky with outcomes. Instead, I try to use impactful labels, like “Yes, Missing Information” instead of a simple “Yes” or “No”. This helps keep API names unique, and actually provides meaning to future admins.
Suggested Prefix | Example |
---|---|
do | doYes |
Screen Components
I add a prefix only to the API name, as I’m doing that for my reference, and not the end user’s. (Refer to Screen Naming Conventions)
Suggested Prefix | Example |
---|---|
X00_ | X01_First_Name |
Elements
I don’t like to use camel case for these because I want it to make sense at a glance in the flow builder. You may want to establish a convention for your API Names, but I find it just as easy to have my API names match my labels (Plus, that ensures I’m not naming two things the same). The key to remember for all elements is:
What is this element doing and can someone determine that by reading its label?
Actions
Put what the action is doing in laymen’s terms. I have some generic examples below, but you’d want to customize them to be specific.
Examples
- Validate External System
- Aggregate Financials
Assignment
Examples:
- Copy Account Address to Contact
- Assign Screen Values to Asset
- Add Account to Collection
Get / Create / Update / Delete Records
Examples:
- Get Renewal Record Type
- Create Renewal Opportunity
- Update Accounts
- Delete Opportunity Products
Decisions
Examples:
- Is there an Account?
- Account Type
- Contact Status
- Valid Data?
Loops
Examples:
- Loop Account Contacts
- Loop New Accounts
Screens
Name each screen with a number (or letter). You may be tempted to name them in order, but as your flow evolves, that is going to change. If you’re okay with screen 04 coming before screen 02, then use numbers. If not, find some other way to create a unique identifier you can also use for your screen components for easier usage.
Examples:
- 01. Contact Details
- 07. Ice Cream Selection
- 13. Confirmation Screen
Subflows
Use the same thought process as you did for actions. A general idea of what the purpose of the subflow is.
Examples:
- Create Account Contacts
- Set Account Financials