Headless Salesforce

The big news from last week is from Marc Benioff. He claims Salesforce is now headless.

“Headless” means the back-end logic is completely separate from the front-end UI. This effectively means you can replace the UI with something other than Salesforce’s.… Read the rest

The “Good Enough” Consultant Referral Program

In the past several weeks, I’ve been asked to find trusted Salesforce individuals.

These are people with whom I’ve worked with before, or know me from these emails. They reach out and ask whether I know someone with a particular set of skills.… Read the rest

First fix the issue, then apply the data fix

Every once in a while, your client will mention there’s a bug. Perhaps a field isn’t being populated correctly.

In these cases, follow these steps:

  1. Confirm the desired functionality
  2. Assess the current situation
  3. Reproduce the issue (not always necessary)
  4. Confirm it’s an actual issue
  5. If a change is needed, design a solution
  6. Implement the solution
  7. Test

Regarding data issues, the step 6 actually has two parts

  1. Fix the functionality that caused the issue
  2. Apply a data fix to historical records

It’s important to complete these two steps in that order.… Read the rest

Native tax receipts in Salesforce: A game changer or still lacking?

For nonprofits, Salesforce now offers a native tax receipting solution. It’s designed for Agentforce Nonprofit (aka Nonprofit Cloud), and it’s a welcomed feature.

But is it good enough?

My latest article from Salesforce Ben breaks this down.

Pros:

  • Native, which means additional functionality might be available in the future
  • Uses Word-based templates
  • Free

Cons:

  • Customization is limited
  • Doesn’t handle compliance and regional regulations
  • For Agentforce Nonprofit only.
Read the rest

Places to store content

Since you should never hardcode content in apex, here are some alternatives places to store it:

1. Custom Settings
The main and current location to store data. Custom Settings are like custom objects used by the system. You can create custom fields and access them from most places (like flow).… Read the rest

Don’t hardcode content

I’m working with a client who’s had a very difficult time updating their outgoing emails and SMS messages. And no wonder, the previous consultant set them up this way.

Emails used Visualforce pages, with tons of extra html and css syntax.… Read the rest

Sections on page layouts

As you add more and more fields to a page layout, it’s important to consider structure and UX.

For example, it’s generally not a good idea to have 25 fields in a single section on the page, especially when there are 20 fields in the 1st column, and 5 fields in the 2nd.… Read the rest

Record pages to page layouts

In the nonprofit industry, the following record types exist for opportunity:

  1. Donation
  2. Grant
  3. In-Kind Gift
  4. Matching Gift
  5. Major Gift
  6. Membership

And it’s not uncommon for clients to add several more.

In general, record types are used less these days due to the rise of the dynamic functionality of Lightning Record Pages.… Read the rest

Orphaned page layouts

It still surprises me how many times I’ve seen orphaned page layouts.

I’m working with a new client, and there were 5 layouts for the contact object.

  • ABC Contact Layout
  • Classy Contact Layout
  • Contact Layout
  • Contact Layout (a second one)
  • Contact Lightning Layout

At a quick glance, you would expect the Contact Lightning Layout to be used.… Read the rest

dreamOle 2026 recap

Last week was dreamOle in Valencia, Spain. I don’t have as many contacts in Europe as in North America, but it was good to start seeing some familiar faces.

Here are three takeaways from the event:

1. Security is top of mind.Read the rest

Support contracts: monthly vs hourly

I’ve been working with one client for a couple of years. The CEO is kind and he always had a specific vision on how he wanted the organization to grow.

The projects were always fixed price, with a client business outcome.… Read the rest

Attending dreamOle 2026

This Friday is dreamOle in Valencia, Spain. It’ll be the 3rd dreamOle I’ve attended.

Despite being in Spain, quite a few sessions are in English.

Here are the ones I’ll attend:

  • Architect Securely: Applying Well-Architected Principles
  • Unlock Your Leadership Potential with Soft Skills
  • Flow on the Fly (Patterns for Screen Flow Actions)
  • “Goodbye Connected Apps.
Read the rest

Which variable to use in an assignment step

