Preview: Flow Features Drive Salesforce’s Newest Marketing Application

The Flow team has been working with Marketing Cloud to add Flow-powered journeys to next-generation Marketing features and services. The first capabilities are rolling out in Summer ’23. To access them, you’ll need a Salesforce org based on the newly renamed Starter Edition (This is the edition that previously was named Salesforce Easy and before that Salesforce Essentials). (The link above provides trial orgs, but as of this writing they have not yet been upgraded to Summer ’23).

Flows are accessible outside of Setup in Starter Edition

Start Edition is the first place where you can build flows as a non-Admin ‘citizen. Here, you can see that Flows are one of the tools that are available to marketers from outside of Setup.

When you select Flows here, you aren’t taken to Setup, but to a standard list view:

When flows that support citizen building are saved, a data record is generated alongside the traditional flow setup object that contains the flow’s metadata. These two objects are kept in sync automatically. It’s the data records that are being shown in the list view above.

One reason for introducing this object duality is to enable sharing rules and other sharing infrastructure to be applied to the flow creation process. For more information, see the Citizen Flows section, below.

Flow-Based Marketing Journeys

Starter Edition features a new Marketing service centered around Campaigns. When you create a Campaign, this is what you see:

The top ‘Single Email’ choice is an wizard that autogenerates a simple email send using this UI:

This user experience is essentially a specialized flow generator, and you can go to the Flow list and see the underlying flow:

You can open it directly and modify it:

The Send Email Message added to these marketing campaigns is a new action that makes use of a brand new messaging service that rides on top of Data Cloud. Here’s what the configuration looks like for this action:

Some of the characteristics of the new Send Email Action:

It’s designed to do all of its addressing in the mechanisms used by professional marketing. So instead of specifying specific To and CC addresses, it will use the segment of database contacts specified in the Start element (see below). Instead of using a Body text field, it expects an email template to be created and specified.

It includes Einstein Send Time Optimization, which uses Einstein to recommend the appropriate send time for each contact in the segment.

The underlying messaging system support engagement events for clicks and opens.

Here’s what the Segment section of the Start element looks like when the trigger is a Segment-Based trigger:

Clicking on Edit Segment Rules, as shown here:

…will take you to the Segment Builder in Data Cloud:

This is part of what was introduced as Genie at Dreamforce last year and is now introduced as Data Cloud.

So, putting the above sections together: When you buy Starter Edition, you get marketing as part of the package, including a customer data platform, powerful segmentation capabilities, and flow-based journeys. In subsequent releases, the marketing feature set will get richer and will become available beyond Starter Edition and gradually grow to meet the most demanding enterprise marketing needs.

Citizen Flow Building (Only in Starter Edition in Summer ’23)

In Starter Edition in Summer ’23 it is for the first time possible to create flows without being a Salesforce Admin. Traditionally, opening Flow Builder and saving flows has required the Manage Flows permission and this provides the ability to create flows that run in System Mode. Customers have been asking for ways to enable non-admins like marketers to create and edit flows in a protected way. The first deployment of this citizen flow creation is coming in the new Marketing application in Starter Edition in Summer ’23.

Key user experience differences

  • Flows are visible not just in the Flow node in Setup but also in a new Flow record home that works like other object home pages. This means that you don’t need to go to Setup to see a list of flows.
  • You can create a new flow from this Flow record home or edit an existing flow. It will take you directly into Flow Builder
  • Currently, the only flows that show up in this record home are flows belonging to a new flow type called Engagement Flow.
  • You don’t need View Setup access to be able to enter Flow Builder.

In Summer ’23, security is provided by limiting what an Engagement Flow can do. Engagement Flows only have access to Send Email action and Wait by Duration element, and only work with a new trigger labeled the Engagement Flow trigger. This trigger is a Schedule-based trigger that works with a Segment from Data Cloud. Data Cloud is an inherent part of next generation marketing functionality.

Using a process type to limit what these citizen-enabled flows can do in Summer ’23 in an intermediate step on the way to Granular Flow Permissions. That’s work that going on to enable a permission set to be defined that exactly specifies what a citizen has access to in Flow Builder. For example, it will be able to craft a permission set that says provides access to Update and Create Records but not Delete Records, and Platform-Event Triggers but not Record-Change Triggers

