The pattern: for new navigation in 2026, default to Quick Actions or Custom Buttons. Use Custom Links when the org culture or existing infrastructure makes them the right choice. For legacy Custom Links, maintain working ones and replace JavaScript-based ones during Lightning migration.
- Decide whether Custom Link is the right construct
For inline record actions, Quick Action. For Lightning-native button experiences, Custom Button. For text-link navigation or org-cultural consistency with existing Custom Links, Custom Link.
- Open Buttons, Links, and Actions in Object Manager
Object Manager, pick the object, Buttons, Links, and Actions, New Custom Link.
- Write the URL with merge fields for dynamic context
Use the merge field picker to insert record data. Test the URL with a real record to confirm the merge fields resolve correctly.
- Pick the display type and behavior
Link, Button, or sidebar. Same window, new window, or popup. Most Custom Links default to Link + new window.
- Add the Custom Link to the page layout or Lightning Record Page
The Link exists but is invisible until placed. Add via Page Layout (Classic-style placement) or Lightning App Builder (Lightning placement).
- Test as an end user
Click the link on a real record. Confirm the URL resolves correctly, the destination works, the behavior matches expectation.
- Audit existing Custom Links during Lightning migration
For each Custom Link, decide: keep, modernize to Quick Action, retire. Document the decision and execute through your normal change pipeline.
Dynamic URL that injects record data via {!Object.Field} merge syntax.
Link, Button, or sidebar component. Drives visual placement.
Open in same window, new window, or popup.
Custom Link is invisible until added to a page layout or Lightning Record Page.
Whether the Custom Link should be replaced by Quick Action, LWC, or Custom Button.
- JavaScript Custom Buttons do not work in Lightning. Migration requires rewriting as LWC or Quick Action.
- Custom Links are invisible until added to a layout. Building the Link without placing it is a common omission.
- Merge fields that reference non-existent fields produce empty URL segments. Test against a real record before declaring done.
- Open in popup window is rarely the right modern UX choice. New window preserves the Salesforce session; popup feels dated.
- Stale Custom Links accumulate. The cleanup is rarely scheduled and the result is record pages with sections of links nobody clicks.