Salesforce OmniStudio Overview


Salesforce OmniStudio represents a collection of digital engagement solutions that streamline the development of intricate, industry-tailored experiences. These tools prioritize configuration, empowering designers to craft interactive brand journeys akin to a flow, complete with the visual and stylistic versatility of Lightning Web Components. Administrators and developers can seamlessly integrate data from Salesforce and other enterprise systems into these experiences using intuitive drag-and-drop ETL capabilities. This shift towards low-code solutions with OmniStudio offers organizations a path to deliver polished, immersive user experiences on the platform. Delving deeper, we explore the essence of OmniStudio, its integral elements, diverse use cases, and a hands-on tutorial demonstrating the retrieval and display of contact information. The ongoing dialogue in the Salesforce landscape revolves around the dichotomy of Low code versus Pro code, where OmniStudio emerges as a pivotal tool for the rapid construction and deployment of digital-first, industry-specific experiences across various channels. Through examining its core components, showcasing real-world examples of OmniStudio in operation, and highlighting its evolving significance within the Salesforce Omnistudio ecosystem, we aim to provide insights on how you can explore and leverage this dynamic tool. Let’s delve into a comprehensive exploration of the OmniStudio tutorial to gain a nuanced understanding of its capabilities and practical applications. 

Salesforce Omnistudio

Omnistudio is divided into three main areas: Digital Experience, Service Management and Developer Experience (Figure 1). We will describe each of them in the next paragraphs.

[Figure 2: Guide Steps Example]

FlexCards (Digital Experience) 

FlexCards serve as concise information hubs and gateways to relevant tasks, streamlining customer interactions. These dynamic components streamline the initiation and completion of customer transactions by consolidating essential transaction details in a single, easily accessible location. Empowered by a user-friendly drag-and-drop interface, designers can craft customized layouts and format data sourced from diverse channels to ensure seamless compatibility across all devices and platforms. FlexCards offer versatility through their repeatability, enabling the structured presentation of multiple data records in a cohesive series of styled cards. Integrating FlexCards within OmniScripts enhances user experiences by providing contextual information and facilitating sub-processes as users progress through defined steps. Notable applications of FlexCards include:   

  • Presenting insurance policy details to customers with actionable options such as Pay Premiums, Modify Coverage, or File a Claim. 
  • Offering a comparative list of medical plans for user review and selection during an interaction. 
  • Showcasing weather forecasts, including a detailed 7-day outlook, for user convenience and planning purposes. 

    OmniScripts  (Digital Experience)

An OmniScript acts as a structured journey that directs customers through intricate business processes, offering a customizable approach to delivering a seamless customer journey, which is always advantageous. The visual representation below illustrates an OmniScript leading a customer through various stages to choose an insurance policy. Initially, customers input home details, proceed to select standard coverage packages, customize the chosen packages, review their coverage proposal, and upon acceptance, finalize the transaction to activate their coverage.  

Distinguished by its versatility and enhanced styling options, an OmniScript stands out from traditional flows by providing a modern, branded appearance. Application builders leverage the intuitive drag-and-drop editor to craft cohesive customer experiences tailored to various industries (Figure 2).  

Within the OmniScript environment, designers can select from a range of elements to construct their scripts effectively. Designers can:  

  • Execute actions like data saving and email dispatch. 
  • Incorporate text and images to enrich usability and visual appeal. 
  • Perform computations, display condition-based messages, and manage errors using predefined functions. 
  • Gather essential data through input fields embedded in the user experience. 
  • Integrate other OmniScripts to build reusable, modular workflows. 

Use cases for OmniScripts include:  

  • Assisting through application processes. 
  • Guiding customers during sales processes, such as insurance selection. 

Facilitating users through self-service operations.

[Figure 2: Guide Steps Example]

OmniScript Elements
Element Type  What Is It For? 
Actions  For calling on other tools to perform various actions: getting or saving data, calculating, sending an email, and so on 
Display  For displaying text and images on the screen to enhance the usability of the UI 
Functions  For performing calculations within the OmniScript, showing conditional messages, and providing geolocation 
Groups  For grouping elements together on the UI 
Inputs  For system or user input or selection 
OmniScripts  Reusable OmniScripts to insert and use 
  •  Integration Procedures (Service Management) 