New Element – Wait Until Date

Wait Until Date is part of a new generation of Wait elements that are more focused and easier to use than the traditional Flow Pause element. There’s going to be some overlap in functionality. (In fact, we’re considering renaming the Pause element to be ‘Advanced Wait’ to emphasize its power.) Like the rest of the functionality described in this post, this element is only available in the Starter Edition in Summer ’23, but Salesforce does plan to make Wait Until Date available for all editions soon.

New Element – Wait For Amount of Time

See the notes above regarding the Wait Until Date element.Salesforce does plan to make this element available for all editions soon.

Learn about other Summer ’23 Flow Features here.

New component added to the Flow Screen Components Base Pack

Version 3.1.0 of the Flow Screen Components Base Pack now includes a new Draw a Line flow screen component that can be used in place of the older horizontalRuleFSC component. The component can also be accessed in the Lightning App Builder for use on Record, App and Home pages.

Click here for more details.

Barcode Scanner For Flow Now Supports Continuous Scan

The Barcode Scanner for Flow now supports continuous scan functionality, this means you can scan multiple barcodes keeping the device camera open to capture as many barcode values into a single text collection for use in Screen Flow. To see all details visit the original post here and for a quick demonstration of continuous scan functionality see the video below.

A Screen Component That Displays Fields in Read Only Mode

If you are building a form, you may want to make some screen components read only. In those cases, you can use this custom screen component that displays fields in read only mode.

How to Use the Component

1- Install the component using the installation links below.

2- Add a screen element and search for ReadOnlyScreenComponent. This is the name of the component that you installed.

3- This component can display 5 different data types: string (text), integer (number), checkbox, date, date/time. Enter the data type that you want to display. Valid values are string, integer, checkbox, date, and datetime.

Then provide the field label that the users will see.

Lastly, enter the value that you want it to display. Make sure that the value matches the data type that you entered.

4- Look and feel of the component changes according to the data type that you selected. Here is a read only screen that is built with ReadOnlyScreenComponent. Data types used in this flow are string, integer, date, datetime, and checkbox, respectively.

Read this post to see an example.

Installation Links

Use this link to install in production or developer edition environments.

Use this link to install in sandbox environments.

View Source

Here is the link to the source code repository.

New Updates to QuickChoice

QuickChoice, the multi-purpose picklist component, has been updated again. In addition to supporting picklist filtering by Record Type, you can now support Dependent Picklists by stacking as many QuickChoice components as you need on the same screen with the new Reactive Screen beta. Full support is provided for controlling Checkbox or Picklist fields. Check out a video of this in action on the QuickChoice documentation page.

An additional feature has also been added. You can now display Rich Text in the body of Visual Card selections.

Install the latest version (3.0.19) of the Flow Screen Components Base Pack to get the latest version of QuickChoice.

A Better Way to Debug Screen Flows

Have you ever wished you could debug a screen flow using the same UI that you have when you are debugging a triggered flow?

You know, where you get to see the path taken through the flow and you can chose to expose or hide the details behind each of the executed nodes in the flow.

Now you can! I’ve created a special subflow you can install in your orgs and use in your screen flows to give you this improved debugging experience.

Read the complete blog post to learn how.

Import/Export Flows Has Been Updated

I’ve updated the Import/Export Flows utility to use the current version of the Flow Base Packs. I’ve also updated the Installation to use unlocked packaging links.

Read more about this utility and others on the Utilities Page.

Flow and Process Builder List View and Batch Delete has a new Update

Flow and Process Builder List View and Batch Delete has been updated so that it can now be installed into Production orgs. Find the latest install links and instructions here:

From Matt Bingham & Neil Reid: Streamscript, a scripting environment that runs inside your flows

Very clever and creative stuff here. This package adds an action called Streamscript. When you add this action to your flow…

…the custom property editor provides an elegant little script editor:

Using this editor, it’s possible to set up powerful HTTP Callout and Webhook solutions.

Here’s script that works with an incoming webhook from Github. Streamscript has built in JSON parsing tools to get at the payload of the webhook:

There’s a lot of power behind this tool. Check it out here.

From Andre Tawalbeh: Tap into the Power of ChatGPT via Flow

You can enable users to make ChatGPT queries from within a screen flow:

