Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
DictionaryIInline S-Control
DevelopmentAdvanced

Inline S-Control

An Inline S-Control is a retired Salesforce mechanism for embedding custom HTML, JavaScript, or CSS directly into a Salesforce record page''s body, alongside the standard page layout sections.

§ 01

Definition

An Inline S-Control is a retired Salesforce mechanism for embedding custom HTML, JavaScript, or CSS directly into a Salesforce record page''s body, alongside the standard page layout sections. Inline S-Controls were a specific variant of the broader HTML S-Control feature; they rendered inside a section of the page layout (not behind a button or link) and were the predecessor to Visualforce inline pages and Lightning Components placed inside Lightning Record Pages.

Like the rest of the S-Control family, Inline S-Controls have been deprecated since 2010 and no longer render in Lightning Experience. Salesforce Classic still renders them for backwards compatibility, but the create-edit interface was removed from Setup years ago. The replacement path is the same as for other S-Controls: rewrite the embedded content as a Visualforce page added to the layout as an inline Visualforce section, or as a Lightning Web Component placed into a Lightning Record Page. Any inherited org with active Inline S-Controls needs migration before it can fully adopt Lightning.

§ 02

Why Inline S-Controls existed and how they were used

The Inline S-Control variant

Salesforce supported four S-Control types: HTML, URL, Snippet, and the Inline variant of HTML. Inline S-Controls placed the HTML directly inside an iframe on the record page layout, which gave admins a way to surface custom UI without users clicking a button. The pattern was used for custom mini-dashboards, related-record summaries, and embedded third-party widgets.

Page layout integration

Admins added an Inline S-Control to a section of the page layout in Setup, Object Manager, Page Layouts. The section rendered the S-Control as an iframe at the configured height. Multiple Inline S-Controls could coexist on the same layout, each in its own section. The platform handled the iframe sizing and message passing between the S-Control and the parent Salesforce frame.

The Visualforce inline page replacement

Visualforce introduced inline pages in 2008. An admin builds a Visualforce page (apex:page) and adds it to the layout as a Visualforce section. The Visualforce page replaces the Inline S-Control with a supported, modern framework backed by Apex controllers. Most Inline S-Control migrations target this pattern as the simplest like-for-like replacement.

Lightning Web Component as the modern path

For Lightning Experience, the replacement is a Lightning Web Component placed in a region of a Lightning Record Page. The LWC reads the record context via @api recordId, renders custom UI, and respects Lightning Locker security. Lightning Record Pages are the dynamic, role-aware successor to the static page-layout-plus-Inline-S-Control pattern.

Lightning Experience incompatibility

Inline S-Controls do not render in Lightning Experience. An org with Inline S-Controls on standard page layouts can switch to Lightning, but the layout regions where the S-Control would render show as empty. This is the visible signal that an org has S-Control tech debt blocking full Lightning adoption.

AppExchange package implications

Several older AppExchange packages were built around Inline S-Controls. These packages no longer install on new orgs and may not function correctly in Lightning. Customers running these packages need a migration plan: contact the package vendor for a Lightning-ready version, or replace the package functionality with a modern alternative.

Documentation drift

Older Salesforce training material and AppExchange documentation reference Inline S-Controls as a valid pattern. The references are historical only; current platform design replaces them with Visualforce inline pages or Lightning Components. Treating older docs as authoritative leads to broken implementations.

§ 03

Migrate an Inline S-Control to a Lightning-friendly equivalent

The migration steps are the same as for any S-Control: inventory, pick a target framework, rewrite, swap references, retire the old asset.

  1. Inventory Inline S-Controls

    Setup, Custom S-Controls. Filter by Type = HTML and look for Inline-rendered ones referenced in page layouts.

  2. Pick the target framework

    Visualforce inline page for a like-for-like replacement; Lightning Web Component for modern Lightning Experience integration.

  3. Rewrite the HTML and JavaScript

    Translate the S-Control content into the target framework. Replace AJAX Toolkit calls with @AuraEnabled Apex methods. Use the framework''s component library for UI elements.

  4. Add to the page layout or Lightning Record Page

    For Visualforce: add the inline page section to the layout. For LWC: drop the component onto the Lightning Record Page.

  5. Remove the Inline S-Control reference

    Edit the page layout, remove the S-Control section. Save the layout.

  6. Test and delete

    Test the new implementation. Once confirmed working, delete the original Inline S-Control to clean up metadata.

Gotchas
  • Inline S-Controls do not render in Lightning. The empty layout region is the visible signal of unfinished migration.
  • The S-Control editor is removed; existing Inline S-Controls cannot be modified, only replaced.
  • AppExchange packages built on Inline S-Controls may be unsupported in current Salesforce releases. Plan vendor outreach as part of the migration.
  • Lightning Web Components have stricter security than Inline S-Controls (Lightning Locker). Some JavaScript patterns that worked in S-Controls do not work in LWC.
§

Trust & references

Sources

Cross-checked against the following references.

Official documentation

Straight from the source - Salesforce's reference material on Inline S-Control.

Was this entry helpful?
Help us write better definitions. Quick reactions or detailed edit suggestions.

About the Author

Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.

§

Test your knowledge

Q1. What were Inline S-Controls?

Q2. What's the modern replacement?

Q3. Should you use Inline S-Controls today?

§

Discussion

Loading…

Loading discussion…