Jessie joined Salesforce.org in 2018 to give introductory webinars to nonprofit customers. She now is a Senior Solution Developer supporting nonprofits and education customers at Salesforce. All opinions expressed on this blog are her own or those of the contributors. She's spent 17 years more or less in CRMs and databases, but didn't meet Salesforce until 2011. Jessie co-led the Seattle Salesforce Nonprofit User Group in 2015-2016. She wrote a sh*tty first draft of a novel and hopes to turn it into a screenplay!
After the Summer ’25 release, record ids passed from the Unsubscribe Link to the flow are sometimes not being passed to the flow which causes tons of errors. I am so sorry about this!
I do not understand exactly what change has caused this error to happen.
Here’s a quick and dirty fix for this until we finish getting a managed package version created.
This change was enforced in the Summer 25 release to the Send Email Action inside flow and it broke the Unsubscribe Link app.
When the running flow user is the guest user, the Sender Email Address must be set to a verified organization-wide email. Emails sent from the guest user and not using a verified organization-wide email are blocked.
A guest user is someone not logged into your Salesforce instance, but they got a link to a flow and are running it from the URL. If the flow sends an email using the old default of running user, the flow now breaks. This may not impact you, but if it does, I’m sorry.
This isn’t the only thing broken about the Unsubscribe Link after the Summer release….
Here is the simplest way I have seen to use invocable methods to send data from flow to apex and apex to flow. This is a huge improvement over what I wrote in 2021.
The trickiest thing to understand here is that an output variable in Flow is an INPUT variable in Apex. It goes OUT from the Flow and IN to your Apex. I have some charts to help clarify what goes in and what comes out.
Some caveats: These are not examples of when to use Flow and Apex together, but just how it can be done. Also, I am a newer developer and I am just figuring this stuff out. If you see ways to improve, let me know!
Thanks to @jonsayer for showing me this method while working on the latest Unsubscribe Link (coming soon)!
EXAMPLE ONE
Get an Account Id, send it as a text variable from the Flow to Apex, return all the opportunities on that account to the flow, and update them in the Flow.
A bunch of friendly Salesforce users, community members, staff and partners are getting together virtually to help make Salesforce even better for nonprofits and educational institutions at the Virtual Commons Community Sprint on September 26 and 27th.
And my Unsubscribe Link App will be a part of it! This app allows you to send emails from Salesforce that your recipients can unsubscribe from — without purchasing a fancy tool or doing any integration.
The app will soon be listed as part of the Salesforce.org Commons on the AppExchange making it no longer my app but a community supported app. Be a part of it!
Hey Salesforce Admins – Maybe you know this already, but just in case… it’s really easy to use ChatGPT to generate high quality fake data.
Example 1 – Super Simple Dataset
Let’s generate fake contacts to import with the Data Import Wizard. I can type the names of my fields directly into the ChatGPT prompt. I can also tailor the record details to match my actual contacts, and make it fun at the same time (Sample data is probably the best way for a Salesforce admin to be silly!)
Here’s what my first prompt looks like:
Create a sample csv data set of 25 records. Here are the column headers: Name Favorite 80s movie Favorite 90s movie Hobby Age Current Member. Populate the hobby column with obscure hobbies. Make the ages 18-75, but mostly in their 30s. Make current members mostly true, but a few false.
Make sure you specify that the results are in csv format! Here is what it generated.
Are you interested in giving your email recipients the option to unsubscribe from all email that you send out through Salesforce? Please test out the latest version of the Unsubscribe App.
As of February 2024, Google wants bulk senders to allow users to unsubscribe with only one click! That means no more page that says “Are you sure you want to unsubscribe?” You can read more here about how your company organization can get marked as spam if you do not follow this requirement!
If you have already installed the Unsubscribe Link app, I will walk you through how you can update it to meet this requirement. It’s actually easy, I promise. It’s an unmanaged package so I am not able to push changes to you.
Here’s how to update your Unsubscribe Link App:
Go to Setup.
Search for Flows.
Open the flow called Unsubscribe Link.
Click on the blue element Screen: Are you sure
Click the trashcan icon that pops up.
Click on the white dot on the element Decision: Was a record found and drag that to the element Create Records: Create Unsubscribe Record. The text “Yes, Record Found” should pop up.
Click Save As in the top right corner.
In your description you could add that this version includes one-click unsubscribe. Save.
Activate in the top right.
New or having trouble?
If you have not yet installed it, I am currently having trouble modifying the existing app to get it working package because of change in permissions for site guest users for flow. I am trying to install in a dev org and failing to get it work for a site guest user. I am working on a new solution that is based on an Experience Site instead of a Site and that changes how flows are run for users.
If you have an insight on why it is not working currently, contact me via the group below.
Join the Unsubscribe Link Support Group in Trailblazer Community
Ask all your questions and give feedback here. FYI, this project is something I am doing on the side and is not part of my job. If you are interested in helping me maintain and upgrade the app, I would love that! If you have successfully installed the app, you could join the group to answer other people’s questions. Thank you so much!
Thank you
A huge thank you to Brian King who alerted me to this requirement from Google! I am very grateful!
This post isn’t fully baked, but here are some instructions on how to import data with VisualStudio Code! I used this because I was importing data to objects that did not have API yet – new products that were not released to the public yet. This is not a common scenario. But there may be other valuable use cases.
Make an External ID field on your object and check boxes for unique and external id. Let’s call it External ID aka External_ID__c.
Give your system administrator access to that field.
Prep your spreadsheet.
Each row header needs to be the API name of the field. Absolutely exactly correct or it won’t work. You don’t match fields in this process.
Snowfakery is a free and open source tool used to generate and insert fake data into Salesforce (and more!).
In this post I’m going to show you how to get started as quickly as possible using existing “recipes” or instructions for what data you want to create. Something like… I want a pinch of Accounts in Michigan, a heaping tablespoon of Contacts with ages ranging from 18 to 24, and 2 cups of Opportunities closed won.