Imagine a Salesforce flow that is not a record-triggered flow, and you get an Account record.

In the get step, you probably use the default setting “Automatically store all fields”, which is good. Let Salesforce work for you. The record variable is called “Get_Account”.… Read the rest

Convert multi-select picklists to text

Working with multi-select picklists (MSP) is tricky. Here’s a hack to convert this picklist into a text field using flow so you can use it more easily.

Imagine there’s a MSP called “Zone” on the Account object. The values are “Zone A, Zone B, and Zone C”.… Read the rest

Converting a string into Title Case

When data is sourced from a webform and inserted into Salesforce, it can be dirty.

Ideally, the source system has sufficient data validation in place to avoid the really dirty errors. For example, ensuring an email address has the correct format.… Read the rest

Button on a related list that opens a screen flow

Imagine this: on the account page, a list of related contacts is displayed.

On the related list, clicking the standard New button opens the standard New Contact page. While this works, sometimes you want to minimize the number of fields displayed and/or introduce automation to prefill some fields.… Read the rest

Working with the Salesforce mobile app

For users on the go, Salesforce has a mobile app that allows them to stay connected.

While it’s not the most comprehensive experience, if it’s set up correctly, it can get the job done. Here are some key considerations:

Page Layouts
When building page layouts, keep in mind the tab-key order.… Read the rest

Choosing between standard objects and custom ones

When designing a new feature for a client, one of the first questions you need to ask yourself is: should I use standard objects or create custom ones?

Best practices dictate that if you can use 80% or more of the standard data model, then that’s your choice.… Read the rest

AI isn’t good at UX

AI is awesome at many development tasks.

For example, I asked it to create Lightning Web Components (LWC) to replace old Aura components. The first version was 99% perfect. Super impressive.

Then I asked it to restructure the LWC so that fields and buttons appear on the same line.… Read the rest

What’s the actual problem?

In a recent client meeting, they shared that their users complain about a particular page when using Salesforce on a tablet.

Upon reviewing the page, I noticed the page displays one of several flows, based on a status, and includes several Aura components.… Read the rest

Thoughts about IdeaExchange

Related to the last email, there’s an idea on IdeaExchange to address this issue. Please upvote it so it gets more attention.

Speaking of the IdeaExchange, what’s your take? Are you

  1. Happy we have a voice to share ideas with Salesforce, and they listen to us by implementing our requested changes
  2. Cynical because so many basic ideas haven’t been implemented.
Read the rest

No records in Salesforce match your delete criteria

Salesforce is awesome, most of the time. The good news is it’s always improving.

One feature I hope they add soon is the ability to delete 0 records.

This occurs when you attempt to delete a collection that contains no records or to delete a single record that doesn’t exist.… Read the rest

What’s better: boolean or picklist?

When tracking a positive and negative response in Salesforce, most consultants would simply create a boolean field and call it a day. But you’re a “good enough” consultant, so you know there’s another choice.

The other option is a picklist with “True”/”False” or “Yes”/”No” choices.… Read the rest

How long should the text field be?

When creating text fields in Salesforce, you have several options:

  • Text
  • Text Area
  • Text Area (Long)
  • Text Area (Rich)
  • Text (Encrypted)

For all options except for Text Area, you have a choice of how long you want the field to be.… Read the rest

What’s an indexed field?

In Salesforce, you can group fields into two categories:

  1. non-indexed fields
  2. indexed fields

Non-indexed fields are basic fields that are not lookup, master-detail, audit dates, or system fields. For example, Amount on Opportunity is a non-indexed field.

Indexed fields are special fields.… Read the rest

The dark side of formula fields

Formula fields are great because they allow you to place business logic in a field that can be quickly referenced. However there are some drawbacks you should be aware of.

  1. Since formula fields are calculated, and not actually stored in the database, they are not available in before-save record-triggered automation.
Read the rest

Handling crunch time like a star

January through April is tax season for nonprofits. Between my nonprofit services and my app that allows nonprofits to generate tax receipts, it’s an extremely busy time of year.

Balancing workloads from multiple clients can be overwhelming. Here are some tips I’ve learned that may be able to help you.… Read the rest