Lightning Flow
Salesforce Developers

Salesforce has a great tool to build complex process automations in a point-and-click way – Flow Builder (we call it just Flow). Flow Builder has been improving with every Salesforce Release, and now displaced Process Builder and Workflow Rules as the new standard. Flow Builder is so powerful that it can even take place in cases where previously only Apex developers could tread. Are the days of Apex developers numbered?

What Are the Main Features of the Flow and Why Should Code Developers be Aware?
Flow Builder allows creating complex process automations using a point and click interface. Any person who has some understanding of Salesforce customization can easily draw a schema in Flow Builder and have it running in minutes. Previously developers needed work with hundreds of lines of code; now, Flow Builder provides beautiful visual schemas.

Flow Builder’s capabilities include:

  • Find, Create, Update, Delete records in your database
  • Add paths, conditions, filters, loops (allowing creation of complex logic for your automation)
  • Create variables and work with arrays(to help scale reliability and reliability)
  • The flexibility to specify triggering conditions, , schedule, or manual runs
  • Add screens, messages, sending of emails (to improve user experience)
  • Combine it with other Flows or Apex Classes (to get additional value from existing investments)
  • Improve quality assurance and reduce onboarding time by sharing visual schemas with anyone in your team (gain rapid understanding through a self-documenting process)

Even this list of high-level features seems to cover 80% of possible cases and this is great – developers now can have some rest by avoiding less technically challenging tasks. However, the other 20 percent are 100% important and cannot be handled without code developers.

Weak Sides of the Flow Builder
We are really happy to have such a tool as the Flow Builder today as it significantly helps to develop and customize processes in Salesforce, but everything has its strengths and weaknesses.

Before jumping head first into Flow Builder, consider some of these limitations:

  • Flow is unable to execute more than 2,000 elements in a single transaction. You should be a very experienced user to find ways to split your transactions, reduce the count of elements, consider bulkification
  • Same as Apex, Flow also has limits on SOQL, DML, CPU time, so an inexperienced user may easily reach them(e.g. when working with loops)
  • The built-in Formula Builder is less user-friendly than in other parts of the application. (e.g. there is no built-in code validation feature)
  • Screens in a Screen Flow are not very customizable. You can use standard components or download more, but sometimes this can be insufficient for your needs

Last two issues are really minor, but there are some more significant limitations to be aware of, which we will now explore.

What is definitely impossible in the Flow Builder?
The most complex tasks are still firmly within the domain of Salesforce Developers:

  • Integrations with other systems. There is no way to negotiate a connection, send or receive data from third-party systems
  • Creating Page Components. When it is required to customize page layout with non-typical components, you have to create Visualforce or Lightning Components using code
  • Generating files. Automatically create and save a simple file (to Files section) with data from a record in a table format (a common case)
  • Building of complex processes that hit Flow Limits. In Apex it is more easily aligned with Salesforce limits

Flow allows admins to do a lot of tasks that previously were assigned to developers only, so now teams are free to be more flexible. For developers, they now have more time to handle bigger challenges. Each role still exists, and has a lot of things to be done, but now individuals can focus on activities where they deliver on their individual strengths. However, Flow Builder is not an easy tool itself and requires practice and solid understanding of Salesforce before starting declarative development.