---
schema_version: "1"
id: 9f1cd61216a18c354f3bffa5f5a82d780b22cc0774bafa353e7ec58950b1af3b
title: Tips on Building S-Controls
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/dev_tips_on_building_scontrols.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.dev_tips_on_building_scontrols.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 491d5370aa5ff45e3b4d88aed159a55e5d6f7498d4e98437488c30df29f5df88
description: Use these tips when building s-controls.
products:
  - Salesforce Platform
release: "264"
---
# Tips on Building S-Controls

Use these tips when building s-controls.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: Salesforce Classic</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Contact Manager</strong>, <strong>Group</strong>, <strong>Professional</strong>, <strong>Enterprise</strong>, <strong>Performance</strong>, <strong>Unlimited</strong>, and <strong>Developer</strong> Editions</td></tr></tbody></table>

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small permission">
      <colgroup>
        <col style="width:50%">
        <col style="width:50%">
      </colgroup>
      <thead class="slds-text-title_caps ">
        <tr class="">
          <th scope="colgroup" class="slds-cell-wrap" colspan="2" style="text-align:center;vertical-align:top;" id="d13371e80">User Permissions
            Needed</th>
        </tr>
      </thead>
      <tbody>
        <tr class="">
          <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d13371e80 ">To create, edit, and delete custom s-controls:</td>

          <td class="slds-cell-wrap" style="vertical-align:top;" headers="d13371e80 ">Customize Application</td>

        </tr>
      </tbody>
    </table>

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_code-264-0-0-production-enus/789bc523-706b-4ae4-8fe9-be6322e38b6b/images/icon_important.png)

Important Visualforce pages supersede s-controls. Organizations that haven’t previously used s-controls can’t create them. Existing s-controls are unaffected, and can still be edited.

- If you create a URL s-control, do not select **Show Section Heading on Detail Page** in the page layout section where you put the s-control. This option in conjunction with collapsible sections causes some problems in certain browsers.
- Use global variables to access special merge fields for components like custom buttons, links, and s-controls. For example, the `$Request` global variable allows you to access query parameters inside a snippet, s-control, or custom button.
- Use the {!$Organization.UISkin} merge field in your s-control to retrieve the User Interface Theme that the organization has selected. The Theme1 value for this merge field represents the Salesforce Classic theme and Theme2 represents the Salesforce theme.
- S-controls use the {! and } characters (previously used to surround merge fields in formulas) to enclose an expression, which can include one or more merge fields, functions, or global variables.
- When overriding an action, use the `no override` argument to prevent a recursion, indicated by empty frames on the page.
- To insert activity merge fields, select **Event** or **Task** from Select Field Type.

#### See Also

- [Custom S-Control Attributes](https://help.salesforce.com/s/articleView?id=platform.dev_scontrol_fields.htm&release=264.0.0&type=5 "Find out about custom S-Control attributes.")
- [Defining Custom S-Controls](https://help.salesforce.com/s/articleView?id=platform.dev_scontrol.htm&release=264.0.0&type=5 "S-controls provide a flexible, open means of extending the Salesforce user interface, including the ability to create and display your own custom data forms.")