Declarative, server-side processes that execute multiple actions in a single service call. Merge the output to multiple APIs and orchestrate multi-step calculations. It can be used as a data source for OmniScript, FlexCard, API, or Apex. 

  • Data Mappers (Service Management)  

A DataMapper serves as a declarative tool for mapping that empowers users to read, modify, and convert data within Salesforce effortlessly. This tool grants administrators the ability to exhibit and store data without the necessity of writing any Apex code. DataMappers serve as the primary means to manage data within OmniStudio.
The four key types of DataMappers include: 

    • Turbo Extract: Swiftly retrieves data from a single Salesforce Object. 
    • Extract: Gathers data from one or multiple Salesforce Objects. 
    • Load: Stores data in one or multiple Salesforce Objects. 
    • Transform: Alters data sourced from Salesforce or external origins.

DataMappers predominantly operate with JSON format, while also accommodating XML and Custom Schemas. They can further utilize OmniStudio-specific functions and formulas to enhance the flexibility of data transformation processes.

  • Developer Experience
    The Developer Experience layer comprises a set of tools within the application lifecycle designed to assist developers in overseeing and transferring changes to OmniStudio components across various environments. These developer tools include: 
    • IDX Build Tool: A command-line automation tool that packages and migrates OmniStudio Datapacks in a format conducive to source control. 
    • IDX Workbench: A desktop application that facilitates the migration of Datapacks and Salesforce metadata between different orgs or from an org to a Git repository. 

For straightforward migrations, developers can opt to export and import components as Datapacks, which are bundles of OmniStudio components packaged together for seamless export and import operations. For instance, developers can export and import a FlexCard along with a specific Integration Procedure. In the case of extensive or intricate migrations, developers typically rely on either IDX Build Tool or IDX Workbench. 

  • IDX Build Tool ensures the preservation of dependencies, conducts data validation, and confirms the successful execution of migrations. 
  • IDX Workbench features a Test Console where users can execute Test Procedures and visualize Gantt charts illustrating their step-by-step progress. A Test Procedure represents an Integration Procedure capable of conducting unit tests on various elements such as Data Mappers, Calculation Matrices, Apex classes, or even other Integration Procedures. 

Create a Simple Salesforce OmniScript

Go to “OmniStudio App” and select “OmniScripts” and click in “New” 

OmniScripts rely on the unique combination of Type, Subtype, and Language fields to distinguish them from one another within an organization. Each OmniScript must have a distinct set of Type, Subtype, and Language values to ensure uniqueness and facilitate efficient organization.   

Configure the fields as follows:   

  • Name: renewContactDetails 
  • Language: English 
  • Type: update 
  • Subtype: editContacts 

After setting these fields, proceed to click «save» to finalize the creation of the new OmniScript. Once the OmniScript is created, let’s explore the builder interface. 

 The canvas serves as a visual drag-and-drop editor, providing a WYSIWYG (What You See is What You Get) environment for designing OmniScripts. Every action, function, or step (screen) that you wish to incorporate can be added to this canvas. Elements are executed in a sequential order from top to bottom, enabling a structured flow of operations within the OmniScript (Figure 3). 

[Figure 3: WYSIWYG Editor]
Add Fields 
  • In the side panel, expand the INPUTS section. 
  • Find the Text element and drag it onto the Step1 step in the canvas. We will use this to represent the Name field on the contact (Figure 4). 
[Figure 4: Add an element (text) to the canvas]

In the Properties Panel for the Text element change the default values. If the Properties Panel does not appear, click on the text element in the canvas (Figure 5): 

  • Name = Name 
  • Field Label = Name
[Figure 5: Modify properties of the element]
Repeat the steps for add Phone and Type information for that select on build panel element Telephone and Select (Figure 6). 
[Figure 6: Another types of elements]

Update the name of the step, click on step and go to “Properties” (Figure 7). 

