New Release

HTTP Callout (Beta) in Salesforce Spring 23

With each new release lately the Salesforce Flow team has been bringing some amazing features. I am really excited about the introduction of HTTP Callout (Beta) in Spring 23′. It really starts to open up the possibility of more resources for admins to start doing more with clicks and not code. This allows an admin directly inside of flow to make an HTTP Callout to perform a Get on an external system previously this would require either an invocable apex action or an external service be created in Salesforce. Andy and I took sometime over the last couple of weeks to test it out and you can see our video here to see our discussion and brief demo but let’s take a deep dive walkthrough on how we configured it and the steps to take. For this testing and demonstration we found a simple api that has a free use tier that allows for a set number of callouts to validate a phone number and return validation information you can find more on Api Layer and the documentation here.

Before you can create an HTTP Callout you first need to create a what’s called a Named Credential a Named Credential is what Salesforce uses to validate you are able to use the external service you are making the call to.

Step 1 in Setup go to Named Credentials

Step 2 Click on New (At the time of this post New is not working in Pre-Release Orgs so follow 2a)

Step 2a Click on the Drop Down to the right of New and click on New Legacy

Step 3 Add Named Credential Details

Step 3 Create a Custom Label to hold the api key you got from APILAYER (this is only necessary if an api key is required it is for our use case)

Step 4 New Fields I created 2 fields on the Lead Object Phone_Number_Details__c a rich text field to hold the information about the phone number that will get returned in the callout and I also created a checkbox field called Phone_Number_Validated__c that is checked true or false if a phone number has been validated in the service

Step 5 Let’s make a flow – In this example I am using a record-triggered flow that will fire when a lead is created. I set two conditions on Phone to make sure this fires only when there is a value in the Phone field. I also marked it to include an Asynchronous path since we can only make a callout Asynchronously.

On the asynchronous path click on the “+” and then add an action

After clicking on action a modal will pop up and you will want to scroll down to the bottom of the left panel and click on “Create HTTP Callout (Beta)”

Next fill out the details for the HTTP Callout Action you are creating the name is all one word no special characters or spaces, make sure to add a description because you will be able to reuse this in other flows without a need to create a new one so make it easier on other admins, devs and your predecessors so they know what it does, and finally choose the named credential you created in Step 1.

On the next screen we want to give it another label and description along with setting our Method which in the beta is only GET which means we can only retrieve data from an external service. We can also optionally set a URL Path in this case we will use ‘/validate’ this path comes from our api documentation that says this is what we want to do on the service. We are also going to set some Query Parameter Keys this is the data we want to send to our service for our use case we want to send the apikey and the number both of them have a datatype of string we use the names and data types that are from the api documentation; I also made both required otherwise the call will fail. The task is to give an example of what a successful json response will look like once again we get this from our API Documentation. After you paste your example click review and you should see the data structure on the right click done.

Step 6 Configure the new action you created. Give it a name and description like all best practices. In the apikey input I am referencing the label I created in step 3 using the global variable for label and in the number field I am referencing the phone file using the Record Variable from the lead

Step 7 Almost done I created a text template to populate the Phone Details Field I created. In the text template I am referencing the outputs from my service I just created it will create what’s called an Apex Defined Variable I can reference specific pieces of data.

Step 8 Update the Lead Here I am updating the Lead Record that is my Triggering Record updating the Phone Validated and Phone Detail fields.

Step 9 Debug, Validate, Activate, Deploy – Next up debug your flow make sure you set to debug on the asynchronous path and review your debug details and validate it is doing what you expect. Once it’s validated activate your flow and deploy it 🙂

Step 10 Take a deep breath exhale, pat yourself on the back, put on your superhero cape, and enjoy your drink of choice

Views and opinions in this article are my own and do not represent that of Salesforce

Note: To watch the demo on Youtube click below.

Standard
Flow Tips Newsletter, Uncategorized

Winter 23 Flow Formula Editor – Salesforce Flow Tips Newsletter

Hello folks,

Let’s get started with the Winter 23 Flow enhancements, shall we? Who doesn’t like to save time and effort?

One of the biggest improvements is the formula resource editor with the instant syntax check button.

This functionality first came for the start element and the collection filter in the previous releases. Now we get the same editor across the board in the flow builder.

No more writing a formula, saving the flow, and crossing your fingers hoping it won’t yield an error message.

You can check for errors as you build your formula on the same screen using the Syntax Check button.

One disclaimer is that I saw some inconsistent behavior in my preview Dev Org:

Some of the collection filter formulas I built that I thought should pass, did not pass the syntax check. But we still have time until the release. I am sure it will be ready by then.

Now content announcements:

  • I am super excited that my session proposal has been accepted for Florida Dreamin’ 2022. I will be presenting there for the third year in a row. My session is titled: “Flow Design & Mapping: From Idea to the Flow Canvas“. It will be super interesting, I promise you. Come and see it: Register for the event here.
  • Last week, I presented the new Winter 23 Flow functionality at a virtual Jacksonville Salesforce Saturday event. I tried out the new enhancements live and recorded the event. Watch Winter 23 Flow Features – Salesforce Saturday here.

