Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
SmallBuilder is available for installation directly from the AppExchange.
When you install SmallBuilder, you will get access to the free trial by default. You can implement Line-item Configurators, Document Templates, and Lists with the free trial. However, if you want to set up more than one configuration, you need to purchase a license.
SmallBuilder offers 10 free licenses. Before using the product, ensure that each user has the appropriate SmallBuilder license and permission set assigned for access.
After an organization is initially created, the currency may be set to null. If the currency is not properly configured, SmallBuilder may not function correctly. Make sure to verify that your organization’s currency is properly set before using the product.
To perform metadata-related tasks, such as adding buttons to page layouts or creating tabs in the builder screen for SmallBuilder, you need to configure the connected app.
After an organization is initially created, the currency may be set to null. If the currency is not correctly configured, SmallBuilder may not function properly. Please ensure the organization’s currency is properly set before using the product.
If multiple currencies are enabled, you can skip this process.
In Setup, enter Company in the Quick Find box, then select Company Information.
A SmallBuilder license must be assigned to each user individually. Follow these steps to assign a license:
In Setup, enter Installed Packages in the Quick Find box, then select Installed Packages.
Find SmallBuilder {Product Name} and click on Manage Licenses.
Click Add Users to select the users to whom you want to assign the license.
Click Add.
SmallBuilder offers two distinct permission sets. Please assign the appropriate permission set based on the user's role. Assigning a permission set is essential to fully utilize the product's features.
SmallBuilder {Product Name} Manager
The SmallBuilder Manager permission set is assigned to users responsible for the overall management of the product. Typically, it is assigned to administrators, who can perform a variety of tasks such as configuring builder settings, adding buttons to line items, and creating tabs from list products.
SmallBuilder {Product Name} User
The SmallBuilder User permission set is primarily assigned to sales representatives or project managers. Users with this permission set can view lists and documents implemented with SmallBuilder, as well as add and edit data in line items and schedules.
Click Edit.
Under Currency Settings, ensure that a valid currency is selected.
If the currency is set to null, select the appropriate currency.
SmallBuilder Line Items
Customize standard line items for Opportunities, Quotes, and Orders, and easily implement line items on custom objects using a Low/No-Code approach.
SmallBuilder Documents
Create reusable document templates effortlessly, support custom objects, and implement them using a Low/No-Code approach.
SmallBuilder Lists
Create custom lists using a Low/No-Code approach, featuring filters, bulk actions, and data retrieval from other systems.
SmallBuilder Schedules
Automatically split quantities and amounts, and easily implement schedule management in your desired format.




