Don’t know what to write to a customer or a major donor? Not sure how to be kind and encourage someone to try a little harder next time? ChatGPT can do that for you. And now you can use it right inside Salesforce to respond to your emails.
My colleague Brian Ricter wrote an apex class connecting Flow with ChatGPT. It takes a string, sends that as the prompt to ChatGPT and returns the response. You can use this apex action in a flow to do anything you want with ChatGPT!
I’ve utilized Brian’s apex action in a screen flow that helps you respond to a contact’s most recent email. And I’ve packaged it up for you to install easily.
A SOQL query pulls certain records and fields into Apex Code. This post explains a SOQL query that includes Contacts and their related Opportunities from the Year End Tax Receipt app, but I aim to help you understand SOQL in general.
For those of you that want to modify the Year End Tax Receipt for your specific donors:
Follow along with this post to modify which records will be displayed in the table of gifts last year. We’ll look at an example of only included gifts marked tax deductible.
Look at the original post to learn how to modify which columns appear in the gift table.
Understand the SOQL
Here’s my SOQL query. This is how I get the records and fields that I’m going to do something with later on in the code.
1 [SELECT LastName, id,Gifts_Last_Year__c,
2 (SELECT Id, CloseDate, Amount FROM Opportunities
3 WHERE CALENDAR_YEAR(CloseDate) =:year
4 AND IsWon = True
5 ORDER BY CloseDate)
6 FROM Contact WHERE npo02__OppAmountLastYear__c > 0
7 WITH SECURITY_ENFORCED]
Actually, I don’t know when this change happened, but I just noticed that Flow loops now only have four steps instead of five. The two assignments can now be consolidated into one.
You still have to add the record to a collection, but you can use the same assignment element.
Example 1: Update the record currently in the loop.
Use a Get Records element to create a collection of records to loop through.
Add a loop element
Add ONE assignment element
Update field values for record currently in the loop.
Create a new record collection variable to hold the records you want to update.
Use the same assignment element to add the record currently in the loop to the new collection.
Add an Update Records element to update the records in your new collection.
Follow my blog to keep up to date on Flow and Salesforce
Example 2: Create new records.
Use a Get Records element to create a collection of records to loop through.
Add a loop element
Add ONE assignment element
Create a new record variable (not collection) to hold the values of the new record you want to create.
Assign field values to your new record variable.
Create a new record collection variable to hold your records that you want to create.
Use the same assignment element to add the record currently in the loop to the new collection.
Close the loop.
Add a Create Records element to create the records in your new collection.
Previously step 3 involved two assignment elements!
Watch this recording on Flow loops.
This is how you would combine steps 3 and 4 into one assignment!
Join me TOMORROW on Automate This, the Salesforce Admins series hosted by Jennifer W. Lee. Follow along with the written instructions as I show you how to build a flow loop!
Open this YouTube link up tomorrow at the right time and watch LIVE!
Log an email message on the contact record like this one.
When sending email from a contact record, it magically logs the message to your activity log. In classic, emails were/are automatically logged to the Activities related list. Well, flow doesn’t do that for you. Let me show you how to log it so you and your colleagues know when an email was sent to a contact.
After you add a “Send Email” action to your flow, add two more Create Records elements to the canvas. You will create records of these objects:
A few weeks ago I shared how to use a package to move metadata between unrelated orgs. That solution is perfect for sharing something you built with other people.
See you later, deployment fish!
When you’re moving metadata between orgs that you control (related or not), try Visual Studio Code! Don’t worry about the “Code” part. You don’t have to read it or write it to use VS Code.
VS Code has lots of benefits that I don’t understand yet (somehow you can use it to move profiles and FLS). I will now teach you all I know. 1) How to deploy between two orgs. 2) How to paste in some code to deploy sections in Flows.
Huge thanks to Brian Ricter for teaching me how to do this!
Session Description: With Flow becoming the dominant declarative automation tool, business problems we are solving with automation are becoming more complex. We need to be able to build scalable Flows that are easy to maintain, upgrade and troubleshoot, but handling errors in Flows is not always intuitive and user friendly process. Flow Error Handling solution from Salesforce Labs helps Admins to discover Flow errors in faster and more straightforward way. In this session we will show how Admins can use this Salesforce Labs Flow solution to pinpoint exactly where the process went wrong and obtain crucial details of the recorded incident that will help with troubleshooting and fixing the problem in a timely manner.
*Thomas George taught me how to handle flow errors this way when we worked together at Optimum Energy. I love that I got to share it with others through Salesforce Labs.
Stages at the top of the flow screen show your users where they are in the process. It’s simple to set up this progress bar and adds some pizazz to your flow.
Here’s my ordered list to help you get started learning Flow. It includes short and long videos, Trailhead modules and projects, hands-on training and “your turn” challenges to help you stretch what you’ve learned.