Andre writes:

When at the end of 2022 ChatGPT became all the hype, I wondered what could be done with it when integrated with Salesforce? Could you unlock new ways CRM data would be utilized when an integration is done? What would be potential use cases?

So, where did I start? A few weeks back I asked GPT3 to create some code for me integrating Salesforce with its API. The code looked good but took some time to fine tune. After all, I finally made it, writing an integration into OpenAI’s API. What were the main guidelines I was following when architecting the solution?

1. It should be suitable for low-code and no-code tools inside Salesforce

2. Although ChatGPT is great, it lacks some freedom when it comes to training your own model or even choosing which model you would like to use. There are differences in OpenAI models all along the road.

3. It should be as secure as you are used to working with Salesforce. So you should be able to define an organization and other parameters to have full control over the integration and data flow.

I set to work writing some APEX class that does exactly that – creating an invocable action so that GPT could be utilized from flow.

With that developed, I created a simple use case that will help service experts: decent knowledge management is one of the hardest things to achieve in a servicecenter. So, why not ask GPT about something you might not have in your knowledge base as of now?

With the integration of OpenAI API, one could start training a bespoke model with your company’s manuals and documentation frequently used at your service centers – without the need to write a knowledge article about it. Since the integration is being built in flow, you could even add additional record data to it. I. e.: “how to start a generator of series 3000?” -> After all, this will speed up things and may make your knowledge base so much more powerful.

I have provided a sample flow called OpenAI Connect Template. [NOTE: the flow is not included in the package because it requires the creation of a custom object and custom field. However, the flow is available in the source repository and can be deployed if you create those objects. See Virginia Leandro’s comments below). You can place it on every lightning record page you like. You can see how it is utilized in the short screencast below.

Establishing a connection to ChatGPT

Go to and register. Head over to your account, click “Settings”. Copy your Organization ID to some keyvault of your choice.

Next, head over to API Keys and create an API key. Copy that to the keyvault of your choice. We will need both values later when setting up credentials to connect to OpenAI API.

What you need to get started with flow:

  1. Create a permission set. We will need that to store the credentials. I haven’t added one in the package, feel free to provide information of your liking with it.
  2. Create an external credential (i.e. named “OpenAI”) to provide the configuration for your authentication. Make sure to define “Authentication Protocol” as “Custom”
  1. Use the created permission set to map the credentials to that are needed for your (company) account with OpenAI. Next to permission set in external credential, click new. Provide 2 parameters. One for API Key, one for organization. Value will be the keys we have fetched from OpenAIs site, stored in your keyvault before (or you copy them across on the fly). Make sure to define the mapping for identity type “Named Principal”.

  2. Once the external credential and permission set mapping is created, make sure to provide the right custom headers:

  3. Now, set up a named credential to access the right endpoint. You could actually define more than one named credential and access other endpoints. For now, the only endpoint supported is the “completions” endpoint by OpenAI. Head over to “Named Credentials” and click “new”. Fill in the values as stated below. Important, check “Allow Formulas in HTTP Header” and uncheck “Generate Authorization Header”. That is being done by our external credential using formulas. Therefore, relate the external credential we just created.
  4. Set up a remote site to allow access to openAI.
  5. DONE! You are done setting up the background configuration. Now, let’s configure the flow to finally go with the flow 😉 .

Now, let’s head over to flows and make some final configurations in the sample flow. That will help you get started as soon as possible.

  1. —-Sample Flow not included in package.
  2. Make sure the Open AI Endpoint Name matches the named credential you defined the completions endpoint with (there is one predefined, if you use the same values, it will work).

Once all those steps are done, you can save the flow, activate it and start your first debug!

In conclusion, by integrating OpenAI’s API with Salesforce, you can unlock new possibilities in utilizing CRM data. The integration, developed as a low-code or no-code solution within Salesforce, ensures security and allows you to control the data flow and parameters with ease. The integration allows you to utilize GPT directly from Salesforce flows, opening up new opportunities to enhance the capabilities of your CRM system. With the set up of external credentials, named credentials, and remote sites, you can connect to the OpenAI API and start utilizing the power of GPT within your Salesforce environment.

[Written by GPT]


V1.0 2/8/23 Production Sandbox – First Release