Best PracticesSalesforce FlowNaming ConventionsBest Practices

Salesforce Flow Naming Conventions: A Complete Guide

Consistent naming is the foundation of maintainable flows. Learn the naming conventions used by top Salesforce teams to keep their orgs organized and understandable.

FlowDocs TeamDecember 16, 20248 min read

Salesforce Flow Naming Conventions: A Complete Guide

"What does this flow do?"

If you've ever asked that question while staring at a flow named "New Flow 3" or "Account Process Updated Final v2 COPY", you know the pain of poor naming conventions.

Good naming is the difference between an org that's manageable and one that's a nightmare to maintain. This guide covers proven naming conventions for every aspect of Salesforce Flow.

Why Naming Conventions Matter

For Current Development

  • Faster navigation: Find flows quickly in a crowded org
  • Easier debugging: Identify the right flow when issues arise
  • Clearer code review: Understand changes at a glance

For Future Maintenance

  • Knowledge transfer: New team members understand the org faster
  • Safe changes: Know what a flow does before modifying it
  • Documentation: Names themselves serve as documentation

For Collaboration

  • Consistent language: Team speaks the same terminology
  • Reduced confusion: No more "which Account flow?"
  • Better handoffs: Easy to transfer ownership

Flow Naming Convention

The Standard Pattern

[Object]_[TriggerType]_[Action/Purpose]_[Version]

Components Explained

Object: The primary object the flow operates on

  • Account, Contact, Lead, Case, Opportunity
  • Use standard object names

TriggerType: How the flow starts

  • BeforeCreate - Before insert trigger
  • AfterCreate - After insert trigger
  • BeforeUpdate - Before update trigger
  • AfterUpdate - After update trigger
  • BeforeDelete - Before delete trigger
  • Scheduled - Scheduled flow
  • Screen - Screen flow
  • Autolaunched - Autolaunched/subflow
  • Platform - Platform event triggered

Action/Purpose: What the flow does

  • Brief but descriptive
  • Use PascalCase
  • Action-oriented when possible

Version: Optional version number

  • v1, v2, etc.
  • Helps track iterations

Examples

Account_AfterCreate_CreateDefaultContacts
Account_AfterUpdate_SyncToERP_v2
Case_BeforeCreate_SetPriorityBasedOnAccountTier
Contact_Screen_UpdatePreferences
Lead_Scheduled_DailyQualificationCheck
Opportunity_AfterUpdate_NotifySalesManager
Order_Platform_ProcessPaymentEvent

What to Avoid

New Flow

Account Flow

Test Flow Please Delete

John's Flow

Account Process Updated Final v2 COPY

Element Naming Conventions

Decision Elements

Start with a question word or action:

Pattern: Check_[Condition] or Is_[State]

Check_RequiredFieldsComplete
Check_AccountHasActiveContract
Is_HighValueOpportunity
Is_CustomerPortalUser
Has_RelatedCases

Get Records Elements

Pattern: Get_[Object(s)] or Query_[Object]_[Filter]

Get_RelatedContacts
Get_ParentAccount
Query_Cases_OpenByAccount
Query_Opportunities_ClosingThisMonth

Create/Update/Delete Records

Pattern: [Action]_[Object(s)]

Create_FollowUpTask
Create_WelcomeEmailCase
Update_ContactOptInStatus
Update_AllRelatedOpportunities
Delete_ExpiredTokens

Assignment Elements

Pattern: Set_[Variable]_[Value/Purpose] or Assign_[Variable]

Set_AccountOwner
Set_CalculatedDiscount
Assign_CurrentDateTime
Assign_DefaultValues

Loop Elements

Pattern: Loop_[Object/Collection] or ForEach_[Item]

Loop_RelatedContacts
Loop_LineItems
ForEach_SelectedProduct

Screen Elements

Pattern: Screen_[Purpose]

Screen_WelcomeAndInstructions
Screen_InputCustomerDetails
Screen_ReviewAndConfirm
Screen_SuccessConfirmation

Subflow Elements

Pattern: Subflow_[FlowName] or Call_[FlowName]

Subflow_ValidateAddress
Subflow_SendNotification
Call_CalculatePricing

Variable Naming Conventions

General Pattern

[type][DescriptiveName]

Type Prefixes

TypePrefixExample
TextvarvarAccountName
NumbernumnumTotalAmount
CurrencycurcurDiscountValue
Booleanis/hasisApproved, hasAccess
DatedtdtCreatedDate
DateTimedttdttLastModified
RecordrecrecCurrentAccount
Collection (Records)colcolRelatedContacts
Collection (Text)lstlstSelectedIds

Examples

varCustomerEmail
numItemCount
curTotalPrice
isEligibleForDiscount
hasExistingContract
dtExpirationDate
dttLastLoginTime
recParentAccount
colChildOpportunities
lstSelectedProductIds

Special Variables

  • Loop variable: current[Object] - currentContact
  • Input variables: input[Name] - inputAccountId
  • Output variables: output[Name] - outputSuccess

Constant Naming Conventions

Use ALL_CAPS with underscores:

CONST_DEFAULT_STATUS
CONST_MAX_RETRY_COUNT
CONST_ADMIN_EMAIL
CONST_TAX_RATE

Formula Naming Conventions

Pattern: fx_[Purpose] or formula_[Calculation]

fx_CalculatedDiscount
fx_FullAddress
fx_DaysUntilExpiry
formula_LeadScore

Documentation in Names

Description Fields

Always fill in the Description field for:

  • The flow itself
  • Every decision element
  • Complex assignments
  • Any non-obvious logic

Comments as Element Names

For clarity elements that only add context:

Note_StartErrorHandlingSection
Comment_SkipIfNoRelatedRecords

Implementing in Your Org

Step 1: Define Your Standard

Customize these conventions for your team:

  1. Choose your preferred patterns
  2. Document in a wiki or shared doc
  3. Get team agreement

Step 2: Name Existing Flows

Prioritize renaming:

  1. Critical/frequently-edited flows
  2. Flows with confusing names
  3. Duplicate-named flows

Step 3: Enforce Going Forward

Make naming part of your process:

  • Code review checklist
  • Deployment gates
  • Documentation requirements

Step 4: Auto-Document

Use tools like FlowDocs to generate documentation that includes:

  • Flow names and purposes
  • Element inventories
  • Variable usage
  • Dependency maps

Quick Reference Cheat Sheet

ComponentPatternExample
Flow NameObjectTriggerActionAccountAfterUpdateSyncToERP
DecisionCheck/Is/Has_Check_RequiredFields
Get RecordsGet/QueryGet_RelatedContacts
Create/UpdateAction_ObjectCreate_FollowUpTask
Variabletype + NamevarAccountName
Collectioncol/lst + NamecolChildCases
Booleanis/has + StateisApproved
ConstantCONST_CONSTMAXRETRIES

Conclusion

Naming conventions seem small, but they compound over time. An org with consistent naming is:

  • Easier to navigate
  • Faster to debug
  • Simpler to onboard
  • Safer to modify

Start with these conventions, adapt them to your team's needs, and enforce them consistently. Your future self will thank you.


Related Articles:

Ready to Automate Your Flow Documentation?

FlowDocs generates comprehensive documentation for all your Salesforce Flows automatically. Free for up to 10 flows.

Get Started Free

Related Articles