[Figure 7: Update Step Name]
To retrieve the contact list data, follow these steps:   
  • In the Build Panel, locate the ACTIONS section and expand it. 
  • Drag the DataRaptor Extract action from the ACTIONS section onto the canvas positioned above the updateContactDetails Step. This action will initiate data retrieval before presenting the screen to the user (Figure 8). 
  • Click on «Create New DataRaptor» under the «Data Raptor Interface» to set up a new DataRaptor for this purpose (Figure 9). 
  • Configure DataRaptor (Figure 10). 
[Figure 8: Data Raptor Extract]

[Figure 9: Create new DataRaptor]

[Figure 10: Configure DataRaptor Screen]

  • In the DataRaptor, on the EXTRACT tab, click the + Add Extract Step button. This will present a list of all SObjects available to query.  
  • Choose Contact from the list. 
  • Set the Extract Output Path to Contact. 
  • Set the Filter to Id = ContextId. This will pull back a single record where the Contact ID is equal to the ContextId passed in from the OmniScript. 

Map the Extracted Data 

Now that we’ve extracted the Contact record, let’s map its fields for use in our OmniScript (Figure 11). 

  • Click the OUTPUT tab. 
  • Click the + button to the right of the OUTPUT JSON PATH header. 
  • Enter the following values: 
  • Extract JSON Path = Contact:Id 
  • Output JSON Path = Contact:Id 

Repeat same for Name, phone, and type 

[Figure 11: Configure DataRaptor Output]

When finished, your DataRaptor should look like the picture below (Figure 12): 

[Figure 12: DataRaptor final configuration]

DataRaptor Test 

  • Click on the PREVIEW Tab. 
  • In the Input Parameters Panel on the left, enter the following values: 
  • Key = ContextId 
  • Value = <ANY contactID> 

For best results, select a Contact ID for a Contact that has populated Type and Phone fields (Figure 13). 

  •   Click the Execute button at the bottom of the Input Parameters panel. 


[Figure 13: DataRaptor Test]

Link our DataRaptor without previously OmniScript created.

– Navigate back to your OmniScript
– Click on the DataRaptor we just created in the canvas
– In the Properties Panel (Figure 14), set the following values within the Input Parameters section:
         – Data Source = ContextId
         – Filter Value = ContextId 

Next, we need to transform the data coming from the DataRaptor so that it maps to our Step: 

  • Expand the RESPONSE TRANSFORMATION section of the Properties Panel 
  • Enter the following values: 
  • Response JSON Path = Contact 
  • Response JSON Node = ContactDetails 
[Figure 14: Link our DataRaptor to OmniScript]

Next, to align the data from the DataRaptor with our Step, follow these steps: 

  • Open the Response transformation section in the Properties Panel (Figure 15).  
  • Input the following values:  
  • Response JSON Path: Contact 
  • Response JSON Node: ContactDetails 


[Figure 15: DataRaptor Extract Action Properties]

The Response JSON (Figure 16) Path in DataRaptor specifies the specific node within the JSON response to be sent back to the OmniScript. Meanwhile, the Response JSON Node instructs DataRaptor on what name to assign to the parent node for the response data within the OmniScript. As the node name aligns with the step name (ContactDetails), the field data should automatically populate with the information retrieved from the DataRaptor. With these steps you complete your first Omniscript steps. 

[Figure 16: JSON Response]

 Finally, is you being interesting to learn more details about OmniStudio or take OmniStudio Developer certification you should check  Prepare for Your Salesforce OmniStudio Developer Credential Trailmix, is good bundle of trails for learning all things related to OmniStudio tools. The Salesforce OmniStudio Developer credential is intended for individuals who have knowledge, skills, and experience developing cloud applications using OmniStudio declarative development tools.

Why you should augment your team with Folder IT

Outsourcing or Augmenting your Salesforce Team with Folder IT professionals is a cost effective solution that does not sacrifice on quality nor communication effectiveness. Our teams are qualified for working with all the latest technologies and for joining you right away.

Request a quote now for outsourcing your project or staff augmentation services to Argentina.


Access top talent now!


Get in Touch