After an organization is initially created, the currency might be set to null. If the currency is not properly configured, SmallBuilder Line Items may not function as expected. Ensure the organization’s currency is properly set before using the product.
If multiple currencies are enabled, you can skip this process.
In Setup, enter Company in the Quick Find box, then select Company Information.
v 1.37 - This release includes renaming of DataSource to Business Rule, UI/UX improvements for filter and rule configuration, and the introduction of virtual columns in the Line Item Editor.
The Product Option feature allows you to add sub-options to a line item, making it possible to register and manage components of a specific product (e.g., additional services, accessory products). This is particularly useful when handling product configurations.
The Product Option feature is available only for certain standard objects:
Opportunity
Quote
Order
For more details, refer to the builder’s documentation on Line Item Object Settings:
View Line Item Object Settings Documentation >
To use the Product Option feature, first activate it in the builder and configure the required settings and data. Follow the setup procedures outlined in the reference documentation:
View Product Option Setup Procedures >
Learn how product options are displayed and stored in line items:
View Display and Storage Methods >
Click Edit.
Under Currency Settings, ensure that a valid currency is selected.
If the currency is set to null, select the appropriate currency.
To smoothly configure the builder and use the editor in SmallBuilder Line Items, a few initial setup steps are required.
Install SmallBuilder Line Items in your organization from the AppExchange.
SmallBuilder Line Items offers 10 free licenses. Before using the product, assign the relevant licenses and permission sets to users for access.
After an organization is initially created, the currency might be set to null. If the currency is not properly configured, SmallBuilder Line Items may not function as expected. Ensure the organization’s currency is properly set before using the product.
To perform metadata-related tasks such as adding buttons to page layouts or retrieving custom labels in the builder, additional configurations for the connected app in SmallBuilder Line Items are required.
The Line Item Editor provides a responsive layout tailored to device types (desktop and mobile). It adjusts the size and structure of the editor to deliver an optimal user experience based on the display environment. While desktops display more comprehensive information, mobile devices offer a simplified view.
If you prefer a simplified, consistent layout across all devices, set the device mode to Mobile. This ensures a streamlined and uniform interface regardless of the device being used.
Responsive
Automatically optimizes the screen based on the device environment.
Desktop
Displays the editor in desktop mode regardless of the device type.
Mobile
Displays the editor in mobile mode regardless of the device type.
Some features are not supported in mobile mode:
Data filtering in the Lookup Selector.
Product options.
Bulk deletion in the Line Item Editor
You can customize the titles for the Lookup Selector and the Line Item Editor to fit your needs when launching the editor.
For instance, if you use multiple editors for the same object but want to display different titles based on the editor’s purpose, you can modify the labels. Additionally, the button label that navigates from the Line Item Editor to the Lookup Selector can also be changed.
These label changes can be easily configured by clicking the labels menu in the side panel.
You can modify the title labels for both the Lookup Selector and the Line Item Editor. By clicking the icon( ) next to the input field, you can insert that will display translated titles based on the user’s language settings.
The button label that navigates from the Line Item Editor to the Lookup Selector can also be customized. Similar to titles, you can click the icon button( ) to insert custom labels, enabling translated labels based on the user’s language settings.
For examples of how to apply custom labels, refer to the into Labels menu. This menu provides detailed instructions and examples of how to use custom labels effectively.
This setting automatically retrieves data when the Lookup Selector screen is loaded. By default, this option is enabled.
If this setting is disabled, data will not be automatically retrieved upon loading. Instead, records can only be retrieved through keyword searches.
Default (Enabled)
Disabled
Configure the target fields to be searched when entering a keyword. By default, the Name field is set as the target field, and the matching condition is Contains.
The keyword search field is set to the Name field of the PricebookEntry object. The search condition is Contains, meaning that records where the product name includes the entered keyword will be retrieved.
In the editor’s lookup selector screen, if you type ‘Gen,’ only records with ‘Gen’ included in their product name will be displayed.
The parent object serves as the master object for the line item object, maintaining either a Master-Detail or Lookup relationship. The Line Item Editor is executed from the record page of the parent object. When searching for a parent object in the builder, only objects with child objects can be selected.
The Line Item Editor is launched from the record page of the parent object.
Configure the alignment of column values. There are three alignment options: left, right, and center. The default alignment is set to left.
Configure the fields (columns) to be displayed in the lookup selector. You can also add virtual columns to display data retrieved from DataSources.
In the Lookup Selector Setup step, click the Add Column button to select the fields to be displayed in the lookup selector.
Configure the properties of the fields used in the Line Item Editor. For each selected record from the Lookup Selector, define attributes such as price, discount rate, quantity, and more.
1
Select fields from the Line Item object to be used during editing, and configure their default values and attributes.
2
Use DataSource to display additional data beyond the Lookup object records. You can also utilize Apex Classes to handle complex logic or fetch data through external interfaces, enabling advanced data display in the Line Item Editor.
You can change the column labels displayed in the Lookup Selector’s data table. By default, the selected field’s label is shown. However, you can override it by entering a custom value in the label input field. Additionally, by clicking the icon( ) next to the input field, you can insert custom labels, which will display translated labels based on the user’s language settings.
Create virtual columns to store temporary values for displaying data retrieved from a DataSource. Virtual columns can be added by clicking the Add Virtual Column button and support value types such as text, number, and currency.
Virtual columns are designed for use with DataSources. For more details, refer to the DataSource documentation.
Example of DataSource Usage >
Implemented line item configurator migration feature, improved UI/UX for text area fields, and fixed filter-related and other errors.
Fixed mobile UI/UX issues and certain save errors
This release includes renaming of DataSource to Business Rule, UI/UX improvements for filter and rule configuration, and the introduction of virtual columns in the Line Item Editor.
You can customize the column labels displayed in the Line Item Editor. By default, the label of the selected field is shown. However, if you enter a value in the label input field, the entered value will be displayed. Additionally, clicking the icon( ) next to the input field allows you to insert custom labels. This ensures that the label is translated according to the user’s language settings.
This setting ensures that the filter search layout is displayed in an expanded state by default. If you frequently use filters, enabling this feature can enhance usability.
When the Lookup Selector loads, the filter search layout will be displayed in an expanded view by default.
Default (Disabled)
Enabled
The Hidden Setting for columns in the Line Item Editor is primarily used for the following scenarios:
Handling Field Values for Calculations
When specific field values are required for advanced calculations, these fields must be included in the Line Item columns. However, users may not need to see all of these fields on the screen. By using the hidden setting, these fields can be excluded from display while still being available for calculations.
Preventing Formula Field Errors
Formula fields in the Line Item object are recalculated during save operations. If a formula depends on a field with a null value, it may result in an error. To prevent this, the hidden setting ensures that required fields are added to the columns and assigned appropriate values without being visible to users.
Designate a Line Item field input as required to ensure users provide the necessary information.
Fields designated as required are marked with a red line on the left side of the input box.
If a required field value is not entered before saving, an error message will be displayed as shown below.
If you want to skip the lookup selector and directly transition to the Line Item Editor, activate the Block Lookup Selector feature. Additionally, you can block the lookup selector based on specific conditions.
To set blocking conditions, use a specific field from the parent object as the control field. This field must be of the Boolean type, and if the value is true, the lookup selector will be blocked.
In the Line Item Editor, product addition (line item addition) is blocked for renewed opportunities. In this example, the IsRenewed__c field in the Opportunity object is used to define the blocking condition.
When the IsRenewed__c field is set to true, the button to transition to the lookup selector screen will not be displayed in the editor.
Once the builder configuration is complete and you have verified its functionality through the preview, activate the builder to make the editor ready for use. The editor cannot be used unless the builder is activated.
Activation is required to add the editor button.
You can fix the column width in the Lookup Selector’s data table. The unit for width is specified in pixels (px).
📦 Package Upgrade
https://login.salesforce.com/packaging/installPackage.apexp?p0=04tPf000000VPlJIAW
🗓️ Release Date
2025. 06. 09.
📒 Summary
🔸 Inline Editor
A new inline editor feature has been added, allowing you to edit records directly from the list view. You can now click on individual record values displayed in the list to edit and save them immediately—eliminating the need to navigate to the detail page. This enhancement significantly improves the efficiency of repetitive data editing tasks and streamlines list-based workflows.
If you want to cancel unsaved changes and restore the builder settings to their original state, use the Reset feature.
The reset feature only restores unsaved changes. It cannot undo changes that have already been saved. For safe configuration changes, it is recommended to clone the builder before making modifications.
To use the Product Option feature, it must be activated in the builder. This setting can be enabled in the Lookup Object section during the object connection stage.
As noted earlier, the Product Option feature is available exclusively for standard objects such as Opportunity, Quote, and Order.
This limitation exists because Product Options rely on PricebookEntry to retrieve product and pricing information. Since Salesforce only establishes a direct relationship between PricebookEntry and these objects (Opportunity, Quote, and Order), the feature is restricted to them.
This setting specifies the number of records displayed per page (or scroll). The default is 50 records per page.
You can assign default values when adding Line Items. Default values can only be set for text or numeric fields.
Default values are only assigned when a Line Item is added for the first time.
In the builder, set the default value for the quantity field (column) to 1.
When adding a Line Item, the quantity will automatically be assigned a value of 1.
This setting allows the same record to be selected multiple times.
When a record is selected, it is either selected or deselected as usual.
With duplicate selection enabled, selecting the same record multiple times will add it to the line items as many times as it is selected.
https://login.salesforce.com/packaging/installPackage.apexp?p0=04tPf000000WGEXIA4
2025. 07. 28.
You can now add actions (buttons) to child lists as well. Previously, actions such as creating records, deleting them, or launching flows could only be configured for the main or parent list. With this enhancement, the same actions can also be applied to child lists. This allows users to perform key operations on related records directly, significantly improving the usability and efficiency of list-based screens.
Configure fields to display totals at the bottom of the Line Item Editor.
Before setting up totals, ensure the “Show Summary” option is enabled in the Default Settings.
In the builder, check the Summary option for the TotalPrice field.
The total sum of TotalPrice is displayed at the bottom of the editor.
📦 Package Upgrade
🗓️ Release Date
2025. 4. 2.
📒 Summary
📦 Package Upgrade
🗓️ Release Date
2025. 7. 17.
🐛 Bug Fixes
To perform metadata-related tasks such as adding buttons to page layouts or retrieving custom labels in the builder, additional configurations for the connected app in SmallBuilder Line Items are required.
In Setup, enter Connected Apps in the Quick Find box and select Manage Connected Apps.
To register a line item, you first need to search for a lookup object, such as a product, select the desired record from the search results, and configure details like quantity to complete the registration. The lookup selector setup allows you to configure the layout of search results for lookup object queries.
To implement the Line Item Editor, follow these steps:
The first step in the builder is to define the relationship between objects that will be used in the Line Item Editor. This relationship must follow a junction structure, and you need to configure the Parent, Line Item, and Lookup objects.
To register line items, first search for a lookup object (e.g., product), select the desired record from the search results, and set quantities or other attributes to create line items. The search configuration allows you to define the layout of search results for lookup objects.
The Default Setting configures essential options for the Builder, including its name, description, and key features such as whether to display data directly in the Lookup Selector or show summaries in the Line Item Editor.
These settings can be configured from the side panel of the Builder.
📦 Package Upgrade
🗓️ Release Date
2025. 4. 8.
🐛 Bug Fixes
x`Configure filters to load specific records of the lookup object that meet defined conditions, and set sorting options to arrange the records in the desired order when the Lookup Selector screen loads.
Filters ensure that only records meeting the specified conditions are displayed when the Lookup Selector is loaded. The filter configuration follows the syntax of a SOQL WHERE clause.
For example, to display only active PricebookEntry records, you can write:
Additionally, you can use the Query Wizard to automatically generate filters without manually writing them.
Start by selecting the parent object, then move to the child object (line item), and finally configure the lookup object that the line item refers to. When defining the lookup object, you must select the field in the line item that references the lookup object.
Let’s assume you are setting up the builder for OpportunityLineItem based on the Opportunity object. As shown in the object structure diagram below, OpportunityLineItem has two key relationships:
Opportunity
These settings pertain to the Lookup Selector, allowing you to configure record selection methods and search functionality.
Automatically retrieves data when the Lookup Selector screen is loaded. This option is enabled by default.
Displays filter options in an expanded state by default. Enable this feature if you frequently use filters.
The Lookup Object is referenced by the Line Item Object, allowing users to select lookup records that serve as the basis for creating line item records.
You can leverage the Add Button feature at the top of the builder to add the implemented Line-Item Configurator to the Parent object's page layout.
This button will appear on the Parent object's page in Salesforce so that users can launch the Line-Item Configurator that you have set up.
Configure filters and sorting to display specific saved line items that meet certain conditions when the Line Item Editor is executed. These settings help you display only the desired data and control the order in which it is retrieved.
When the editor is executed, you can filter the saved line item data to display only the records that match specific conditions. Filters follow the same logic as the WHERE clause in SOQL.
For instance, if you want to use the editor to manage Opportunity Products divided into regular and subscription-based products, you can apply filters to each editor. For an editor handling subscription-based Opportunity Products, you can filter records where the custom field Type__c equals ‘Subscription’ by writing the filter as follows:
You can export the current org’s Line Item Builder configuration as a JSON file, or import a JSON file created in another org to perform a migration. This allows you to easily transfer Line Item Builder settings between different organizations.
Tab creation settings within the line item configuration are not included in the migration.
Auto-numbering can be configured for line items upon saving. This feature is particularly useful when managing product options, as it helps to differentiate and organize each line item effectively.
Auto-numbering applies only when saving through the Line Item Editor. It does not apply to Salesforce internal transactions (e.g., API, Data Loader, or manual deletions).
You can fix the width of a column. The unit of measurement is pixels (px).
As shown in the image below, the widths of the Sales Price and Quantity columns are uneven, making the table visually unbalanced. To improve the appearance, you can adjust the column widths to ensure uniformity.
In the builder, set all columns to a width of 180px
The cloning feature serves two primary purposes:
Since version control is not supported, cloning the current settings allows you to make modifications and test safely. This ensures that you can experiment with changes without affecting the original setup.
Manage settings related to the Line Item Editor, such as displaying summaries at the bottom or fixing the first column.
Displays summary information at the bottom of the Line Item Editor.
Fixes the first column when scrolling horizontally in the Line Item Editor. If there are many columns to display, try freezing the first column for better navigation.
You can set up DataSources when you want to show data from other related objects, or from external systems in addition to fields from the Lookup or Line Item objects.
If you're setting up a DataSource for a Lookup object, go to the Setup Lookup Selector step. If you're setting up a DataSource for a Line Item object, go to the Setup Line-item Editor step.
Q: Can I set a filter so that only specific values will be displayed to users when they are selecting from the Parent objects?
In Advanced Condition, you can use
{$Parent.fieldname}to filter for the desired Parent field values. 🔗 Reference:
Q: Can I just use the Line-Item Editor without the Lookup Selector?
If you check "Block adding items" on the Linked Objects Setup screen when specifying the Lookup object, users will only be able to use the Line-Item Editor, not the Lookup Selector. However, you must still specify a Lookup object. In the future, we plan to support the use of the Parent and Line-Item objects alone, without a Lookup object.
Caching enhances performance by enabling faster data retrieval and providing a more stable environment. However, cached data may not reflect recent changes immediately.
If issues arise where data does not reflect the latest updates, consider disabling the caching setting.
In Setup, enter Installed Packages in the Quick Find box, and select Installed Packages.
Locate SmallBuilder Line Items and click Manage Licenses.
Click Add Users and select the desired users.
Click Add to complete the license assignment.
SmallBuilder Line Items provides two permission sets. Be sure to assign the appropriate permission set based on the user’s role. Assigning a permission set is essential to ensure smooth use of the product’s features.
The SmallBuilder Line Items Manager permission set is designed to enable administrators to manage SmallBuilder Line Items comprehensively. Administrators with this permission set can efficiently perform tasks such as configuring the builder and adding line item buttons.
The SmallBuilder Line Items User permission set is intended for regular users who need to edit line items. It is typically assigned to roles such as sales representatives or project managers responsible for viewing and modifying line item data. This permission set allows users to easily access and update line item information.
List Configurator Migration
Inline Editor
Child List Linking, Pinned Colums, Increase Excel Data Limit, Add Line Item Actions, and more.
Various bug fixes.
Child List Action.
Builder
Fixed an issue where creating a list of Task records caused the error 'Object Task is not supported in UI API'.
Configurator
Fixed an issue where clicking the refresh icon caused duplicate records to appear.
Fixed an issue where translated values of picklist fields were not displayed correctly when the inline editor was activated.
Fixed an issue where the inline editor was rendered underneath other columns when columns were pinned.
Fixed an issue where the label of the selected value in a lookup filter was not displayed when the "Keep Filter Values" option was enabled.
Fixed an issue where an error occurred in list view filters when using the "Does Not Contain" condition.
Fixed an issue where the date format in exports did not match the list view.
Configure the properties of line item fields. Define attribute fields such as price, discount rate, and quantity based on the selected lookup records.
Review the configured line item fields using the preview function. This helps validate that the defined properties work as expected.
Once the setup is complete, activate the builder. Activation applies the editor settings and enables you to create a button for executing the editor.
After completing the setup, create a button and add it to the parent object’s page layout. Users can click this button to launch the editor.
Builder
Fixed an issue where an error occurred when all fields were deleted and re-added during the Lookup Selector or Line Item Editor setup steps and then saved.
⚠️ For existing orgs with the package installed, please deactivate the following Validation Rules in the Line Item Editor object (SBLI__JunctionBuilder__c):
RequiredLookupFieldsAtLeastOne
RequiredLineItemFieldsAsLeastOne
Editor
Fixed an issue where edited option prices were not reflected when reopening the option selector.
Fixed an issue where blank values were not retained after saving and reopening the editor.
Mobile View:
Fixed a Recalculation Formula error that occurred when adding Line Items.
Improved spacing for read-only fields with no value to ensure clearer visual separation.
Complete the required settings in the builder. Specify which line item field will store product option information and set up filters to determine the criteria for retrieving product options.
After configuring the settings, prepare the data for product options. Use the Product Feature (SBLI__ProductFeature__c) and Product Option (SBLI__ProductOption__c) objects in SmallBuilder Line Items to define and organize the product option data.
Q: Can I control deletion of objects from the Line-Item Editor based on certain conditions?
You can specify a Boolean field in the Line-Item object to control whether or not objects can be deleted. Where the value of this field is true, deletion will be blocked.
🔗 Reference: Linked objects setup > Line-item Object Advanced Settings > Delete Controller Field
1
Configure Lookup Fields Add fields (columns) to display in the search results of the lookup selector and configure their properties. Additionally, you can add virtual columns to display data retrieved from DataSources.
2
DataSource If you want to display additional data beyond the lookup object records, you can use DataSources to fetch and display data from other objects. By utilizing Apex Classes, you can also implement complex logic or fetch data through external interfaces and display it in the lookup selector.

Caching to improve performance Speeds up data retrieval and provides a stable environment by using caching. However, cached data may not reflect recent changes immediately.
Records By Page Specifies the number of records displayed per page (or scroll). The default is 50 records per page.

1
Select Lookup Reference Field Configure the field in the Line Item Object that references the Lookup Object.
2
Set Keyword Search Define which field values will be used for searching lookup records. By default, the Name field of the Lookup Object is used as the search criterion.
3
Block Lookup Selector If you want to disable the Lookup Selector in the Line Item Editor and allow only direct editing of line items, you can block the Lookup Selector. This setting can also be conditionally enabled or disabled based on specific criteria.
4
Set Filters and Sorting for Lookup Records Use filters to retrieve only the necessary data, and set the desired sorting order for the retrieved data.



Fields can be set to read-only based on specific conditions through the Advanced Read-Only Settings in the field’s advanced settings menu. For more details, refer to the Set Read-Only Based on Specific Conditions guide.












































After an organization is initially created, the currency may be set to null. If the currency is not correctly configured, SmallBuilder Lists may not function properly. Please ensure the organization’s currency is properly set before using the product.
If multiple currencies are activated, you can skip this process.
In Setup, enter Company in the Quick Find box, then select Company Information.
Click Edit.
Under Currency Settings, ensure that a valid currency is selected.
If the currency is set to null, select the appropriate currency.
SmallBuilder Lists offers a powerful and flexible record listing feature. This system enables users to create and manage customized lists tailored to their needs by leveraging various data sources. It supports a wide range of filtering options and actions, making it highly adaptable. With SmallBuilder Lists, users can quickly address complex business requirements and make effective, data-driven decisions.
Salesforce provides basic List Views for each object, which are essential for viewing data but come with significant limitations:
1. Limited Button Creation
In Standard List Views, buttons can only be implemented using URL or Visualforce Page formats, except for cases involving record creation or updates. For example, adding a button to generate orders by selecting multiple products in a product list requires using a URL format, which often involves additional configurations in the Flow itself, making the implementation complex and cumbersome.
2. Lack of Data Export Functionality
The lack of a data export feature is a limitation. Currently, it is not possible to export the data retrieved in lists to Excel. While this is a feature frequently requested by many clients, it requires additional development at this time. This inconvenience has been a longstanding concern for users.
3. No External Data Integration
Integration with external data is not supported. In the Standard List View, it is not possible to directly access real-time data from external systems such as ERP.
SmallBuilder Lists addresses these limitations by offering advanced features, as well as highly requested features like Excel export and real-time integration with external data. Additionally, its intuitive Point & Click List Builder allows anyone to implement advanced features without requiring development skills.
The key features of SmallBuilder Lists are as follows:
Admins can effortlessly configure filters, action buttons, and columns using the Point & Click interface. Real-time previews during setup allow users to see the results of the list configurations instantly.
SmallBuilder Lists supports multiple button types, including New, Delete, Flow, and URL. By adding Flow buttons, users can create buttons with a wide range of functionalities.
Up to 50,000 searched records can be exported to Excel. This feature can be enabled or disabled in the List Builder, providing flexibility based on business needs.
Filters based on fields from the selected object allow users to extract and view only the records they need.
Whether internal or external, data scattered across multiple systems can be seamlessly viewed in one place using the Data Source feature.
This feature consolidates data from different sources into a single view, much like replacing multiple small windows with one comprehensive, panoramic view.
Button Label
The label displayed on the editor button.
2
Page Layout
Select the page layout where the button will be added after creation.
When the Line Item Editor button is created in the builder, an Aura Component like the one below is automatically generated. If you want to customize how the button invokes the editor, you can modify the Aura Component.


1
recordId
The record ID of the Parent, as set in the builder.
✔
builderId
The record ID of the builder.
✔
<aura:component implements="force:lightningQuickActionWithoutHeader,force:hasRecordId" >
<SBLI:LineItemConfigurator
builderId="XXX..."
recordId="{!v.recordId}" />
</aura:component>View and Edit Mode Separation: The configuration layout has been separated into a read-only view and an editable modal window for more clarity.
Description Field Added: You can now document what each Business Rule does using the new description field.
Improved Parameter Handling: For Apex-based Business Rules, the new layout better supports multiple parameters and long field lists.
Visual Filter Tool: Replaces raw input of SOQL filters with an intuitive filter builder.
Business Rule Overview
Business Rule Edit Modal
DataSource
Renaming: The term DataSource has been renamed to Business Rule throughout the app.
Improved UI/UX: The Business Rule configuration screen has been redesigned for easier setup and management.
New Evaluation Event - “On Change”: Now supports execution when specific fields are updated, enabling more dynamic data processing.
Line Item Editor
You can now add Virtual Columns to the Line Item Editor. These columns are currently intended for use with Business Rules (formerly DataSources) to display mapped values.
Filter Configuration Enhancements
Enhanced the filter configuration with a more intuitive UI for setting filter conditions, replacing the need for manual SOQL input.
Enable Show Summary in the Line Item Options under the Default Settings.
In the Line Item Editor Settings step, enable the summary attribute for the TotalPrice field (column).
When the Line Item Editor is executed, the sum of the total price values for all added data will be displayed at the bottom of the editor.

Click Edit for SmallBuilder Line Items OAuth.
Set Permitted Users to Admin approved users are pre-authorized.
Click Save.
In Setup, enter Connected Apps in the Quick Find box and select Manage Connected Apps.
Click SmallBuilder Line Items OAuth.
At the bottom, click Manage Profiles or Manage Permission Sets.
Select the profile or permission set responsible for configuring the product using the builder.
Click Save.
Responsive UI for Devices The Builder provides settings to optimize the UI for different device types (desktop, tablet, and mobile). The editor adjusts its size and layout based on the display environment to deliver an optimal user experience. Desktops display more detailed information, while mobile devices offer a simplified UI. If you prefer a consistent and simplified UI across all devices, set the mode to Mobile, which ensures a streamlined interface regardless of the device.
Adjust Screen Scale The side panel allows you to adjust the screen scale of the editor. For instance, on smaller displays, the UI may take up too much space, causing inconvenience. Lowering the screen scale reduces the size of the editor for improved usability.
Lookup Selector Settings Configure settings related to the Lookup Selector. This includes record selection methods and search functionality.
Manage settings related to the Line Item Editor, such as displaying summaries at the bottom or fixing the first column.
Configure Editor Titles and Button Labels You can update the titles and certain button labels in the editor screen. By inserting custom labels, you can enable automatic translation based on the user’s language settings, improving usability across various languages.

To use a parent object field value in a filter, bind it using the syntax {$Parent.FieldName}.
For instance, to display only records with the same currency as the parent object, you can write the filter as:
CurrencyIsoCode = {$Parent.CurrencyIsoCode}
This dynamically references the parent object's currency field, ensuring relevant records are retrieved.
Sorting ensures that the data appears in the desired order when the Lookup Selector screen loads. The sorting configuration follows the syntax of a SOQL ORDER BY clause.
For example, to sort PricebookEntry records by name in ascending order, you can write:
IsActive = trueName ASCOpportunityIdPricebookEntry
The object referenced by OpportunityLineItem for product and pricing information, linked via the PricebookEntryId field.
Choose Opportunity as the parent object.
Choose OpportunityLineItem as the line item object.
Since OpportunityLineItem references PricebookEntry, select the PricebookEntryId field in the line item object as the lookup reference field.


You can also use the Query Wizard to generate the filter automatically, without manually writing it.
You can sort saved line item data in the desired order when the editor is executed. Sorting follows the same logic as the ORDER BY clause in SOQL.
For example, to sort line items by their creation date in descending order, use the following setting:
Type__c = 'Subscription'CreatedDate DESCWhen adding Opportunity Products, assign the selected product’s Unit Price as the default value for the Unit Price field in the Line Item.
The Line Item includes both List Price and Unit Price fields. These fields will be populated with values from the Unit Price field in the Lookup Object (PricebookEntry).
In the source field setting for List Price and Unit Price, select Lookup as the first option.
For the second option, select Unit Price.
The selected products’ Unit Price is assigned as the default value to the List Price and Unit Price fields in the Line Item.

JSON Export is a feature that converts line item configuration data into JSON format, making it available for file storage or transfer to external systems.
JSON Import is a feature that allows users to bring externally provided JSON-formatted data into the org, interpret it, and apply it to the system. With this feature, users can easily load previously saved line item configuration settings or add and update new configurations to efficiently manage the configuration environment.
The line item object stores additional details entered after selecting reference data.
The lookup object is referenced by the line item object. Users select lookup records, which are then used to create line item records.
To manage multiple products related to an Opportunity, the OpportunityLineItem object is used. This object references PricebookEntry to retrieve product and pricing information. Using SmallBuilder Line Items, we will reconfigure this standard Opportunity Product registration screen.
Parent Object: Opportunity Serves as the parent object linking multiple products and maintains a Master-Detail relationship with OpportunityLineItem.
Line Item Object: OpportunityLineItem Stores product-related data such as sales price, quantity, and total amount and is linked to the Opportunity.
Lookup Object: PricebookEntry Retrieves product names and pricing information and is referenced by OpportunityLineItem through a Lookup relationship.

Suppose you are saving opportunity products through the Line Item Editor on the Opportunity detail page, generating a quote from the opportunity, and syncing the updated data back to the opportunity. If the SortOrder field is not properly saved, line items for product options may appear in the wrong order, causing confusion for users. To address this, you can assign auto-numbering to the SortOrder field, ensuring correct ordering during syncing.
In the Relate Objects step of the builder, enter the API name of the SortOrder field in the Auto-Number Field setting.
To display the sort order, add the SortOrder field in the Line Item Editor Setup step.
When you launch the Line Item Editor, you will see auto-numbered values in the Sort Order(SortOrder) column.
For option line items, only the following fields will be displayed in the editor:
Product Name
List Price
Unit Price
Quantity
Total Price
Discount Rate/Discount Amount

You will notice that the column widths now appear more stable and uniform compared to before.


When you need to create additional Line Item Editors with similar configurations, cloning helps you quickly set up and adjust new editors.
Click the Clone button at the top of the Builder.
Make any additional settings or modifications on the cloned builder screen.
Click Save to complete the cloning process.
Click the Add data sources button to open the DataSource editing layout.
When adding a DataSource for the Line Item Editor, an Evaluation Event needs to be specified.
On Initialization: Executes when a new Line Item is added.
On Loading: Executes when the Line Item screen is loaded.
Before Save: Executes before a Line Item is saved.
Basic DataSources are used when you want to look up related objects in Salesforce to present data together.
For example, if the Lookup object is specified as Product2 and you want to display the unit price from a PricebookEntry, you can use an internal data source to look up the PricebookEntry that meets the criteria, and display the product and unit price together.
Advanced DataSources are mostly used when you want to retrieve data from an external server and display it together with data from the Parent, Line Item or Lookup objects. Since the data is retrieved using a user-created Apex Class, it has the advantage of being able to retrieve data more freely than with internal Salesforce data sources.
For example, if you want to fetch real-time inventory numbers from an external server or ERP system, then you can write Rest API code in an Apex Class and point it to an external data source. Then, you will be able to view that data in the Line Item Editor.
The DataSource executes in the following sequence: Basic first, followed by Advanced.
Basic DataSource
Executes in the order in which it was added.
Advanced DataSource
Generally executes in the order it was added, but the execution order may not always be guaranteed.

If the editor contains many columns, reducing the screen ratio allows you to view more columns on a single screen.




















📦 Package Upgrade
https://login.salesforce.com/packaging/installPackage.apexp?p0=04tPf000000VG25IAG
🗓️ Release Date
2025. 5. 28.
📒 Summary
🔸 Migration
The list configurator migration feature is now available. You can export list configuration settings from the current org as a JSON file, or import a JSON file created in another org to migrate settings. This allows you to easily transfer list configurator between orgs.
Before you begin, certain preparatory steps are necessary to fully utilize the powerful features of SmallBuilder Lists. These steps are essential for configuring the system efficiently and customizing it to meet your specific requirements. By completing these steps, you can ensure a smooth implementation of SmallBuilder Lists and optimize its performance in your organization.
Install SmallBuilder Lists in your organization from AppExchange.
SmallBuilder Lists offers 10 free licenses. Before using the product, ensure that each user has the appropriate SmallBuilder license and permission set assigned for access.
After an organization is initially created, the currency may be set to null. If the currency is not properly configured, SmallBuilder may not function correctly. Make sure to verify that your organization’s currency is properly set before using the product.
For metadata-related operations like creating and managing tabs within SmallBuilder Lists, additional configurations for the connected app associated with SmallBuilder Lists are required.
The builder provides automatic configuration support specifically for standard Opportunity, Quote, and Order objects. If the parent object is one of these, you can choose between the following two configuration methods:
1
This option automatically sets up the required configurations for the Line Item and Lookup objects based on the parent object. It allows you to set up the editor quickly and easily.
2
This option is available exclusively for standard objects such as Opportunity, Quote, or Order. It enables automatic setup of required configurations for the Line Item and Lookup objects, allowing for rapid configuration without manual effort.
When you apply standard settings for the Opportunity parent object, the following are configured automatically:
Line Item Object
Configured as OpportunityLineItem
Essential fields such as Unit Price, Quantity, and Total Price are automatically added.
Lookup Object
If your parent object is a custom object or you prefer custom setup, choose Manual Configuration.
Manual Configuration options include:
📦 Package Upgrade
https://login.salesforce.com/packaging/installPackage.apexp?p0=04tPf000000Vy9ZIAS
🗓️ Release Date
2025. 7. 3.
⚙️ Features
Implemented migration feature for the line item configurator
🔧 Improvement
🐛 Bug Fixes
Configure the fields (columns) to be displayed and worked on in the Line Item Editor.
Pre-added lookup reference fields cannot be deleted. If you do not wish to display these fields in the Line Item Editor, check the “Hide” option to conceal them.
In the Line Item Editor Setup step, click the Add Columns button.
In cases where the Line Item Editor is configured based on Opportunity Products, you might want to display both the Unit Price and Total Price fields. While both fields are editable in Opportunity Products, they cannot be saved simultaneously because the Total Price is automatically calculated and stored based on the Unit Price and Quantity.
It may seem sufficient to set the Total Price field to read-only. However, since the Line Item Editor relies on builder settings, a field marked as editable will still attempt to save internally, even if it appears read-only on the screen.
To ensure that fields like formula fields or other read-only fields are not saved, you must explicitly activate the Do Not Save setting for these fields.
The line item object is responsible for selecting reference data, adding additional details, and saving the information. This object must be a child of the parent object. When the parent object is selected in the builder, associated child objects can be searched and selected. This step also provides settings for filters, sorting, auto-numbering, and more.
1
Select the object to be used as the line item and specify the field that connects this object to the parent object.
For standard objects, use the auto-configuration option to simplify the setup process.
2
If you want to display saved line items that match specific criteria when the Line Item Editor runs, configure filters and sorting.
This ensures only relevant data is displayed and controls the order of retrieved records.
3
To manage the deletion of line items based on specific conditions, designate a field that stores the result of the condition (true or false).
This field will determine whether a line item can be deleted.
4
Configure automatic numbering for line items upon saving.
This is particularly useful when managing product options, helping to differentiate and organize each line item.
The Query Wizard simplifies the process of setting up filters, especially for administrators unfamiliar with SOQL syntax. Instead of manually writing the WHERE clause in SOQL, admins can use an intuitive interface to select conditions and input values, making filter configuration much more accessible.
Normally, filter settings in the builder correspond to the WHERE clause in SOQL. For administrators who are not well-versed in SOQL, this can be challenging. The Query Wizard resolves this issue by allowing admins to configure filters without needing in-depth knowledge of SOQL.
By using the Query Wizard, admins can define filter conditions through simple selection and input steps. This significantly streamlines the process of creating filters.
When multiple filters are added in the Query Wizard, they are combined using AND logic by default.
When three filters are added using the Query Wizard:
These filters are combined into a single condition as follows:
To modify the logic, click Edit Logic and customize the logic using the filter numbers.
If you want to use OR instead of AND, edit the logic as follows:
The updated logic will generate filters based on the new condition.
Filters can also bind values to fields from the parent object. By selecting the Parent option next to the value input field, you can link the filter condition to a specific parent object field.
This feature enables dynamic data retrieval based on parent object field values, offering greater flexibility in query configurations.
Let’s configure a filter to retrieve Pricebook Entries that match the parent object’s Pricebook (Pricebook2Id):
In the Filter by Query section of the object connection step, click the Query Wizard button.
Next to the value input field, select Parent.
Search for and select the Pricebook field (Pricebook2Id) of the parent object
This configuration ensures that only Pricebook Entries matching the parent object’s Pricebook are retrieved. The Query Wizard automatically generates the necessary filter syntax, making it easy and convenient to add conditions.
The display and storage of option values in line items depend on specific option values and the fields configured in the Line Item Editor setup.
Options in the editor are displayed as read-only by default. However, quantities and prices can be modified if the Quantity Editable or Price Editable settings are activated in the option data configuration.
For an option with a quantity of 2 and a total price of $90, the calculation works as follows:
If an option value is mapped to a field that has been added as a column in the Line Item Editor, its display and storage behavior follow the column’s configuration:
If the column has the “Do Not Save” setting enabled, the value will not be stored in the database, even though it is displayed in the editor.
Fields not added as columns in the Line Item Editor will not be displayed in the editor but will still be stored internally.
If the mapped field in Salesforce has read-only field permissions, the field will not store the value even if included in the column settings.
In this scenario, the Total Price field is mapped to the TotalPrice field in the line item but is configured with the “Do Not Save” setting in the editor:
The option’s total price is mapped to the line item’s TotalPrice field.
When the option is added and saved, the TotalPrice field is not stored due to the “Do Not Save” setting.
The JSON export feature converts the data defined in the list configurator into a structured JSON format. This allows users to save the data as a file or transmit it to external systems.
The JSON export feature converts the data defined in the List Configurator into a structured JSON format, allowing users to save it as a file or transfer it to external systems. This functionality enables easy migration of configured Line Item Editors or settings to other environments, and can also be used for backup or sharing purposes.
1. Click the "Start JSON Export" button in the Migration tab.
2. Select a builder and click the Export button.
3. Review the data converted to JSON, and if everything looks correct, click the Download button to download the JSON file.
Custom labels can be applied to labels displayed in the editor wherever the icon appears. Clicking this icon opens a modal window where you can select and apply the desired custom label.
When applying a custom label, ensure the target value does not exceed the maximum allowed length. If the maximum length is exceeded, the binding to the custom label might be truncated and not applied correctly.
Always consider the length limitation when setting up custom labels.
When the lookup object is set to Pricebook Entries, the name of the lookup selector button displayed in the editor automatically inherits the object name. However, such button names may appear awkward to users. Changing the object label in Salesforce settings is inefficient because the object is used in multiple contexts, potentially impacting other screens.
Navigate to the Labels menu in the side panel.
Click the icon next to the lookup button label input field.
Select the preconfigured custom label “Add Products (SmallBuilder_AddProducts)” from the modal window.
The custom label will be translated and displayed in the editor based on the user’s language settings.
Example of Custom Label Translations for “Add Products (SmallBuilder_AddProducts)”:
When the user’s language is set to Korean, the button label displayed in the editor shows as “제품 추가”.
When the user’s language is set to English, the button label displayed in the editor shows as “Add Products”.
SmallBuilder Lists offers 10 free licenses. Before using the product, ensure that each user has the appropriate SmallBuilder license and permission set assigned for access.
A SmallBuilder license must be assigned to each user individually. Follow these steps to assign a license:
In Setup, enter Installed Packages in the Quick Find box, then select Installed Packages.
Find SmallBuilder Lists and click on Manage Licenses.
Click Add Users to select the users to whom you want to assign the license.
Click Add
SmallBuilder Lists provides two permission sets tailored for different user roles. Be sure to assign the appropriate permission set to each user to ensure smooth access to the product’s features.
The SmallBuilder Lists Manager permission set is designed for administrators who need to manage the product. With this permission set, admins can configure List Builder settings, create list tabs, and manage other administrative tasks with ease.
The SmallBuilder Lists User permission set is intended for general users who need to view lists. This permission set enables users to access and view the configured lists easily.
SmallBuilder Line Items starts with the Builder. Use the Builder to configure a customized Line Item Editor tailored to your needs.
Learn how to launch the Builder and explore its components.
Follow these steps to configure the Builder, from connecting objects to preparing the Line Item Editor for use.
SmallBuilder Line Items provides a Line Item Editor that supports discount calculators and external data integration for both standard objects like Opportunities and Quotes, as well as custom objects. This solution enables seamless implementation without requiring development.
In Salesforce, standard objects with junction relationships, such as Opportunities, Quotes, and Orders, are essential in Sales Cloud. While Salesforce provides robust out-of-the-box functionality for adding and modifying line items for these objects, there are some limitations.
Control the deletion of saved line items based on their status by specifying a Boolean field that determines whether deletion is allowed. If the specified field value is true, the delete button will be disabled for the corresponding line item.
DelDeletion control applies only within the Line Item Editor and does not affect Salesforce internal processes like API operations, Data Loader, or manual deletion.
In Setup, enter Connected Apps in the Quick Find box and select Manage Connected Apps.
Click Edit for SmallBuilder {Product Name} OAuth.
Set Permitted Users to Admin approved users are pre-authorized.
Click Save.
In Setup, enter Connected Apps in the Quick Find box and select Manage Connected Apps.
Click SmallBuilder {Product Name} OAuth.
At the bottom, click Manage Profiles or Manage Permission Sets.
Select the profile or permission set responsible for configuring the product using the builder.
Click Save.
Quantity
Displayed as the product of the configured product’s quantity and the option’s quantity.
Total Price
Displayed as the result of multiplying the option’s unit price by the option’s quantity.
Quantity
Configured Product Quantity × Option Quantity
2 (Configured Product) × 1 (Option) = 2
Total Price
Option Quantity × Option Unit Price
2 × $45.00 = $90.00





























2
Target Record Selection
Choose the target record you want to preview. The record must belong to the parent object.











Field-Level Security (FLS) is not currently enforced. If a user lacks permissions for a specific field, errors may occur. This limitation will be addressed in future updates.



Field-Level Security (FLS) is not currently enforced. If a user lacks permissions for a specific field, errors may occur. This limitation will be addressed in future updates.
Configured as PricebookEntry
Fields required for Lookup (e.g., Product Name, Unit Price) and filter conditions (e.g.m Pricebook2Id) are automatically set.
Manual Configuration: Customize Your Line Items To configure the editor using custom objects, choose the Manual Configuration option. This allows you to define the parent, line item, and lookup objects manually, giving you flexibility to design the editor.
1
Object
Select a child object of the parent to act as the Line Item object.
2
Parent Reference Field
Specify the field in the Line Item object that references the parent object. This field automatically assigns the parent when a Line Item is saved.




Confirm that the filter condition is automatically set to: {$Parent.Pricebook2Id}








Run the editor and verify that the lookup selector button label displayed in the editor reflects the updated custom label.
English
Add Products
Korean
제품 추가




The Builder provides key functions like saving, deleting, and creating buttons in the top panel. The left-side panel manages basic settings and label changes, while the right panel offers step-by-step configuration.
1
Top Panel Features In the top-left corner, the Builder displays the activation status alongside buttons for key actions:
Preview: View the configurator based on the latest saved Builder settings.
Add Button: Generate buttons for the configurator based on activated Builder settings. Assign buttons to desired page layouts for the parent object.
Activate: You must activate the Builder to use it as a configurator. Inactive Builders cannot be used.
2
Configuration Steps The Builder guides you through three primary steps, displayed in the right-side panel. Selecting any step updates the main panel accordingly:
Relate Objects: Define which objects to use as the Parent, Lookup, and Line Item. The selected objects must have junction relationships. Both standard and custom objects are supported.
Setup Lookup Selector: Configure fields for the Lookup object, including column alignment, width, and sorting settings for the Line Item Editor.
Setup Line Item Editor: Add fields for the Line Item object and apply advanced settings, such as column alignment, width, and properties based on field types (e.g., numbers, lookup fields).
3
Left-Side Panel Use this panel to configure basic settings for the Builder, including the Builder name, screen scaling, and user experience adjustments for different devices.
4
Configuration Panel Displays the settings for the selected step in the right-side panel.
Total amounts are not automatically calculated when entering sales prices or quantities.
Users must manually calculate and enter discounts.
Many users want to reference inventory data from their servers when selecting products or entering line items.
They also wish to automatically apply account-specific discounts from related objects.
These needs often require developer intervention, making it difficult for admins to customize or update features. With the Line Item Editor, these limitations are addressed using a point-and-click approach:
Automatic calculations and external data integration can be implemented with minimal development or point-and-click configurations.
The builder enables easy screen implementation, saving time and simplifying maintenance for feature updates or modifications.
The basic setup required for implementing the Line Item Editor does not need coding, making it accessible to Salesforce admins with fundamental knowledge.
In the standard Salesforce screen, total amounts are not automatically calculated when modifying unit prices or quantities after adding products.
By re-implementing the standard product editing screen with the Line Item Editor, you can expand functionality to include inventory display, automatic calculations, discount applications, and more.
The Line Item Editor is built on objects with junction relationships. As previously mentioned, Opportunities, Quotes, and Orders are examples. Let’s explore the structure of Opportunity Line Items:
When adding products to an Opportunity, the PricebookEntry object is required to retrieve product and pricing information. Once products are added, details like sales price and quantity are stored in the OpportunityLineItem object.
The OpportunityLineItem object bridges the Opportunity and PricebookEntry objects, allowing multiple PricebookEntries to be linked to a single Opportunity. Objects that serve this role are referred to as junction objects.
With these relationships in place, the Line Item Editor can be implemented at any time. Within the editor, these objects are referred to as:
Parent: Opportunity
Lookup: PricebookEntry
Line Item: OpportunityLineItem
The SmallBuilder Line Items editor supports all objects. This means it can handle line items for not only standard objects like Opportunities or Quotes but also custom objects, eliminating the need for coding.
The builder simplifies the creation of complex Line Item Editor involving three or more objects, such as Opportunities, Products, and Pricebooks.
For scenarios requiring real-time external data integration, the Builder supports integration by invoking Apex code for seamless real-time data retrieval.
The Line Item Editor can apply a discount calculator to currency fields, making it an excellent alternative to CPQ for scenarios where convenient discount calculations are essential.
For Opportunity Products linked to an Opportunity, deletion should be restricted when the product is in an approved state. To configure this, the Approved__c field is used to control deletion.
Set the Approved__c field as the deletion control field in the builder. Enter the API name of the field into the Deletion Control Field setting.
When the Approved__c field value is true, the delete button is hidden, preventing deletion of the corresponding line item.

Set up fields to link line items between configured products and their options and map fields to store option-related information.


Configure options to skip option selection when adding products and filter the options that can be selected.
Editor
Improved UI/UX for Textarea Fields
The UI for Textarea fields in the Line Item Editor has been improved.
Previously, Textarea fields were displayed as single-line input fields, making line breaks unavailable. With this update, they now support multi-line input, allowing users to enter text with line breaks more conveniently.
Builder
Fixed an issue where read-only settings were not applied to Line Items.
Resolved a “Not” condition error that occurred when using the “Does Not Contain” filter in the filter tool.
Fixed an issue where search results were reset after selecting a field in the Add Column modal for Lookup or Line Item.




Line Item Settings allow you to configure how configured product line items and option product line items are connected and how option information is mapped to line item fields.
Set the field that connects the line items of configured products to their option line items. This field must be a self-relationship field, which represents a relationship within the same object, allowing one record to reference another record in the same object.
If the Parent Line Item Field is set to Base Line Item for Option (SBLI__BaseLineItemForOption__c), a self-relationship structure is created, enabling option records to reference their configured product record through this field.
Configure which line item fields will store the information of selected options. The following option values can be mapped:
for Opportunity Products, the following mappings might be configured:
For the configured product “Desktop PC Intel i3”, the RAM option “RAM 8GB” is selected. The option has a quantity of 1, with a list price and unit price of $45 each.
The values for quantity, list price, unit price, and total price are mapped to their respective fields, as configured.
JSON Import is a feature that allows externally provided JSON-formatted data to be imported into the organization, parsed, and applied to the system. With this functionality, users can easily load previously saved line item configurator settings or efficiently manage the configuration environment by adding and updating new settings.
Clicking the Start JSON Import button will begin the process of importing line item configuration settings exported from another org.
Upload JSON File
Select and upload the JSON file that contains the line item configuration settings to be imported.
Upsert Line Item Configuratior
Depending on the presence of a Migration Key, a line item configuration is either created as new or used to update an existing one. The Migration Key corresponds to the record ID of the imported line item configuration.
If the SmallBuilder Line Items package version differs between the source org and the current org, some objects or fields in the imported line item configuration may be missing.
View Results
Check the creation and update results of the imported line item configuration settings.
When Objects or Fields Are Missing
Objects and fields that were omitted are not included in successfully migrated line item builders, and such missing items are displayed separately at the bottom of the result screen. Missing objects and fields may occur due to discrepancies in the SmallBuilder Line Items package version or insufficient field-level permissions, so please check the package version and field permissions.
When Line Item Configurations Fail
Default Settings in the Product Option Settings step allow you to configure how product options behave when products are added or viewed in the Line Item Editor.
When the Line Item Editor loads, option line item lists for configured products are automatically unfolded to display all added options.
If you want to hide the option lists upon loading, deactivate the “Unfold by Default” setting.
Unfold by Default Activated
Options are visible upon editor load.
Unfold by Default Deactivated
When “Unfold by Default” is deactivated, the option lists are hidden. To view the options, click the line item row with the expand icon () displayed next to it.
When Product Options are enabled, selecting a product through the lookup selector typically includes an additional step for selecting options. By activating the “Skip Option Selection” setting, you can bypass this step, allowing the product to be added directly.
However, options can still be selected or modified later in the Line Item Editor.
Default Behavior
The option selection step appears after selecting a product.
Skip Option Selection Activated
Activating the “Skip Option Selection” setting skips the option selection step after selecting a product, as shown in the image below. Even if this step is skipped, you can still select or add options later in the Line Item Editor.
Options are retrieved based on the selected product and the Pricebook (Pricebook2Id) of the parent object, such as Opportunity, Quote, or Order.
If you want to add additional criteria for retrieving options, you can configure Option Filters. These filters follow the SOQL WHERE clause syntax and are applied to the Product Option object (SBLI__ProductOption__c).
Instead of manually writing filters, you can use the to generate them automatically, simplifying the setup process.
1 AND 2 AND 31 OR 2 OR 3




Opportunity
OpportunityLineItem
PricebookEntry
Quote
QuoteLineItem
PricebookEntry
Order
OrderItem
PricebookEntry
Opportunity
OpportunityLineItem
PricebookEntry
Quote
QuoteLineItem
PricebookEntry
Order
OrderItem
PricebookEntry
Quantity
Maps the quantity of the option.
Number
Total Price
Maps the total price calculated from the unit price and quantity. If used for display purposes only, assign a line item field used for the total price column.
Currency
Discount (%)
Maps the discount percentage of the option.
Percent
Discount (Amount)
Maps the discount amount of the option.
Currency
Description
Maps the description of the option.
Long Text Area(1000)
Option Record Id
Stores the record ID of the selected product option. This is used to fetch relevant option details when viewing line items in the editor.
ℹ️ For Opportunity Product, the Product Option (SBLI__ProductOption__c) field is provided by default.
Lookup(Product Option)
✔
Original Price
Maps the list price of the option. If used for display purposes only, assign a line item field used for the list price column.
Currency
Unit Price
Maps the unit price of the option.
Currency
Option Record ID
SBLI__ProductOption__c
Original Price
ListPrice
Unit Price
UnitPrice
Quantity
Quantity
Total Price
TotalPrice







Previous
You can return to the JSON file upload screen. If you selected the wrong file, click this button to go back and restart the upload process.
Imported Line Item Configuration Information
Check the line item configuration information that will be created or updated in the current org.
Line Item Configuration Information in the Current Org
If a line item configuration with a connected Migration Key exists in the current org, its name will be displayed automatically. If no configuration is linked, a search box will appear.
You can use the search box to find line item configurations that do not have a Migration Key. If you select one of the results, it will be updated. If you leave it unselected, a new line item configuration will be created.
Preview Changes
If an existing line item configuration in the current org is being updated, you can review the changes that will be applied.
Create and Update Button
Starts the process of creating or updating the line item configuration based on the imported settings.
Manually Link Migration Key
For line item configurations being imported into the current org for the first time, a Migration Key is not connected. If you want to update an existing line item configuration in the current org using the imported settings, you can search for and link a Migration Key.
Preview Changes
If a line item configuration is being updated through a connected Migration Key, you can review the changes from the existing configuration on the screen.
List Toggle
Open or close the list of failed line item configurations.
Select Line Item Configurator
Select one or more failed line item configurations to export again as a JSON file.
Failed Line Item Configuration Information
View details of the failed line item configurator
Summary of Failure Reasons
Displays a summary of failure reasons by object within the line item configuration.
Detailed Failure Reasons
View detailed failure information for each individual line item configuration.
🔻 Detailed Failure Reasons
You can review the detailed reasons for migration failure, and easily identify the failed objects using the Migration Key.






Save: Save the Builder configuration.
Clone: Duplicate the Builder based on the latest saved settings. After clicking the Clone button, click Save to complete the duplication.
Reset: Restore the Builder to its most recently saved configuration if changes need to be reverted.
Help: Access the help documentation for SmallBuilder Line Items.



A new child list linking feature has been added, allowing you to view related child records within a single list screen. If the object assigned to a list configurator has child objects that are related through a master-detail or lookup relationship, you can link the list configurator that is based on the child object as a child list.
You can now add the action button for SmallBuilder Line Items in the list. This feature can be used only in the Related List of the parent object.
You can use the pinned columns feature to efficiently view a large amount of horizontal data in a list. Even when scrolling, the specified columns remain fixed on the screen, allowing you to easily compare other column values without losing sight of important reference information, such as customer names or unique IDs.
Previously, you could export up to 50,000 records, but in this version, you can export up to 200,000 records.
The UI/UX has been updated so that you can check the progress of the export process and exclude unnecessary columns.
Previously, you could set default filter values by passing parameters in the list URL, but this approach had limitations with certain filters. In this version, we provide the ability to pass filter values more flexibly and extensively through the Aura Component.
In the data export of the Migration tab, you can click a table header to sort the list by that column.
The components of the settings panel have been organized to make them visually clearer.









If you want to simply fetch related object data, consider using Basic DataSource settings. You can select an object related to Lookup or Line Item and map the fields of the retrieved object to the Lookup or Line Item fields via DataSource.
Actions involve mapping the data fetched from the DataSource to the fields in Lookup or Line Items. Through these actions, the DataSource values are applied to the designated fields.
When the Lookup Object is set to Product2, users often want to display UnitPrice information. However, in Salesforce, the UnitPrice is stored in the PricebookEntry object, which is a child object of Product. Since UnitPrice cannot be fetched via a formula field, we use a DataSource to query the related PricebookEntry data.
In the DataSource settings, specify the Source Object as PricebookEntry.
(optional) Click Query Wizard to set up the query conditions:
IsActive = true AND Pricebook2Id = {$Parent.Pricebook2Id}
To match the PricebookEntry data to the Products, use the following settings:
<aura:component>
<aura:handler name="init" value="{!this}" action="{!c.doInit}" />
<SBLS:ListConfigurator
configurationId="{builder record ID}"
parentFieldApiName="OpportunityId"
recordId="{!v.recordId}"
filters="{!v.filters}" />
</aura:component>IsActive__c = trueExport
Download the JSON file for the selected line item configurations.









5
Map the fields from the DataSource object to the Lookup or Line Item fields.
✔
Select the target field in Lookup or Line Item where the data will be mapped.
✔
4
Key
The unique identifier used for mapping data between the DataSource and Lookup or Line Item. The Key determines the target for the mapped DataSource values.
✔
Product2IdTarget Field: Id
Key: true
To display the Unit Price alongside the product data, add an Action and map the fields to a virtual column in Lookup:
Source Field: UnitPrice
Target Field: SBLI_Virtual1
1
Source Object
Specify the Salesforce objects that you want to source data from.
✔
2
Query
Click the Wizard button to open the Build Query layout. You can use the Query Wizard to easily build queries by searching for the correct fields to use.
Filters are entered in the format of a SOQL WHERE clause.
3
Evaluation Event
Set the execution timing for the DataSource.
On Initialization: Executes when a new Line Item is added.
On Loading: Executes when the Line Item screen is loaded.
Before Save: Executes before a Line Item is saved.
❗ Available only for Line Items.
4
Active
Turns the DataSource on or off. It must be active to be used.
1
Order
Specify the order that mappings are carried out.
✔
2
Source Field
Select the field from the DataSource object.
✔
3








✔
Target Field

Product Option data is managed using two objects: Product Feature (SBLI__ProductFeature__c) and Product Option (SBLI__ProductOption__c). Both objects reference the Product (Product2) object and serve the following purposes:
Product Feature: An optional object used to group product options into categories.
Product Option: The primary object for managing option products and their related information.
While the main focus is on configuring data in the Product Option object, the Product Feature object can be used additionally if needed for grouping purposes.
The Product Feature object allows you to group product options by category.
Object
Fields
The Product Option object is the core component for managing option products and their associated details.
Object
Fields


Multi Selectable
SBLI__MultiSelectable__c
Determines whether multiple options can be selected within the group.
Option Product
SBLI__OptionalProduct__c
Indicates the product used as an option.
✔
Quantity
SBLI__Quantity__c
Specifies the quantity of the option, with a default value of 1.
Unit Price
SBLI__UnitPrice__c
Sets the unit price for the option. If left blank, the price is fetched from the price book entry.
Discount (%)
SBLI__Discount__c
Indicates the discount percentage for the option, applied to the total price.
Discount Amount
SBLI__DiscountAmount__c
Specifies the discount amount for the option, applied to the total price.
Required
SBLI__Required__c
Marks the option as mandatory during selection.
Selected
SBLI__Selected__c
Sets the option as selected by default.
Included
SBLI__Included__c
Marks the option as included, meaning its cost is not reflected in the unit price or total price. Included options are labeled as “Included” in the editor.
Price Editable
SBLI__PriceEditable__c
Allows users to edit the option’s unit price (default: not editable).
Quantity Editable
SBLI__QuantityEditable__c
Allows users to edit the option’s quantity (default: not editable).
Min Quantity
SBLI__MinQuantity__c
Specifies the minimum quantity if the option’s quantity is editable.
Max Quantity
SBLI__MaxQuantity__c
Specifies the maximum quantity if the option’s quantity is editable.
Description
SBLI__Description__c
Provides detailed information about the option.
Product Feature
SBLI__ProductFeature__c
Order
SBLI__Order__c
Defines the sequence in which options are displayed on the option selection screen.
Main Product
SBLI__Product__c
Specifies the main product that the options belong to.
✔
Description
SBLI__Description__c
Provides a description of the product feature.
Product Option
SBLI__ProductOption__c
Order
SBLI__Order__c
Determines the display order of options in the selection screen.
Feature
SBLI__Feature__c
A lookup field referencing the Product Feature object for grouping options.
Main Product
SBLI__Product__c
Specifies the configured product.

✔


Use the Advanced DataSource feature when you need to fetch data from external API servers or perform complex logic for data retrieval and merging. To set up Advanced DataSource, you must write an Apex Class. This approach provides greater flexibility compared to the Basic DataSource for fetching and processing data.
To use an Apex Class with Advanced DataSource, you must implement the SBLI.DataSourceService.Fetchable interface.
This interface includes the execute method, where you implement logic for processing data and returning an SBLI.DataSourceService.Result object. The result contains mapping information between the fetched data and the Lookup or Line Item objects.
The following example assumes an external API is called to retrieve inventory quantities by product code. The data is then mapped to the Inventory__c field in the Lookup or Line Item object.
The SBLI.DataSourceService.Fetchable interface is provided by the package. Both the Apex class and the methods must be declared as global to allow external access.
Fetch Parent and Lookup Records
params.getParentRecord(): Retrieves the parent record of the object.
params.getLookupRecords(): Retrieves the list of records from the Lookup object.
An object containing information about the parent and lookup parameters configured in the builder.
SObject getParentRecord()
Returns the parent record. If no parent parameter is configured in the builder, the value is empty.
List getLookupRecords()
Returns the lookup records. If no lookup parameter is configured in the builder, the value is empty.
An object that contains all mapping information between the DataSource and the Lookup or Line Item objects, which is returned to the editor.
Mapping information is stored in SBLI.DataSourceService.Action objects, which are then added to the SBLI.DataSourceService.Result object and returned.
addAction(SBLI.DataSourceService.Action action)
Adds an Action object containing mapping information to the Result object.
An object that stores mapping information between the Lookup or Line Item and the DataSource values.
setKeyValue(Object keyValue)
Sets the DataSource Key value that matches the Lookup or Line Item Key.
putSourceToTargetField(Object sourceValue, String targetFieldApiName)
Assigns the DataSource value to the specified Lookup or Line Item field.
After selecting the Apex Class, specify the fields to be passed as parameters if the class requires parent or lookup information.
Ensure the Apex Class is written before configuring the DataSource.
Prepare DataSource Values
Data is fetched from an external API server (e.g., inventory information).
In the example, inventory quantities are mapped based on ProductCode.
Generate Result
An SBLI.DataSourceService.Action object is created to map the fetched data (e.g., inventory quantity) to the target field (Inventory__c).
The action is added to the SBLI.DataSourceService.Result object.
Return the Result
The Result object, containing all mapping information, is returned to the editor.
Add a parent object’s field as a parameter if the Apex Class implementation for the DataSource requires a field value from the parent object.
4
Parameter - Lookup Fields
Add a lookup object’s field as a parameter if the Apex Class implementation for the DataSource requires a field value from the lookup object.
5
Evaluation Event
Set the execution timing for the DataSource.
On Initialization: Executes when a new Line Item is added.
On Loading: Executes when the Line Item screen is loaded.
Before Save: Executes before a Line Item is saved.
❗ Available only for Line Items.
6
Active
Turns the DataSource on or off. It must be active to be used.
✔
action
The object containing mapping information between the Lookup/Line Item and the DataSource values.
keyValue
Object
The Key value from the DataSource.
sourceValue
Object
The value from the DataSource.
targetFieldApiName
String
The API name of the target field in the Lookup or Line Item object.
1
Apex Class
Select the Apex Class to be used for the DataSource.
✔
2
Key Field
Specify the Key Field to map data retrieved via the DataSource to the Lookup or Line Item records. The Key Field must be a field from the Lookup object. 💁 Why use a Lookup object’s field as the Key for Line Items? Since Line Items may include unsaved records, determining a unique Key value for mapping is not feasible. Using a field from the Lookup object ensures reliable mapping.
✔
3


Parameter - Parent Fields
Map<String, Integer> inventoryData = new Map<String, Integer>();
inventoryData.put('Product001', 10);
inventoryData.put('Product002', 20);// Create result object
SBLI.DataSourceService.Result result = new SBLI.DataSourceService.Result();
// Map DataSource values to Lookup/Line Item objects
for (String productCode : inventoryData.keySet()) {
SBLI.DataSourceService.Action action = new SBLI.DataSourceService.Action();
action.setKeyValue(productCode); // Set Key value for mapping with Lookup/Line Item records
action.putSourceToTargetField(
inventoryData.get(productCode), // DataSource value: inventory quantity
'Inventory__c' // API name of the target field in Lookup/Line Item
);
result.addAction(action); // Add Action to the result
}global class DataSourceInventory implements SBLI.DataSourceService.Fetchable {
global SBLI.DataSourceService.Result execute(SBLI.DataSourceService.Parameter params) {
// Fetch parent record
SObject parentRecord = params.getParentRecord();
// Fetch lookup records
List<SObject> lookupRecords = params.getLookupRecords();
// Fetch data from external API (e.g., inventory information)
// Key: Product Code, Value: Inventory Quantity
Map<String, Integer> inventoryData = new Map<String, Integer>();
inventoryData.put('Product001', 10);
inventoryData.put('Product002', 20);
// Create result object
SBLI.DataSourceService.Result result = new SBLI.DataSourceService.Result();
// Map DataSource values to Lookup/Line Item objects
for (String productCode : inventoryData.keySet()) {
SBLI.DataSourceService.Action action = new SBLI.DataSourceService.Action();
action.setKeyValue(productCode); // Set Key value for mapping with Lookup/Line Item records
action.putSourceToTargetField(
inventoryData.get(productCode), // DataSource value: inventory quantity
'Inventory__c' // API name of the target field in Lookup/Line Item
);
result.addAction(action); // Add Action to the result
}
return result; // Return result
}
}// Fetch parent record
SObject parentRecord = params.getParentRecord();
// Fetch lookup records
List<SObject> lookupRecords = params.getLookupRecords();global SBLI.DataSourceService.Result execute(SBLI.DataSourceService.Parameter params) {
SObject parentRecord = params.getParentRecord();
List<SObject> lookupRecords = params.getLookupRecords();
...
}SBLI.DataSourceService.Result result = new SBLI.DataSourceService.Result();
for (String productCode : inventoryData.keySet()) {
// Store mapping information in the SBLI.DataSourceService.Action object
SBLI.DataSourceService.Action action = new SBLI.DataSourceService.Action();
action.setKeyValue(productCode);
action.putSourceToTargetField(
inventoryData.get(productCode), // DataSource value
'Inventory__c' // Field API name
);
result.addAction(action); // Add the Action to the Result
}
return result;SBLI.DataSourceService.Result result = new SBLI.DataSourceService.Result();
// Iterate over product codes and inventory data in the DataSource
for (String productCode : inventoryData.keySet()) {
SBLI.DataSourceService.Action action = new SBLI.DataSourceService.Action();
// Map the product code to the Lookup/Line Item Key
action.setKeyValue(productCode);
// Map inventory data to the Inventory__c field in the Lookup/Line Item
action.putSourceToTargetField(
inventoryData.get(productCode), // DataSource value: inventory quantity
'Inventory__c' // Field API name
);
result.addAction(action); // Add mapping information
}
return result; // Return the final result
