Admins

The Complete Guide to ‘Customize Application’ for Salesforce Admins

By Tom Bassett

Within Salesforce, a single powerful permission unlocks a wide range of administrative capabilities. It should therefore be granted sparingly, only to users who can be trusted to follow established governance and best practices.

In this article, we’ll take a deep dive into Customize Application to demystify what it controls and explore what the future may hold for this key permission. This permission is one of a handful that should never be assigned to users. 

Data Structure and Object Schema

Customize Application allows you to shape and structure Salesforce to meet your organization’s needs. This includes creating, editing, or deleting custom fields, as well as adding record types.

With this permission, you can also adjust standard picklist values (eg, Industry) and map custom lead fields to custom fields on Accounts, Contacts, or Opportunities. Once mapped, these values automatically carry over if a lead is converted (which is usually the goal).

READ MORE: 10 Ways to Improve Lead Conversion in Salesforce

This permission also grants the ability to create, edit, and delete Custom Objects. These should be created sparingly, and so you wouldn’t want anyone but a system admin to be able to do this; otherwise, you could end up with an unclear data model that makes the system hard to use. You can also create Custom Tabs to navigate to Custom Objects and other parts of the system. 

While Visualforce has largely replaced S-Controls, this permission still allows users to create, edit, and delete S-Controls. 

A screenshot from the Salesforce UI showing the Account Detail page where the Industry field is being set.
Account Industry Field (source: Salesforce Developer Org)

User Experience (UX) and Layouts

A friendly user experience can make or break a system when it comes to adoption. Let’s take a look at what Customize Application grants in this area. 

As an admin, you’ll often need to create, edit, and delete page layouts to control what information users see when viewing a record, along with available actions and related lists. If you’ve moved from traditional page layouts to Lightning record pages with Dynamic Forms, actions, and related lists, this permission provides equivalent access to edit and manage those configurations, too.

You can also manage custom links, rename tabs, and perform other interface adjustments, such as editing self-service page layouts or customizing the portal color theme.

This permission also allows you to manage Custom and Service Cloud Console Apps, including setting up and configuring the console itself.

Finally, it provides the ability to create communities for external users to collaborate on ideas and answers, as well as to set up the Salesforce Customer Portal.

A screenshot from the Lightning App Builder, which shows an Account Record Page that has been upgraded to Dynamic Forms.
Lightning App Builder (source: Salesforce Developer Org)

Security and Reporting

Customize Application empowers you to protect your data. You can assign field-level security to profiles or permission sets, ensuring users only see the information they need.

When it comes to reports, you can set up and schedule analytic snapshots to capture key data trends over time. For List Views, you can view and set API names during creation.

A screenshot that shows Field Level Security on the Account Number field in Salesforce.
Field Level Security Screen (source: Salesforce Developer Org)

Process Automation

Workflow Rules may no longer be supported by Salesforce, but Customize Application provides management of these, as well as workflow tasks, field updates, outbound messages, and alerts.

This permission also allows you to manage Queues, which can be used in custom assignment and escalation rules.

For organizations using Service features, you can configure Web-to-Case, Email-to-Case, and email response rules to streamline how customer issues are managed.

Similarly, Web-to-Lead functionality is available with this permission, along with Auto Response Rules for the Lead object. You can also create Visualforce Email Templates with this permission.

A screenshot that shows the Email-To-Case Settings within Salesforce Setup.
Email-To-Case Settings (source: Salesforce Developer Org)

Global System-Wide Settings

Teamwork makes the dream work. With Customize Application, you can enable Opportunity teams and configure big deal alerts to notify users when a deal reaches a certain threshold. You can also set up Account teams, as well as manage public calendars and resources.

This permission also allows you to configure business hours, implement advanced currency management, and make changes to currencies. Additionally, you can adjust lead settings and messages as well as set up multilingual features.

A screenshot that shows the Account Team Setup options within Salesforce Setup.
Account Team Setup (source: Salesforce Developer Org)

Other Permissions

On Salesforce Help, there’s an article that lists what this permission grants, but if you dig deeper, you’ll spot it mentioned in other places that don’t appear on this list.

This permission lets you create classic approval processes and manage external client apps. You can create Flow categories, tweak process automation settings, and edit Chatter settings.

With Customize Application, you also get control over some features like enabling Contacts to multiple Accounts and managing global value sets.

I’d love to see Salesforce get granular about what this permission covers. Currently, it seems these are grouped as “Customize the Organization Using App Setup Menu Options” in the docs. If you agree, upvote this idea; Customize Application should be fully documented.

A screenshot that shows the setup of an approval process on the Account Object before a new account can be set to active.
Classic Approval Process for the Account Object (source: Salesforce Developer Org)

Sandbox vs. Production Development

Every admin should know that system changes should be made in a sandbox first and thoroughly tested before being deployed to other sandboxes and eventually to production. 

While this is great in theory, there are not many technical blockers to changes being made directly in production, which could cause havoc.

It’s crucial that anyone with this permission develops changes initially in a sandbox and tests before they are deployed, which is covered by separate permissions.

You therefore have to have an element of trust in the users who have this permission to do things properly and in sandboxes first.

READ MORE: What Is a Salesforce Sandbox?

The Future of Customize Application

Salesforce faces an ongoing challenge in democratizing the “Customize Application” permission. Back in 2022, Salesforce Admins recognized just how complex this issue is, with one saying: “If we just broke up the super permissions, like Customize Application, it could create somewhere around 3,600 permissions! This would become a nightmare for you to manage – and we’re looking to make things easier for you, not harder.”

At the time, Salesforce shared some forward-looking statements about potential solutions, but so far, little visible progress has been made.

Ideas such as Split the Customize Application permission or introducing an interactive permissions dictionary show opportunities for Salesforce to deliver quick wins to ease the burden on admins and bring more transparency and control to permission management.

To compound this problem, if you only grant Customize Application to a Profile or Permission Set, Salesforce automatically grants the additional admin-only permissions: 

  • Manage Translation
  • View Setup and Configuration
  • Manage Custom Permissions
  • View Roles and Role Hierarchy
Graphic from Salesforce Admins that shows the current state of Customize Application and a potential future state
Forward Looking Statement from Salesforce on the future of Customize Application (source: The Future of User Management)

Summary

In the era of Agentforce, security is more critical than ever. Ironically, while this article was being written, Salesforce added ‘Access Agentforce’ to the long list of capabilities granted by Customize Application… making democratizing this permission a little harder. 

I’d love to see a future where this permission is clearly documented and split into distinct components, making the principle of least privilege far easier to achieve.

As members of the Trailblazer Community, we have the power to help make that future a reality by upvoting the following ideas: 

  1. Customize Application should be fully documented
  2. Split the Customize Application permission
  3. Interactive permissions dictionary

If there are any ideas from the Trailblazer Community that I’ve missed, make sure to mention them in the comments below!

READ MORE: 10 Crucial Salesforce Permissions You Should Not Assign to Users

The Author

Tom Bassett

Tom is a Senior Solution Architect at Vera Solutions helping Nonprofits with Impact and Grant Management. He empowers others as an expert author, community leader, speaker, and podcast host.

Leave a Reply