The migration steps are the same as for any S-Control: inventory, pick a target framework, rewrite, swap references, retire the old asset.
- Inventory Inline S-Controls
Setup, Custom S-Controls. Filter by Type = HTML and look for Inline-rendered ones referenced in page layouts.
- Pick the target framework
Visualforce inline page for a like-for-like replacement; Lightning Web Component for modern Lightning Experience integration.
- 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.
- 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.
- Remove the Inline S-Control reference
Edit the page layout, remove the S-Control section. Save the layout.
- Test and delete
Test the new implementation. Once confirmed working, delete the original Inline S-Control to clean up metadata.
- 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.