Enjoy.

P.S. Originally published on 08/30/2022.

Read the previous issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Standard
Flow Tips Newsletter

Start Element Formulas – Salesforce Flow Tips Newsletter

Hello folks,

How cool are the brand new start element formulas?

One of the best use cases for it is the Record Type criteria. You can now check for the RecordType.DeveloperName or the RecordType.Name in your start element. This was not possible before. You either had to hardcode the RecordType.Id or defer the criteria to a decision element, making the flow less efficient.

What else can we do with start element formulas?

When you want to trigger your flow in case the triggering object record is created or updated, and you want to build sophisticated criteria, then the formula entry conditions are ideal for this purpose.

A popular use case is the auto-naming of records when a new record is created. For example, you can append the Industry picklist value to the Account name using a before-save flow.

Here is the formula resource that does that:

The difficulty is when you want to trigger such flow on create and update. If you don’t build your flow carefully, you will append the same thing to the name multiple times based on multiple updates. You will need to check whether the auto-name logic ran before if you want to avoid this outcome.

Here is the start element formula that ensures that:

I recommend you go and play with this functionality yourself if you haven’t already. You will like it. It is super powerful.

This is the only area where we have a function, a logical operator picker, and a syntax check button within flow.

If you have comments on this topic, please join the discussion on Twitter or LinkedIn.

Enjoy.

P.S. Originally published on 07/18/2022.

Read the previous issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Standard
Uncategorized

I Wrote For Salesforce This Week – Process Automation – Salesforce Flow Tips Newsletter

Hello folks,

I wrote for the Salesforce Admins Blog this week.

What is Process Automation?

How do you acquire this crucial skill?

Read my Process Automation blog post on the Salesforce Admins website by clicking here.

Enjoy.

P.S. Originally published on 06/23/2022.

Read the previous issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Standard
Flow Tips Newsletter

Collection Filter and Collection Sort Challenge – Salesforce Flow Tips Newsletter

Hello folks,

How powerful are the collection sort and collection filter elements? How should you use them?

I experimented with collection filter and collection sort elements to see how far I can go using only one get element. In other words, I wanted my flow only to use up one SOQL against the governor limits.

I started with a get element that returns all the cases that have both account and contact assignments. I was able to extract the following information with only one get element:

  • Most Recently Modified Case
  • Oldest Modified Case
  • Oldest Modified Case Account Name
  • Number of Cases by this Account
  • Most Recently Closed Date for this Account
  • Contact Id on this Case
  • Number of Cases for this Contact
  • Oldest Closed Date for this Contact on this Case

Please see the image for the results.

How many elements did I use? Did I have to loop?

Here are the answers:

  • Your get element gives you sorting functionality. Use it.
  • You have to loop to get the min and max values, such as the oldest and most recent, sorted by Date and Time. But you need to loop only for one iteration. So you can exit after you assign the first record to a variable.
  • Your loop can use the existing sort or the reverse sort. Use this functionality.
  • Initially, I used a counter variable to exit the loop, but this was unnecessary. You need to exit the loop regardless after the first iteration. Insert a decision and connect both branches to the next element outside the loop.
  • You can get a count of records by using an assignment element with the operator “equals count”.

I experimented with the formula criteria inside the collection filter element without much luck. I think this functionality does not allow for filters with variable values on the right side of the equation. “ContactId on the current record = ContactIdVariable” formula did not work.

What do you think? Can these elements save you lengthy loops and executed elements?

How many elements, excluding the start or the end element, did I use to extract this information.

Join the discussion on LinkedIn here or Twitter here.

Live session recording links:

Watch Melody Lwo of Salesforce Flowsome and me either on LinkedIn here or YouTube here.

Enjoy.

P.S. Originally published on 05/30/2022.

Read the previous issue of the newsletter here.

Read the next issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Standard
Flow Tips Newsletter

Post to Slack from Flow in 6 Easy Steps – Salesforce Flow Tips Newsletter

Hello folks,

This is an exciting week for all of us. The Release Readiness live webinars are here.

I was reading the Release Notes for Summer 22 this past weekend and I was wondering whether I can use the brand new Slack invocable actions in my Salesforce flows already. Salesforce announced the new actions are in beta, and they will be released sometime in June. It turns out I can already use them. I don’t even need a Preview Org or Summer 22 Sandbox for it. The steps required took some time to discover, but the whole thing is fairly simple to set up.

I am posting a step-by-step guide here so that you can dive directly into it. Try it now without wasting any time. Here are the 6 steps you need to take to post to Slack from Flow:

1. Go to “Setup” and “Enable Slack for Salesforce”. Review and agree to the Pilot terms if you want to proceed.

2. Create and assign a permission set to the user who will post on Slack and use the integration. The permission set will have “Connect Salesforce with Slack” system permission activated.

3. Now go over to your Slack Workspace. You can use a free Workspace, but if you have used all your permitted 10 App limit, you will need to remove an App. On the upper left side click on “More”, then “Apps”. On the screen you see in the middle, click on “App Directory”. Find “Sales Cloud for Slack”.

