You’ve got your objects, fields, page layouts, and record types in place. The data model is solid. But your users still have to navigate through multiple clicks to do simple, repetitive tasks — log a call, create a follow-up task, update a status, send an email. That’s friction, and friction kills adoption.
Quick actions, custom buttons, and custom links are how you eliminate that friction. They put common tasks one click away, right where users are already working.
What Are Quick Actions, Buttons, and Links?
These are three different mechanisms for adding interactivity to record pages and page layouts. They overlap in some areas, but each serves a distinct purpose.
Quick Actions
Quick actions open a focused form or action directly on the page — typically as a floating panel or modal — without navigating the user away from the current record.
Common use cases:
- Create a related record (e.g., “New Task” from an Account)
- Update specific fields on the current record (e.g., “Change Status”)
- Log a call or send an email
- Launch a Flow or custom Lightning component
Quick actions are the modern, Lightning-native way to add interactivity. Salesforce is investing heavily here, and they should be your default choice for new functionality.
Custom Buttons
Custom buttons perform an action or navigation when clicked. They appear in the button section of a page layout (typically at the top of the record detail page).
Two types:
- Detail Page Button — Appears on the record detail page
- List View Button — Appears on list views (e.g., a button on the Contacts related list of an Account)
Button sources:
- URL — Navigates to a URL (can include merge fields for dynamic URLs)
- Visualforce Page — Opens a Visualforce page
- Lightning Component — Invokes a Lightning component (Lightning Experience only)
Custom buttons are the older mechanism — they still work, but Salesforce recommends quick actions for most new use cases.
Custom Links
Custom links are hyperlinks that navigate users to a URL. They appear in the “Custom Links” section of a page layout.
Use cases:
- Link to an external system using the record’s data (e.g., look up a company in Google Maps using the Account’s address)
- Link to internal Salesforce reports filtered by the current record
- Link to documentation or knowledge base articles
Custom links are simpler than buttons — they’re just URLs with optional merge fields. They can’t execute logic or open modals.
Quick Comparison
| Feature | Quick Action | Custom Button | Custom Link |
|---|---|---|---|
| Opens a form/modal | Yes | No (navigates) | No (navigates) |
| Can create records | Yes | Via Visualforce/URL | No |
| Can update records | Yes | Via Visualforce | No |
| Can run Flows | Yes | No | No |
| Appears in action bar | Yes | Yes (detail page) | No |
| Appears on list views | No | Yes (list button) | No |
| Supports merge fields | No (uses predefined values) | Yes (URL type) | Yes |
| Lightning-native | Yes | Partial | Yes |
| Mobile-friendly | Yes | Limited | Limited |
How to Create Quick Actions
Types of Quick Actions
There are two categories:
-
Object-Specific Quick Actions — Associated with a specific object (e.g., Account, Contact). They appear on that object’s record pages and have access to the record’s context.
-
Global Quick Actions — Not tied to any object. They appear in the global actions menu (utility bar, home page, etc.) and work from anywhere in the app.
We’ll cover both, starting with object-specific.
Creating an Object-Specific Quick Action
Example: Create a “Log Follow-up” action on the Account object that creates a Task related to the Account.
- Setup → Object Manager → Account (or your target object)
- Click “Buttons, Links, and Actions” in the left sidebar
- Click “New Action”
- Fill in the form:
Action Type — Choose from:
- Create a Record — Opens a form to create a new record (e.g., Task, Event, Contact)
- Update a Record — Opens a form to update fields on the current record
- Log a Call — Pre-built action for logging call activities
- Custom Visualforce — Opens a Visualforce page
- Custom Lightning Web Component — Opens an LWC
- Send Email — Opens the email composer
- Flow — Launches a Screen Flow
For our example, select “Create a Record”.
Target Object — The object to create. Select “Task”.
Standard Label Type — Optional. Salesforce provides standard labels like “New Task,” “Log a Call,” etc. Using a standard label type gives you a predefined icon. Select “New Task” or leave as “—None—” for a custom label.
Label — The display name. Enter “Log Follow-up”.
Name — API name (auto-generated: Log_Follow_up).
Description — Optional but recommended. “Creates a follow-up Task linked to this Account.”
Create Feed Item — Check if you want this action to post to the record’s Chatter feed when used.
- Click “Save”
Configuring the Quick Action Layout
After saving, you’re taken to the action layout editor — similar to the page layout editor but specifically for the quick action’s form.
This is where you define which fields appear when the user triggers the action.
- The editor shows a palette of available fields at the top and the action layout at the bottom
- Drag fields onto the layout that users should fill in
- Remove fields that aren’t needed (keep it minimal — the whole point is speed)
- Click the wrench icon on any field to set a Predefined Field Value
Predefined Field Values are powerful — they auto-populate fields so users don’t have to. For our “Log Follow-up” example:
- Subject — Predefined: “Follow-up”
- Status — Predefined: “Not Started”
- Priority — Predefined: “Normal”
- Related To (WhatId) — Automatically set to the current Account (Salesforce handles this for object-specific actions)
The user only sees the fields you put on the layout. Everything else uses defaults or predefined values.
- Click “Save”
Creating a Custom Button
Example: Create a “View in Google Maps” detail page button on the Account object.
- Setup → Object Manager → Account
- Click “Buttons, Links, and Actions”
- Click “New Button or Link”
- Fill in:
Label — “View in Google Maps”
Name — View_in_Google_Maps
Display Type:
- Detail Page Link — Appears in the Custom Links section
- Detail Page Button — Appears in the button row at the top
- List Button — Appears on related list views
Select “Detail Page Button”.
Behavior:
- Display in existing window without sidebar or header — Replaces current page
- Display in existing window with sidebar — Keeps navigation
- Display in new window — Opens a new tab/window
- Execute JavaScript — Runs client-side code (Classic only, not available in Lightning)
Select “Display in new window”.
Content Source:
- URL — A URL with optional merge fields
- Visualforce Page — A Visualforce page
- Lightning Component — A Lightning component
Select “URL”.
- Enter the URL with merge fields:
https://www.google.com/maps/search/?api=1&query={!Account.BillingStreet}+{!Account.BillingCity}+{!Account.BillingState}+{!Account.BillingPostalCode}+{!Account.BillingCountry}
The {!Account.BillingStreet} syntax is a merge field — it dynamically inserts the record’s field value into the URL.
- Click “Save”
Creating a Custom Link
The process is identical to creating a button, except:
- Select “Detail Page Link” as the Display Type
- The link appears in the “Custom Links” section on the page layout, not in the button bar
Custom links are best for reference URLs — places the user might want to visit, not actions they need to take.
How to Add Them to a Page Layout
Creating a quick action, button, or link doesn’t automatically make it visible. You must add it to a page layout.
Adding Quick Actions
-
Setup → Object Manager → Your Object → Page Layouts
-
Select the page layout to edit
-
In the editor, look at the palette at the top
-
Click “Quick Actions” in the palette toolbar (it’s a category, alongside Fields, Buttons, etc.)
-
You’ll see two sections:
- Quick Actions in the Salesforce Classic Publisher — Actions in the Chatter publisher (Classic)
- Salesforce Mobile and Lightning Experience Actions — Actions in the Lightning action bar
-
Drag your quick action from the palette into the “Salesforce Mobile and Lightning Experience Actions” section
Important: If the action section shows “override the predefined actions” link, click it first. By default, Salesforce uses a predefined set of actions. You need to override this to customize which actions appear and in what order.
- Reorder actions by dragging them left/right. Actions on the left appear first (and are most prominent).
- Click “Save”
Adding Custom Buttons
- In the same page layout editor, click “Buttons” in the palette toolbar
- Drag your custom button into the “Custom Buttons” section on the canvas
- Save
For list buttons, the process is slightly different:
- Go to the page layout of the parent object (e.g., Account if the button is on the Contacts related list)
- Find the related list on the layout canvas
- Click the wrench icon on the related list
- In the “Buttons” section, add your custom list button
- Save
Adding Custom Links
- In the page layout editor, click “Links” in the palette toolbar
- Drag your custom link into the “Custom Links” section on the canvas
- Save
The Custom Links section appears as a collapsible section on the record page. If no custom links are added, the section doesn’t appear.
Global Quick Actions
What Are Global Quick Actions?
Global quick actions are not tied to any specific object. They’re available from:
- The Global Actions menu (the
+button in the Lightning header/utility bar) - Home page
- Chatter feed
- Any page where the global actions menu appears
They’re useful for tasks that don’t require the context of a specific record — or for actions you want available everywhere.
Creating a Global Quick Action
- Setup → Quick Find → “Global Actions”
- Click “New Action”
- The form is similar to object-specific actions:
Action Type — Same options: Create a Record, Log a Call, Custom Visualforce, Send Email, Flow, etc. (Note: “Update a Record” is NOT available for global actions since there’s no record context)
Target Object — For “Create a Record,” select which object to create
Label, Name, Description — Same as before
- Save
- Configure the action layout (same drag-and-drop editor)
Where Global Actions Appear
Global actions appear in the Global Actions menu by default. To customize this:
- Setup → Quick Find → “Global Actions”
- Click “Publisher Layouts” (or navigate to Setup → Publisher Layouts)
- Edit the Global Layout
- Drag actions into the “Quick Actions in the Salesforce Classic Publisher” or “Salesforce Mobile and Lightning Experience Actions” section
- Save
You can also add global actions to Lightning app pages and home pages using the Lightning App Builder.
Object-Specific vs. Global Quick Actions
This is one of the most commonly confused areas in Salesforce admin. Here’s how they differ:
Object-Specific Quick Actions
- Where configured: Object Manager → [Object] → Buttons, Links, and Actions
- Where they appear: On that object’s record pages (in the action bar)
- Record context: Yes — they know which record you’re on
- Can “Update a Record”: Yes — they can update fields on the current record
- Automatic field population: Related fields (like
WhatId,WhoId,AccountId) are auto-populated based on the parent record - Added to: Object-specific page layouts
Global Quick Actions
- Where configured: Setup → Global Actions
- Where they appear: Global Actions menu, Home page, anywhere the global publisher is shown
- Record context: No — they don’t know which record you’re on
- Can “Update a Record”: No — there’s no “current record” to update
- Automatic field population: None — the user must fill in all required fields manually (including lookups)
- Added to: Global Publisher Layout
When to Use Which
Use object-specific actions when:
- The action is relevant to a specific record (e.g., “Log a Call” on a Contact)
- You want automatic field population (e.g., the Account lookup auto-filled on a new Task)
- The action is “Update a Record” (only available object-specific)
- You want the action on a specific object’s pages only
Use global actions when:
- The action should be available from anywhere (e.g., “Create New Lead” from the header)
- The action doesn’t depend on a specific record context
- You want the action on the Home page or in a utility bar component
Can You Have Both?
Yes. You can have a “New Task” object-specific action on Accounts AND a “New Task” global action in the header. They can have different layouts and predefined values. The object-specific one auto-fills the Account lookup; the global one doesn’t.
Section Notes
-
Quick actions are the future. Salesforce continues to invest in the quick action framework. Custom buttons with URL or JavaScript sources are considered legacy in Lightning Experience. If you’re building something new, default to quick actions.
-
JavaScript buttons don’t work in Lightning. If you’re migrating from Classic, any custom buttons that use JavaScript as the content source will NOT work in Lightning Experience. You’ll need to replace them with quick actions, Flows, or Lightning components.
-
The action bar has limited space. Only the first 3-4 actions are immediately visible on a record page. The rest are hidden behind a dropdown. Put your most important actions first.
-
Mobile matters. Quick actions are the primary way users interact with records on the Salesforce Mobile App. If your org has mobile users, prioritize quick action design. Custom buttons and links have limited mobile support.
-
Predefined field values save time but can confuse. If a predefined value is wrong or outdated, users might not notice. Use them for stable defaults (Status = “Not Started”) but be cautious with values that change frequently.
-
List buttons are underrated. A custom list button on a related list can be incredibly powerful — for example, a “Mass Update Status” button on the Cases related list of an Account. These are configured differently (via the related list wrench icon, not the main page layout).
-
Merge field syntax differs between Classic and Lightning. The
{!Object.Field}syntax in URL buttons works in both, but some advanced merge fields (like$Api.Session_ID) behave differently or are restricted in Lightning for security reasons. -
Quick actions can launch Flows. This is the most powerful combination — a quick action that launches a Screen Flow gives you a guided, multi-step experience within a modal. This replaces most use cases where you’d previously need a Visualforce page.
Project: Create a Quick Action and a Global Action
The Scenario
Building on the Project and Deliverable objects from previous sections, the project management team needs faster ways to interact with records.
Your Tasks
1. Create an Object-Specific Quick Action on the Project object:
Action: “Add Deliverable”
- Action Type: Create a Record
- Target Object: Deliverable
- Fields on the layout:
- Deliverable Name (required)
- Due Date
- Status (predefined value: “Not Started”)
- Completion Percentage (predefined value: 0)
- The Project lookup should auto-populate (since this is an object-specific action on Project)
2. Create an Object-Specific Quick Action on the Project object:
Action: “Update Status”
- Action Type: Update a Record
- Fields on the layout:
- Status (only field visible)
- This lets users quickly change a Project’s status without editing the full record
3. Create a Global Quick Action:
Action: “New Project”
- Action Type: Create a Record
- Target Object: Project
- Fields on the layout:
- Project Name (required)
- Project Manager
- Status (predefined value: “Not Started”)
- Start Date
- Since this is global, the user can create a new Project from anywhere in the app
4. Add actions to the page layout:
- Add “Add Deliverable” and “Update Status” to the Project page layout (Salesforce Mobile and Lightning Experience Actions section)
- Put “Update Status” first (leftmost) since it’s the most frequently used
- Add “New Project” to the Global Publisher Layout
5. Test your actions:
- Navigate to a Project record and verify both actions appear in the action bar
- Use “Add Deliverable” and confirm the Project lookup is auto-populated
- Use “Update Status” and confirm only the Status field appears
- Go to the Home page, click the global
+button, and verify “New Project” is available - Use “New Project” from the global menu and confirm the Project lookup is NOT auto-populated (since there’s no record context)
Next up: Formulas, Lookup Filters, Custom Labels, and Validation Rules — the declarative logic layer that enforces data quality and business rules without code.
This is Part 6 of the Salesforce series. Next: Formulas, Lookup Filters, Custom Labels, and Validation Rules — building the logic that keeps your data clean and your business rules enforced.