4. Go to the App page. Click on “Add to Slack”. This will take you to a web page that is super confusing. Find “Add Sales Cloud For Slack App”. Click on the link. Give the necessary permissions. (Update: I received feedback that the Sales Cloud Slack app did not work for some folks. If this is your experience try one of the other apps on the same page. I tested the Salesforce Digital HQ app as well, and this app worked for me.)

5. Now go to any public channel on Slack. Click/tap on the channel header where you see the title. Scroll all the way down and get the channel ID as seen below.

6. Go to Salesforce and build a simple Autolaunched Flow with one single element. You will need to add the invocable action “Send Slack Message (Beta)”. Configure it as seen below. Include the Slack Channel ID. Run it. Voila!

Next week, I will continue my preview with the new screen flow functionality.

Enjoy.

P.S. Originally published on 05/24/2022.

Read the previous issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Standard
Flow Tips Newsletter

May/June 2022 Content Announcement – Salesforce Flow Tips Newsletter

Hello folks,

I dedicate this newsletter issue to the announcements for new content coming from me next month (May & June):

  • On 5/31/2022, I will broadcast a live session with my fellow content creator Melody Lwo, a.k.a. Flowsome, on YouTube and LinkedIn. The session has been posted, here on my Salesforce Break YouTube channel and on my LinkedIn profile.
  • I will answer flow questions during our monthly Flow Office hours session with Terry Miller on 6/10/2022. Register for the Flow Office Hours Here.
  • I am the leader of a brand new Trailblazer User Group for Architects. I will host Antoine Cabot, Senior Director of Product Management in Salesforce, on 6/15/2022. Antoine is leading the Orchestrator and Flow for Slack initiative. Register for the Architect session here.
  • I will present in Atlanta at Southeast Dreamin’ a session titled “Flow Trigger Explorer and Orchestrator”. You can find the Dreamin’ session details here and register for the event.

Now let’s get back to reading the Release Notes. Summer 22 will be in all of our Orgs soon.

Enjoy.

P.S. Originally published on 05/17/2022.

Read the previous issue of the newsletter here.

Read the next issue of the newsletter here

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Standard
Flow Tips Newsletter

The Orchestrator Vision – Salesforce Flow Tips Newsletter

Hello folks,

I presented at Texas Dreamin’ two weeks ago. I shared a use case I implemented using the Orchestrator.

The main message of my presentation was to think big when you are working with the Orchestrator.

There are a few reasons for that:

  • The Orchestrator is not free. You should solve a decent-size problem to get a return on your implementation.
  • The tool is complicated. If your use case is not complex, the chances are you will find a way of implementing it with flow and admin tools.
  • The Orchestrator is powerful when you are coordinating tasks going between the silos of the organization.

There were a few observations I shared:

  • The Orchestrator is not an excellent approval process replacement. It does not lock records, and it is harder to implement. Furthermore, Salesforce said the approval process wouldn’t go away.
  • This solution works best when you need to schedule or delay user screen interactions which were not possible before.
  • The tool also can send tasks to users, groups, or queues, which means you will need a broad implementation scope to make the best out of it.

What was the use case I presented?

First, the salesperson wins an opportunity; then, the system checks whether the product in the opportunity line item is in the inventory or not. Next, the automation asks management to approve the order fulfillment and the production request if there is insufficient inventory. Finally, the Orchestrator will create a contract and an order for the opportunity, then a work order to get the item produced if necessary and shipped right after.

Overarching broad processes like these are great for the Orchestrator.

I think it is important to think big before tackling the Orchestrator canvas.

Let’s remember you will be much better off mapping your process before you implement it using this tool. Things will get complicated.

Check out my process map for the use case on top of this page.

Enjoy.

P.S. Originally published on 05/10/2022.

Read the previous issue of the newsletter here.

Read the next issue of the newsletter here

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Standard
Flow Tips Newsletter

Is There Flow After TDX22? – Salesforce Flow Tips Newsletter

Hello folks,

After a busy week of TDX22 and two Dreamin’ events happening simultaneously, my tired brain is trying to gather and compile all the information. We need to avoid this scheduling conflict in the future.

Let’s dive into the future of automation on the Salesforce platform.

Summer 22 release notes are out. We will know more when the Release Readiness Webinars happen soon. However, we know already that the Orchestrator is GA.

The Orchestrator is a flow of flows, in other words, automation that helps us string flows together. It gives us the superpowers of scheduling and delaying screen interactions and assigning them to users, queues, and groups. Please read J. Steadman’s blog post here for the details.

On top of that, we have a few other posts worth mentioning that were published recently:

What do all these signs tell me:

We are in for a faster ride than ever before. Buckle up.

Recently released content:

Next week, I will continue my preview with the new screen flow functionality.

Enjoy.

P.S. Originally published on 05/03/2022.

Read the previous issue of the newsletter here.

Read the next issue of the newsletter here.

Subscribe to the weekly educational Salesforce Flow Tips newsletter here.

Standard