Professional Documents
Culture Documents
Vlocity OmniStudio Documentation
Vlocity OmniStudio Documentation
Copyright 2021 Vlocity LLC, a Salesforce company. All rights reserved. Information in this document is subject to change without
notice. This documentation and the software, tools, templates and other material described in this document (“Vlocity Materials”) are
furnished exclusively under a subscription services agreement or nondisclosure agreement. The Vlocity Materials may be used or
copied only in accordance with the terms of those agreements. No part of the Vlocity Materials may be reproduced, stored in a
retrieval system, or transmitted in any form or any means electronic or mechanical, including photocopying or recording for any
purpose other than the licensee’s personal use as set forth in the applicable agreement without the prior written permission of Vlocity
LLC. Vlocity is a trademark of Vlocity LLC, a Salesforce company, as are other names and marks. Other marks appearing herein may
be trademarks of their respective owners.
OmniStudio
Table of Contents
OmniStudio ................................................................................................................................ 1
Vlocity Lightning App and Community Builder Components Reference ...................................... 2128
OmniStudio
OmniStudio is a set of services, components, and data model objects used to create Vlocity Industry Cloud
Apps. Take a quick tour of the important components: Vlocity Guided Interaction Platform.
OmniStudio enables you to create guided interactions using data from your Salesforce org and external
sources. This section explains how to create OmniScripts, which contain the interaction logic; DataRaptors,
which transfer data between OmniScripts and Salesforce; Integration Procedures, which bundle server-side
operations for efficiency and reuse; and the Cards Framework, which displays data and launches actions.
OmniStudio Basics
This section introduces the basic building blocks of OmniStudio that you use to build Vlocity Service
Consoles and Vlocity Industry Cloud Apps.
The terminology change does not affect how your products work. Nothing at the data level, such as
DataPacks or objects, has changed.
The name changes are not yet integrated into our documentation.
OmniStudio FlexCards
Download FlexCard LWCs from the FlexCard Designer. Get notified when you need to grant access to your
org domains. Control the format of the date, time, and currency on a Field element. Control the proportions
of your Chart element. Generate unmanaged versions of managed components in the FlexCard Designer.
Limit user access to FlexCards and Apex classes.
How: From the FlexCard Designer submenu, click the down arrow next to Activate, and click Download
LWC or Download Off-Platform LWC.
What's Next
Why: When spinning a new org or new installation, the Tooling API calls necessary for LWC may fail if the
Remote Site Settings page in your org does not include the URLs required. A Warnings button alerts you
that your org's lightning.force.com URL and the visualforce.com URL of the Visualforce page that contains
the FlexCard Designer are missing in the Remote Site Settings.
How: Click the Warnings button on the OmniStudio FlexCards home page. Copy the two URLs provided.
In Setup > Security > Remote Site Settings, create a new Remote Site for each URL.
What's Next
Update Remote Site Settings to Preview Your FlexCard
Why: By default, the FlexCard Author's user locale determines the format. If your FlexCard is used on an
application accessible across different locales, enable Use User Locale For Formatting to use the logged-
in user's locale to determine the format of your date, time, and currency.
How: Check the Use User Locale For Formatting checkbox in the Properties panel when you select a
Field element.
What's Next
Add a Field to a FlexCard
How: When Date is selected for Field Type, check the Use Absolute Date checkbox.
What's Next
Add a Field to a FlexCard
Why: By default, the aspect ratio of a Chart element is 1, such as 1:1. The chart width is always the
maximum width available given the number of columns it spans on the 12-column grid of the canvas in the
designer. Increase the aspect ratio to make your chart smaller or decrease it to make it taller. Maintain the
aspect ratio to set fixed proportions. Set a fixed height to override the aspect ratio entirely.
How: Add a Chart element to your FlexCard in the FlexCard Designer. In the Properties panel, update the
Aspect Ratio to a whole number or a decimal, and if needed, select the Maintain Aspect Ratio checkbox.
To override the aspect ratio, enter a number in the Chart Height field.
What's Next
FlexCard Chart Element Aspect Ratio
See Also
How: In Setup, go to Custom Settings > General Settings > Manage to create the ApexClassCheck with a
Value of true.
What's Next
Adding an Apex Class Permissions Checker
How: From Setup > Apex Classes, click New, and enter the code for the
vlocityRequiredPermissionCheck Apex class provided in the topics in the What's Next section on
this page.
What's Next
Limit User Access to a FlexCard with Custom Permissions
Classic Cards
Limit user access to Classic Cards (Vlocity Cards) and Apex classes.
How: In Setup, go to Custom Settings > General Settings > Manage to create the ApexClassCheck with a
Value of true.
What's Next
Adding an Apex Class Permissions Checker
How: From Setup > Apex Classes, click New, and enter the code for the
vlocityRequiredPermissionCheck Apex class provided in the topics in the What's Next section on
this page.
What's Next
Limit User Access to a FlexCard with Custom Permissions
OmniScripts
Run OmniScripts through Adobe Experience Manager, and enable users to restart an OmniScript.
Where: Available in Vlocity Health and Insurance Spring '21 and later releases.
Why: Add powerful, easy-to-use OmniScript forms to an existing Adobe Experience Manager server.
How: Download the LWC OmniOut Static Resource, and add your AEM credentials to the ./
aem.ui.apps/pom.xml file. Deploy LWC OmniOut to your server and add the Vlocity LWC OmniOut
component to an AEM page.
What's Next
Add OmniScripts to Adobe Experience Manager
See Also
Restart OmniScripts
Enable users to restart an OmniScript using the Navigate Action's Restart OmniScript target type.
Where: Available in Vlocity Health and Insurance Spring '21 and later releases.
Why: Provide users with an option to start over or conditionally perform a restart between steps if a critical
error occurs.
How: From a Navigate Action's properties panel, click Edit Properties As JSON. Locate the
"targetType" JSON Node. Set the value for "targetType" to "Restart OmniScript". The node
should read "targetType": "Restart OmniScript". Return to your OmniScript and test the
functionality.
What's Next
Restart an OmniScript
See Also
• Navigate Action
• Navigate Action Properties
Where: Available in Vlocity Health and Insurance Spring '21 and later releases.
Who: Salesforce administrators use functions within formulas in DataRaptors and Integration Procedures.
Why: If the list item you want to filter on is at a known position in the list, you can reference that position in
your filtering function.
How: Use a list item with |n syntax in any function that accepts a list.
See Also
MAXSTRING Function
The MAXSTRING function returns the last string alphabetically. For example,
MAXSTRING("Amy","Ziggy") returns "Ziggy". The MAX function no longer works for Strings.
Where: Available in Vlocity Health and Insurance Spring '21 and later releases.
Who: Salesforce administrators use functions within formulas in DataRaptors and Integration Procedures.
See Also
Function Reference
CustomFunction Function
Creating a custom function no longer requires creating metadata. Just create an Apex class and call the
function with CustomFunction('ClassName.MethodName',input).
Where: Available in Vlocity Health and Insurance Spring '21 and later releases.
Who: Salesforce administrators use functions within formulas in DataRaptors and Integration Procedures.
Why: Creating metadata for a custom function is no longer necessary, which makes implementing custom
functions more efficient.
See Also
• Function Reference
• Sample Apex Code for a Custom Function
• List Input in Custom Functions
IDX Workbench
Migrated OmniScripts and Integration Procedures are activated automatically.
Where: Available in Vlocity Health and Insurance Spring '21 and later releases.
Who: Salesforce administrators use the Tracking Service to monitor the performance of OmniStudio
components.
Why: You can see how a tracked Integration Procedure was invoked.
How: The ParentInteractionToken is automatically included when you enable the Tracking Service and
configure it to track Integration Procedures.
See Also
Integration Procedure Event Tracking
Where: Available in Vlocity Health and Insurance Spring '21 and later releases.
Who: Salesforce administrators use IDX Workbench to migrate objects between orgs and Git repositories.
Why: You no longer need to activate migrated OmniScripts and Integration Procedures individually.
How: On Chrome this happens by default. If you use a browser other than Chrome, you must perform a
one-time setup of this activation.
See Also
Configure LWC OmniScript and FlexCard Activation and Compilation
Vlocity Insurance and Health Summer '20 and Vlocity CME Fall '20
This section summarizes the OmniStudio features and enhancements for the Vlocity Insurance and Health
Summer '20 and Vlocity CME Fall '20 releases.
FlexCard Designer
• With the FlexCard Designer, preview while you build dynamic, context-aware user experiences using a
drag and drop interface with WYSIWYG editing. Step through a configuration wizard to create a configure
basic settings and a data source for a FlexCard. Drag elements onto a Canvas, style elements using
design interfaces and custom CSS, and enable responsiveness. The FlexCard Designer is built with the
Salesforce Lightning Web Component programming model. See FlexCard Designer. For changes and
enhancements, see FlexCard Designer Changes and Enhancements.
• Find context-sensitive help specific to an element or property using the FlexCard Designer's in-product
help tray feature. View specific field information by hovering over tooltips that appear next to properties.
Vlocity Cards
• View a sample APEX Class for getting Einstein NBA offers for a card. See IndustryNBA Class.
• When passing a parameter to a page in Lightning you must use a namespace prefix. For backward
compatibility, an Angular card inside the aura wrapper can read the parameters with both c__ and no
prefix. See Backward Compatibility Support for Passing Page Params.
• New "Action" picklist added to the Interaction Topic object with seed values "Discussed", "Created", and
"Resolved", and the option to add additional values to the picklist.
• Two record types, Classic and Flex, added to the VlocityCard__c Data Model. The default is Classic. 'Is
Child Card' checkbox filters child cards from parent cards.
LWC Cards
Target Parameters added to 'Community Named Page' and 'Named Page' Target Types on a Custom
Action. Target Names updated for all Target Types. See Adding a Custom Action to an LWC Card.
LWC OmniScript
All of the LWC OmniScript changes and enhancements apply to both the LWC OmniScript Designer and
the Classic OmniScript Designer. To view changes and enhancements specific to the LWC OmniScript
Designer, see LWC OmniScript Designer Changes and Enhancements.
Download the LWC HTML, CSS, and ReadMe files for this release by clicking here.
LWC OmniOut
Run an OmniScript on an external site by using the LWC OmniOut in your external application. OmniOut
enables apps to run an OmniScript that connects to Salesforce and external APIs to send and receive data.
See Run LWC OmniScripts Outside of Salesforce with LWC OmniOut.
New Properties
New LWC OmniScript properties appear in the LWC OmniScript Designer only. See LWC OmniScript
Designer Changes and Enhancements.
New Functionalities
These new functionalities are exclusive to LWC OmniScripts:
Functionality Description
Browser Navigation A browser's forward and back buttons navigate an LWC OmniScript to the next or previous Step.
Custom Styling Support for Add custom styling for right-to-left languages using static resources. See Custom Stylesheet
RTL Language Static Resource.
Download Off-Platform LWC Download the OmniScript LWC to add it to OmniOut. See Run LWC OmniScripts Outside of
Salesforce with LWC OmniOut.
Expanded Google Maps Type Ahead's Google Maps functionality returns an expanded response containing more JSON
Response Node nodes. See Using Google Maps Autocomplete in LWC OmniScripts.
Improved Readability Readability has been improved for screenreaders.
Messaging Framework Pass a value in the c__messagingKey URL parameter to change the node that stores the
messaging payload for window.postMessage and session storage message. See Message with
Window Post Messages and Session Storage Messages.
Place Custom LWC Elements Custom LWC Elements are usable in a non-repeatable Block element. The Block cannot be
in Blocks nested. See Custom LWC Element.
Run OmniScripts Off-Platform Add OmniOut to an application to run OmniScripts on a third-party website.
with OmniOut
Translate Tooltip Help Text in Provide translations for tooltip help text in multi-language OmniScripts by defining and adding
Multi-Language OmniScripts custom labels. See Translate Tooltip Help Text in OmniScripts.
Property Description
Tracking Business Category Define a business category for a tracking entry. See Enable Tracking for Vlocity Components.
Tracking Business Event Define a business tracking event for a tracking entry. See Enable Tracking for Vlocity Components.
Property Description
Edit Block Label LWC Edit Block's Cards and Long Cards modes support the Edit Block Label LWC Component
Component Override Override. See Extending the Edit Block Label LWC.
Edit Block New LWC Edit Block's Cards mode supports the Edit Block New LWC Component Override. See Extending
Component Override the Edit Block New LWC.
Use Continuation The Remote Action's Use Continuation property, which enables you to invoke apex classes that
return continuation objects, appears in the UI. See Remote Action.
Element Description
Matrix Action Call a Calculation Procedure with specific inputs and retrieve a value.
PDF Action Fill and display PDFs using OmniScript data.
Set Errors Action Render validation messaging on one or more elements in a Step.
New Functionalities
The LWC OmniScript Designer now includes these functionalities.
Functionality Description
Cancel Options Configure Cancel Options to direct users to different Salesforce experiences. See Enable and
Configure Cancel Functionality in an LWC OmniScript.
Download Off-Platform Download the OmniScript LWC to add it to OmniOut. See Run LWC OmniScripts Outside of Salesforce
LWC with LWC OmniOut.
Hide Conditional Hide conditional elements in the designer by checking the hide conditional elements checkbox in the
Elements canvas. See Conditionally Display Elements Using the Conditional View Property.
Functionality Description
Edit Block SObject The SObject mapping section appears in the UI of the Edit Block properties.See Configuring an Edit
Mapping Block
Full-width Preview Collapse the Debug Panel to hide the Data JSON and Action debugger and preview the OmniScript
in a full-width page. See Preview an OmniScript in the LWC OmniScript Designer.
Multi-Language: Custom Configure custom label translations from the LWC OmniScript Designer when designing a multi-
Label Translations language OmniScript. See Define Custom Label Translations in Multi-Language OmniScripts.
Changes in Functionality
The File and Image elements no longer contain the Upload to Content Document checkbox property.
LWC OmniScripts always upload files and images to the content document. See Add a File or Image to
OmniScript.
DataRaptors
• The process and processFromApex methods of the DRGlobal class have locale parameters of
type String. See DRGlobal Class and Methods.
• DataRaptors use API version 49.
Integration Procedures
• Cache Blocks have an Add To Cache Conditional Formula property. If a formula is present in this
property, the block is cached only if the formula evaluates to true. If this property is blank, the block is
always cached. See Enhance Performance Using Cache Blocks.
• Test Procedures are a major new feature:
• An Integration Procedure is a Test Procedure if its Is Test property is checked. A Test Procedure can
run another Integration Procedure to test it, and the Integration Procedure being tested can contain
mock results that are only for the tests. After a Test Procedure finishes running, any changes it
produced aside from its test results are rolled back. See Test Procedures: Integration Procedures for
Unit Testing.
• An Assert Action in a Test Procedure compares expected results to actual results. It can evaluate the
results or the performance of anything the Test Procedure invokes. To evaluate performance, its Assert
Conditional Formula can reference performance variables. See Assert Action.
• The results of Test Procedures are logged to the Vlocity Tracking Entry object as Assert, Error, and
TestResult event records. See Integration Procedure Event Tracking.
OmniAnalytics
• Using Vlocity OmniAnalytics, you can track user interactions with LWC OmniScripts and FlexCards with
or without a third-party system such as Google Analytics. All Vlocity industry products can use Vlocity
OmniAnalytics. See Vlocity OmniAnalytics Overview.
• Vlocity OmniAnalytics tracks LWC OmniScript user interaction data. LWC OmniScripts can send data to
an external analytics vendor such as Google Analytics using the Messaging Framework. See Workflow
for Adding Ecommerce Data to the Example OmniScript and Card.
• Vlocity OmniAnalytics tracks FlexCard user interaction data. FlexCards can send data internally or to an
external analytics vendor such as Google Analytics using the Business Category and Business Event
properties. See Workflow for Adding Ecommerce Data to the Example OmniScript and Card.
• When included in a Lightning App Page, the Vlocity Tracking Manager LWC listens for Vlocity
OmniAnalytics events. It can send these events to Vlocity Tracking Groups and to external analytics
vendors. See Create a Lightning App Page with a Tracking Manager.
• Vlocity OmniAnalytics can record tracking data to Vlocity Tracking Entry objects in the Vlocity Tracking
Service or to Vlocity Tracking Event records as Platform Events. See Enable OmniAnalytics and Store
Tracking Data.
• Vlocity OmniAnalytics provides dashboards for the tracking data it collects from LWC OmniScripts and
FlexCards. You can also create your own custom Salesforce Reports. See View the Tracking Data in the
Vlocity Tracking Group Page and Create a Report Using Vlocity Tracking Entry Data.
• You can specify conditions that determine whether events that Vlocity OmniAnalytics tracks are sent to
external analytics vendors. See Create an Inclusion Rule for an Event Type.
• Due to a Salesforce issue, Vlocity OmniAnalytics does not support the Safari web browser.
• Vlocity Insurance
• Vlocity Health
• Vlocity Communications
• Vlocity Media
• Vlocity Energy
• Vlocity Public Sector
Beginning December 31, 2020, Salesforce will end support for Vlocity Intelligence. We believe we can offer
customers better options for recommending actions and offers through tighter integration with Salesforce
Einstein.
The feature will not be included in any renewals beyond September 1st, 2020. Existing customers may
continue to use Vlocity Intelligence if installed. However, it will not be supported after the end of 2020 and
new releases thereafter will not include the feature.
• The Pubsub Component enables custom logic before executing a callback function when an event is
fired. See Pubsub Component.
• The new ActionGridState LWC card state template displays a vertical list of actions as icons followed by
labels, and an optional title at the top. See Base LWC Card and Layout Templates and Action Grid State
LWC Card Template.
Component Description
Wizard LWC Displays a modal that enables navigation between steps in a process and displays a progress bar that shows
where a user is in the process. See Wizard Lightning Web Component ReadMe.
Wizard Item LWC Creates the template for each wizard item inside the Wizard LWC. See Wizard Item Lightning Web Component
ReadMe.
Related List LWC Displays a table of data with a header that supports actions. See Related List Lightning Web Component
ReadMe.
SLDS Header LWC Displays a page header, which contains a title, an icon, field data, and action links. See SLDS Header Lightning
Web Component ReadMe.
LWC Cards
• Grant access to your org domains to enable LWC features by adding required URLs to Remote Site
Settings from the Vlocity Cards home. See Fixing Inactive/Invalid Error When Enabling LWC on a Card
Layout.
• LWC state templates style and layouts updated. See Base LWC Card and Layout Templates.
• Style updates made to the title font, icon size, and button label for LWC storyOngoingState template.
• Style and layout updates made to the title font, attribute pills, actions, and the address field for the LWC
profileCardState template.
• Style and layout updates made to fonts, icon sizes, labels, fields, and actions for the LWC
wideCardSmart state template.
• CardMiniActive template has max-height and truncates description at two lines.
• Configure ContextId, console tab icon, and console tab label on an OS Action when an LWC OmniScript
is selected. See Launching an LWC OmniScript from an OS Action on a Card.
• Fire pubsub events from an action to notify another component on a page or application of an event
occurring on an LWC enabled card. See Firing a Pubsub Event from an Action on an LWC Card.
• Configure metadata properties on an LWC enabled card with an updated, more user-friendly Show XML
Interface feature. See Configuring the Metadata Values for an LWC Card.
• The Lightning Web Component Bundle API Name must only contain underscores and alphanumeric
characters. It must be unique, begin with a letter, not include spaces, not end with an underscore, and not
contain two consecutive underscores. See Card and Card Layout Naming Conventions.
• From the Layout LWC and State LWC fields in the Card Designer, only custom unmanaged LWCs are
downloadable. See Downloading Custom Unmanaged LWCs From the Card Designer.
• The Name of a custom LWC attribute must match the custom LWC attribute's markup name. See
Embedding a Vlocity Lightning Web Component Inside an LWC Card State.
Angular Cards
• Disable caching across the Vlocity Cards Framework. See Disable Vlocity Platform Cache.
• The GetObjectFromInteraction class leverages platform caching (when available) to store the
descriptions of the field lists and pull them, and adds optional inputs to increase performance. See
GetObjectIdFromInteractionObject Method.
DataRaptors
• DataRaptor Extracts, Turbo Extracts, and Transforms support metadata and data caching. See
DataRaptor Extract Output.
• The Preview tab has an Ignore Cache checkbox for testing. See Test a DataRaptor Extract.
• DataRaptor Turbo Extracts support relationship query notation for including fields from related objects.
See DataRaptor Turbo Extract Overview.
• DataRaptor Extracts and Turbo Extracts can enforce field-level security directly. See DataRaptor Extract
Output.
Integration Procedures
• Integration Procedures support DataRaptor Turbo Action components, which invoke DataRaptor Turbo
Extracts. See DataRaptor Turbo Action.
• Integration Procedures support Chatter Action components, which create Chatter posts and send them to
Chatter feeds. See Chatter Action.
• Vlocity Scheduled Jobs and the Batch Actions that call them support List Input as a Data Source Type,
which simplifies Batch Action configuration. See Batch Action.
• Try-Catch Block failure responses support merge fields. See Handle Errors Using Try-Catch Blocks.
Functions
• The VALUELOOKUP function returns the value of a JSON node referenced by another JSON node. This
lets you dynamically specify the node to retrieve from. See Function Reference.
• The SUBSTRING function converts the first parameter to a String automatically. See Function Reference.
LWC OmniScripts
Download the HTML, CSS, and ReadMe files for this release by clicking here.
New Elements
These new elements are available in LWC OmniScripts.
Element Description
Action Block Groups Action elements together to enable backend calls to fire asynchronously using the same
configuration.
DataRaptor Turbo Extract Action Invokes a DataRaptor Turbo Extract.
New Properties
These new properties are exclusive to LWC OmniScripts:
Property Description
Send only Extra Pass an Extra Payload's Key/Value pairs without sending an OmniScript's data JSON by using the Send
Payload Only Extra Payload property available in these actions: Calculation Action, HTTP Action, Integration
Procedure Action, and Remote Action.
Step: Messaging Steps support the pubsub, window post message, and session storage message properties. See
Framework Communicate with OmniScript from a Lightning Web Component.
New Functionalities
These new functionalities are exclusive to LWC OmniScripts:
Functionality Description
Custom Stylesheet Static Resource Add custom styling to an OmniScript using a custom style sheet static resource.
Enable LWC OmniScripts with Create LWC OmniScripts or convert Angular OmniScripts with a Type that begins with an
UpperCase Type uppercase letter with no additional configuration. See Create an LWC OmniScript.
Inline OmniScripts Display OmniScripts inline in Community and Lightning pages.
Functionality Description
Navigate to Additional Direct users to an App, Community Named Page, Logout, or Login page using the Navigate
PageReference Types Action. See Navigate Action.
Override the Edit Block LWC Override an Edit Block LWC, Edit Block New LWC, and Edit Block Label LWC, to add custom
functionality and styling to an Edit Block.
Override the Modal LWC Extend and override the OmniScript Modal LWC.
Override the Save For Later Override the Save For Later Acknowledgment LWC to add customizations.
Acknowledgement LWC
Override the Type Ahead LWC The LWC Type Ahead element's LWC Component Override field overrides the Type Ahead
component instead of overriding the Type Ahead Block component.
SEO OmniScripts Enable OmniScripts to appear in online searches and direct users to specific Steps in the
OmniScript by configuring OmniScript's SEO options.
SLDS Token Override Add customizations to SLDS Design Tokens in the OmniScript.
Stateful OmniScripts Store the state of an OmniScript's progression in the URL to direct users to specific Steps in
an OmniScript and temporarily store data.
Time Tracking in Navigate Action The Navigate Action supports time tracking. The action is tracked in the StepActionTime time
tracking entry. See Vlocity Tracking Service.
Angular OmniScripts
• Improved messaging and error handling has been added for SFDC authentication in AEM deployments.
• Content Ids appear in the OmniScript's data JSON when a Content Document is uploaded.
• The prettify filter has been removed due to the CC-BY-SA-4.0 licensed snippet. Create a solution to
replace this functionality by referencing this document, pretty-print-json.
• Step elements support window post message, session storage message, and the message property. See
Message with Window Post Messages and Session Storage Messages.
associated Vlocity Action and success and failure messages. See Workflow for Creating State Transition
Rules.
• State Model Versions also support an optional Trigger-enabled On Creation Action. See Workflow for
Using a Trigger and an On Creation Action.
• State Model Versions also support an optional custom rule evaluation Apex class. See Custom Rule
Evaluator Class.
• You can cache State Model states, transitions, rules, and actions for better performance. See Workflow
for Setting Up Caching for State Models.
• You can invoke state transitions automatically on a schedule. See Automatic State Model Transitions.
IDX Workbench
• The Version Compare dashboard lets you compare two versions of an OmniScript or Integration
Procedure in the same Source or Target org. See Compare OmniScript and Integration Procedure
Versions.
• You can specify a Project object in your Source org instead of configuring a project. See IDX Workbench
Configuration for Migration.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
Vlocity Lightning Web Components
• Make remote calls from any custom LWC using the Common Action Utility. See Make Remote Calls from
Lightning Web Components using the LWC OmniScript Action Framework.
• Enable Salesforce's Debug Mode to view Lightning web component errors. See Enable Debug Mode.
Cards
• Limit user access to a card layout with custom permissions. See Creating a Card Layout Using Card
Designer.
• Clear user sessions, custom labels, card layouts, cards, and card template caches across the Vlocity
platform with the new Cache Settings feature in the Cards Designer. See Clear Vlocity Platform and User
Session Caches.
• Update information on a card after making a change to an LWC OmniScript by passing a reload event to
the OmniScript through a URL parameter on the OS Action. See Launching an LWC OmniScript from an
OS Action on a Card.
• Use the $root.vlocity variable to return information about the logged-in user from the data source of a
card on an LWC enabled card layout. See Creating an LWC Card Layout.
• In the new Vlocity Interaction Wrapper component, access all available actions on a customer interaction,
complete, cancel, or resume customer interactions, and view a list of tracking events submitted during a
customer interaction. See Accessing Actions and Manage Interactions with the Vlocity Interaction
Wrapper.
• On a Customer Story card, replace the preconfigured list of actions that create new records with a
customized list of actions. See Replacing Actions on an LWC Customer Story Card.
• The cardActiveState, wideCard, wideCardSlim, and wideCardSmart LWC card templates support field
tracking.
• On a card state, configure a Smart Action and one or more standard actions, such as Vlocity Actions,
Custom Actions, and OS Actions. Prior to this release, you must configure a Smart Action or one or more
standard actions on a card state, not both. See Configuring Smart Actions on an LWC Card.
• Cards with Smart Actions reload when profile attributes update on Lightning or Community pages with
the Vlocity Lightning Profiler component. See Reloading a Smart Card After Updating Profile Attributes.
• New Description field on the Vlocity Action object describes the action. See Vlocity Actions.
• Custom Actions on an LWC enabled card supports Salesforce PageReference Types that enable
navigation within Lightning Experience, within Communities, or to an external web address. See Adding a
Custom Action to an LWC Card.
• OS Actions are fully supported on LWC enabled cards.
• Explicitly deploy and save your LWC enabled card layout, and update the card preview by clicking the
new Deploy button. Autosave triggers only when the card’s layout or card is activated. See Creating an
LWC Card Layout.
• Embed any Vlocity Lightning Web Component, such as an LWC OmniScript, an LWC enabled card, or
any other custom LWC, inside an LWC Card state, and set the attributes of the embedded component.
See Embedding a Vlocity Lightning Web Component Inside an LWC Card State.
• LWC enabled cards and card layouts support Async/Queueable support on Integration Procedures and
Apex Remotes, Dual, and Streaming API data sources. The Preview pane does not support the
Streaming API data source. See LWC Cards Changes and Enhancements.
• New Accordion LWC displays content as vertically stacked sections. Sections can embed other
components. See Accordion Lightning Web Component ReadMe.
• New leftAccountInfoState LWC card state template displays account data listed in rows. See
LeftAccountInfoState LWC Card Template.
• New leftProfileState LWC card state template displays account information as a google map image, up to
three data fields, and up to three actions. See LeftProfileState LWC Card Template.
• Configure the attributes of a Vlocity Lightning Web Component used as a flyout on an LWC enabled card
layout. See Creating an LWC Flyout.
• View a comprehensive list of available LWC card templates and their compatible card layouts, and LWC
layout templates and their compatible cards. See Base LWC Card and Layout Templates.
DataRaptors
A DataRaptor Turbo Extract retrieves data from a single Salesforce object type. You can filter the data and
select the fields to return. Unlike a standard DataRaptor Extract, a DataRaptor Turbo Extract doesn't
support formulas or complex field mappings. See DataRaptor Turbo Extract Overview.
Functions
To enable conversions between Strings and JSON objects, the DESERIALIZE, RESERIALIZE, SERIALIZE,
and TOSTRING functions are supported. See Formulas and Functions.
Integration Procedures
Error Logging
• Write Integration Procedure errors to Vlocity Error Log Entry SObject records by setting
ErrorLoggingEnabled to true. ErrorLoggingEnabled is a Custom Setting under General Settings. See
Error Handling in Integration Procedures.
• Integration Procedures can write Failure Response values to specific fields, including custom fields, in
Vlocity Error Log Service SObject records. See Error Handling in Integration Procedures.
Security
• If a user has access to a parent Integration Procedure, the parent can invoke child Integration
Procedures and DataRaptors even if the user doesn’t have direct access to them. See Create an
Integration Procedure.
• You can call DataRaptors and Integration Procedures privately from Apex, ignoring Sharing Rules. See
DRGlobal Class and Methods and IntegrationProcedureService.
Chainable Settings
• The Chainable Actual Time setting specifies the number of seconds an Integration Procedure can run
before chaining occurs to avoid reaching the Salesforce Concurrent Request Limit. It has no default. See
Settings for Long-Running Integration Procedures.
• Integration Procedure Actions in Integration Procedures have a Disable Chainable checkbox, which is
unchecked by default. If checked, this setting disables the Chainable settings of the subordinate
Integration Procedure. It doesn't affect the Queueable settings. See Integration Procedure Action and
Settings for Long-Running Integration Procedures.
Unit Testing
The setMockHttpResponseByUrlOrActionName method enables unit testing of Integration Procedures that
include more than one HTTP Action. See Integration Procedure Unit Testing from Apex.
Caching
The IntegrationProcedureService class provides methods to clear Integration Procedure data from the
cache: clearSessionCache, clearOrgCache, clearSessionCacheBlock, and clearOrgCacheBlock. See
Cache for DataRaptors and Integration Procedures.
LWC OmniScripts
New Properties
These new properties are exclusive to LWC OmniScripts:
Property Description
Action Message Enables custom action messages to render under an action's loading spinner when an Action runs. For
more information, see Common Action Element Properties.
Display Outside Enables Knowledge base articles to display in a separate Lightning web component in a Lightning page.
OmniScript For more information, see Opening Knowledge Base Articles Outside of a Classic OmniScript.
Merge Saved Data JSON Enables a saved OmniScript to merge data into an updated version of the OmniScript. For more
into updated OmniScript information, see Configure Save Options.
New Functionalities
These new functionalities are exclusive to LWC OmniScripts:
• Make remote calls from any custom LWC using the Common Action Utility. Make Remote Calls from
Lightning Web Components using the LWC OmniScript Action Framework.
• View Knowledge Base articles outside of the OmniScript using the Vlocity OmniScript Knowledge Base
Component. See Opening Knowledge Base Articles Outside of a Classic OmniScript.
• Pass parameters into LWC OmniScripts in a Community. See Launch an LWC OmniScript with LWC
OmniScript Wrapper.
• Launch an OmniScript from a Card in a Community. See Launching an LWC OmniScript from an OS
Action on a Card.
• Override the default save for later error message with a custom message. See Configure Save Options.
• Pass events to an LWC OmniScript in the c_vlocEvents parameter, and fire the event by configuring
the Navigate Action. See Navigate Action.
• Hide the Next and Previous button on a Step by setting the width for each button to 0. See Hide the Next
and Previous Buttons.
• Override the Step Chart Lightning web component. See Customize the Step Chart Component.
• The OmniScript Base Mixin component includes methods to enable these functionalities:
• Navigating to a Step
• Saving a state in a disconnected callback
• Clearing a saved state when a user navigates to a previous Step
• Making remote calls
• Applying response data to an OmniScript's data JSON
• In LWC OmniScripts, validation runs when a user clicks out of a field by using the onBlur function. In
Angular OmniScripts, validation runs when a user types in a field by using the onChange function.
To enable the LWC OmniScript to run validation when a user types:
1. In the Setup properties, click Edit as JSON.
2. Add the property "commitOnChange": true.
3. Preview the behavior.
NOTE
In LWC OmniScripts, the onChange behavior runs after a half-second delay.
• Displaying Knowledgebase articles in OmniScript. For more information, see Initial Configuration for the
Knowledge Component in Classic OmniScript.
• Saving and resuming OmniScripts. Saving and resuming LWC OmniScripts requires additional
configuration due to new behavior. For more information, see Configure Save Options.
• Group elements support the validation framework. For example, when a Group element, such as a Block,
is hidden, validation does not apply to any element inside of the hidden group element.
• Prefilling repeatable blocks. For more information, see Prefill Repeatable Blocks
NOTE
The Image and File elements do not work in the LWC preview due
to a Salesforce limitation. When Image and File elements are
required in a Step, the LWC Preview cannot advance past the
Step. Vlocity recommends marking File and Image elements as
Required only before activating the OmniScript.
Image Supports uploads up to 2 GB. For more information, see Upload Files and Images in Supports uploads up
OmniScripts. to 25 MB.
NOTE
The Image and File elements do not work in the LWC preview
because they use Salesforce components. When Image and File
elements are required in a Step, the LWC Preview cannot
advance past the Step. Vlocity recommends marking File and
Image elements as Required only before activating the
OmniScript.
Messaging Validation runs when a user clicks out of a field. See Display Messages in OmniScripts. Validation runs when
a user types.
SDK Enhancements
Translation SDK now supports anonymous users.
Vlocity Insurance and Health Summer '19 and Vlocity Communications, Media,
and Energy Fall '19 Releases
Vlocity Cards and Vlocity OmniScript both support Lightning Web Components.
To access the introductory training course for Vlocity Lightning web components, see Introduction to Vlocity
Lightning Web Components.
Cards
Vlocity Cards supports Salesforce’s Lightning Web Components programming model by including
components, functionalities, and templates exclusive to LWC Cards. LWC Cards enable the use of custom
components built with standard JavaScript and HTML. For more information, see LWC Cards.
DataRaptor
• If emails are configured in Case assignment rules, checking Use Assignment Rules in a DataRaptor Load
automatically sends emails to users when Cases are assigned. For more information, see Create a
DataRaptor Load.
• The Required Permissions setting limits access to DataRaptors and Integration Procedures based on the
user's Profiles and Permission Sets. For more information, see Security for DataRaptors and Integration
Procedures.
• DataRaptor metadata is cached for better performance. For more information, see Cache for
DataRaptors and Integration Procedures.
• Moving product relationships between orgs is supported.
Integration Procedure
• An Integration Procedure can include a Try-Catch Block, which returns specified output or calls an Apex
class if a step within it fails. For more information, see Handle Errors Using Try-Catch Blocks.
• You can cache metadata and JSON data for an entire Integration Procedure. A Cache Block lets you
cache data for specific actions and use cache keys. Caching improves performance. For more
information, see Cache for DataRaptors and Integration Procedures.
• An Integration Procedure can include a Batch Action, which runs a Vlocity Scheduled Job. For more
information, see Batch Action.
• You can use the Wrap Up Process Name and Wrap Up Process Type fields to run a different Integration
Procedure or VlocityOpenInterface as a child of the initial process, in the same transaction, once the
initial process finishes. For more information, see Batch Jobs for Integration Procedures and Vlocity
Open Interfaces.
• In an Integration Procedure, you can increase Salesforce governor limits by allowing a chainable step to
start a queueable job. You can also configure heap size, CPU, and query limits for a queueable/chainable
Integration Procedure. For more information, see Settings for Long-Running Integration Procedures.
• Send/Response Transformation fields support merge field syntax. This lets you include variables
(%variable%) to generate path and node values dynamically. For more information, see Manipulate
JSON with the Send/Response Transformations Properties.
OmniScript
OmniScript supports Salesforce’s Lightning Web Components programming model by including
components, functionalities, and elements exclusive to LWC OmniScripts. LWC OmniScripts enable the use
of custom components built with standard JavaScript and HTML. For more information, see LWC
OmniScripts.
Upgrade Instructions
1. Upgrade OmniScript by adding these values to the Type picklist in the Vlocity OmniScript Element
(ns_Element_c) table:
• Custom Lightning Web Component
• Navigate Action
For more information, see Adding OmniScript Elements to an Upgraded Org.
2. Upgrade Integration Procedures by adding these values to the Type picklist in the Vlocity OmniScript
Element (ns_Element_c) table:
• Batch Action
• Cache Block
• Try Catch Block
For more information, see Add Integration Procedure Components to an Upgraded Org.
Salesforce Newbie?
If you are new to Salesforce, here are some Trailheads you might want to explore:
OmniStudio includes three main applications designed for meeting specific challenges:
https://player.vimeo.com/video/277166788
https://player.vimeo.com/video/277166182
https://player.vimeo.com/video/277165738
The agent views order-related information and actions contained in the card. When the agent clicks the new
order link on the card, an OmniScript launches to begin a guided process for purchasing products.
OmniScript uses a DataRaptor to get a list of products for display. Then the agent can choose one or more
products for purchase. When the purchasing process ends, the OmniScript returns the agent to the view
that includes the Orders card.
OmniScript Basics
A Vlocity OmniScript guides users through complex processes with fast, personalized, and consistent
responses. For example, you can create an OmniScript to guide:
You can create a guided interaction to match the flow of your process. OmniScript is a declarative scripting
tool, meaning you create it with clicks, not code. To create the structure of an OmniScript, you drag and
drop different types of elements to:
Templates control both the style and appearance of OmniScripts. You can customize whether your guided
interaction has a horizontal or vertical mode, branding, and any other aspects you wish to change.
• An action button such as the one shown here on the account page
• An action link on a card
Customer Context
Each customer is linked to multiple aspects of your company's products and services. Customers have
accounts, preferred methods to receive bills, preferred means of contact, and a history of the products they
have purchased as well as their interactions with the company. When agents must use different systems to
gather contextual information about the customer, it affects customer service. Use the Vlocity Cards
Framework to streamline customer engagement.
NOTE
Beginning with Vlocity Health and Insurance Summer '19, Vlocity supports Salesforce's
Lightning Web Components programming model with Vlocity Lightning Web Components.
Vlocity Lightning Web Components include components, functionalities, and templates
exclusive to LWC Cards. LWC Cards enables you to use standard JavaScript and HTML to
modify and extend Vlocity products. To learn more, see Vlocity Lightning Web
Components.
Designer
The framework features a card designer, a declarative tool to create UI components.
With the Classic Card Designer, build Angular cards and LWC enabled cards with templates and cards
embedded in card layouts, with minimal code. See Working with the Template Designer and Card Designer.
Build dynamic customer-centric UIs without code from a drag interface with WYSIWYG editing. See
FlexCards.
Cards
A card is a block that contains a combination of pertinent information and links to processes within a
specific context. For example, an account card can include unique account information, such as:
• Status
• Priority or service level agreement
• Creation date
• Closing a case
• Opening a new case
• Creating a new task
Each action in the Classic Card Designer can launch an OmniScript to begin a guided process, or perform
other actions such as opening an external link.
In the FlexCard Designer, you can create an action that launches or updates an OmniScript, navigates to a
web page or application, displays a flyout, fires an event, update field values, and more. See Add an Action
to a FlexCard.
Style individual elements or add custom CSS directly on an element within the FlexCard Designer. You can
also make elements responsive. See Style FlexCard Elements.
Data Sources
Select from multiple data source options to retrieve data to display on your cards. For a list of data sources
available in the Classic Cards Designer, see Configuring Data Sources for Cards Components. For a list of
data sources available in the FlexCard Designer, see FlexCards Data Source Reference.
in a single place and generate custom, optimized CSS files that can be used consistently across all
components and pages.
Designers
Use the new Design System [beta release] to review all the components and download a Sketch library to
accelerate the design.
Developers
Go to the Vlocity Github repository to help you customize and rebrand all the Vlocity Newport based
templates in one place.
DataRaptor Basics
Vlocity DataRaptor moves data into and out of Vlocity applications, and is commonly referred to as an
Extract, Transform, and Load application. DataRaptors enable you to read and write data to and from your
Salesforce org.
With DataRaptor:
DataRaptor's transform feature modifies values by using formulas and functions. For example, formulas
and functions can:
• Convert JSON input to XML output, and XML output to JSON input.
• Restructure the input data and rename fields.
• Substitute values in fields.
• Service Console Apps, which contain multiple tabs and a way to navigate between them. You create and
edit Service Console Apps in the App Manager in Setup. Each tab contains a Lightning Record Page.
• Lightning Record Pages, which contain multiple screen components that display data based on a specific
Salesforce object type, such as Accounts. You create and edit Lightning Record Pages in the Lightning
App Builder in Setup. Screen components in a Lightning page include:
• Prebuilt Salesforce Lightning Components
• Prebuilt Vlocity Lightning Components
• Cards, which display data and launch actions
Prebuilt Vlocity Service Console Apps use console navigation mode, which is also recommended for any
custom Service Console Apps that you build. This mode lets you display an object type, such as Accounts,
in a primary tab, and specific object records in subtabs. Vlocity provides Lightning components and Action
behaviors to support console navigation. You can customize, clone, and reuse these apps as needed.
This multiple-tab structure allows you to have all of your customer service information and links to actions at
your fingertips for each customer. You can work quickly through a list of customer records and follow
industry-specific guided flows.
TIP
Learn more about the Salesforce Console in the Salesforce Help. This Salesforce article
discusses console navigation, implementation, and limitations.
You can use the Lightning App Builder to quickly create and customize Lightning Record Pages for your
own Vlocity Service Console App. Components on these pages use the main platform applications: Cards
Framework, OmniScript, and DataRaptor.
• Cards Framework enables you to build, edit, and define the look and feel of cards.
• Data sources enable you to use DataRaptors to provide the information displayed on the card.
• Actions are embedded links on cards that launch guided workflows built as OmniScripts.
There are many additional components, but this section introduces the basic platform components.
• A left sidebar that displays basic account information and the customer story, which is a record of
previous customer activity and interaction.
• A center card canvas that contains cards focused on different contexts.
• A right sidebar that displays dynamic information such as offers, and profile "tags" to describe
characteristics of the company, such as culture, concerns, and news.
Before you begin creating your own Vlocity Service Console app, see Installing and Activating Vlocity
Templates and Cards.
To create a simple Lightning Record Page for a Service Console app, see Building an Account Lightning
Record Page.
Vlocity User Interaction Tools enable you to develop interactive user interfaces to permit your users to view
and change data. To define how data is managed in your org as a result of these user interactions, use
Vlocity Data Tools.
• Fast and Lightweight. Runs natively in browsers and is independent from JavaScript frameworks.
• Reusable. Vlocity Lightning Web Components use web components to create reusable custom HTML
elements. Custom elements wrap functionality, protecting components from other styles and scripts on
the page.
Required Versions
Available beginning with Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19.
While some Vlocity Lightning web components appear in the Community and App Builders, they differ from
the Vlocity Lightning Components that also appear in the builders. Vlocity Lightning Web Components
follow the same standards as Salesforce's Lightning Web Components. For more information on Lightning
Web Component standards, see Lightning Web Components.
recommend IDX Workbench because it enables you to migrate Vlocity components from one org to another
and compare both source and target files.
• To manage and develop your LWCs with Salesforce DX, see Set Up Your Development Environment.
• To manage and develop your LWCs with IDX Workbench, see IDX Workbench Desktop Application.
Required Versions
Available beginning with Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19.
Required Versions
Available beginning with Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19.
NOTE
Custom Lightning web components built outside of the package cannot use any Salesforce
Lightning web component that uses Salesforce resources or affects the component at run
time. For more information, see Salesforce Modules.
NOTE
Custom Lightning web components will not throw errors unless Debug Mode is enabled.
For more information, see Debug Lightning Web Components.
1. Ensure you have IDX Workbench, or Salesforce DX set up locally. For information on setting up IDX
Workbench or Salesforce DX, see Set Up Lightning Web Components.
2. Choose which component you want to extend. For a list of Lightning web components, see Vlocity
Lightning Web Components.
3. To create a new Lightning web component, navigate to your lwc folder in your project and run the
force:lightning:component:create SFDX command. For example:
To learn more about creating a Lightning web component, see Create Lightning Web Components. For
a complete list of available SFDX commands, see Lightning Commands.
4. In your JavaScript file, import and extend the Lightning web component. See code example on this
page.
5. To make the custom Lightning web component compatible with Vlocity Lightning web components, you
must set two metadata tags in your XML configuration file:
• Add the namespace of your Vlocity package using the runtimeNamespace metadata tag. See the
code example on this page. For more information on finding the namespace of your package, see
Viewing the Namespace and Version of the Vlocity Package.
• Set the isExposed metadata tag to true. See code example on this page.
6. (Optional) Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, Enable
a custom Lightning web component to make remote calls by using the Common Action utility. For more
information, see Make Remote Calls from Lightning Web Components using the LWC OmniScript
Action Framework.
Example
In this code example, a custom Lightning web component extends the Button Lightning Web Component.
Replace the NS variable in the code example with the namespace of the Vlocity package you are using.
//.js
onclickbutton() {
this.label = "Button clicked";
}}
//.js-meta.xml
//.html
<template>
//add HTML here to override the template layout
</template>
//_slds.css
Required Versions
Available beginning with Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19.
sfdx force:source:push
For more on deploying components to your org with Visual Studio, see Analyze Your Code and Deploy
It to Your Org.
For information on accessing an LWC OmniScript through a URL, see Launch an LWC OmniScript with
LWC OmniScript Wrapper.
Required Versions
Available beginning with Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19.
lightning/cmp/NS__vlocityLWCWrapper?
2. Target the component by adding c__target= to the URL.
lightning/cmp/NS__vlocityLWCWrapper?c__target=
3. Set the URL to target the component by adding c: to indicate a component and add the component
name without dashes using camelCase. For example, to add a component with the name <c-demo-
button> use the syntax c:demoButton.
lightning/cmp/NS__vlocityLWCWrapper?c__target=c:demoButton
4. (Optional) When using the wrapper in a console app, add a Console Tab Icon and a Console Tab Label
by setting the c__tabIcon and c__tabLabel parameters. The c__tabIcon accepts an SLDS Icon , and
c__tabLabel accepts plain text. For example, &c__tabLabel=Custom
Label&c__tabIcon=standard:account renders the console tab shown in this example image.
5. (Optional) Assign additional attributes by passing parameters that match the attribute names.
Parameters must use the c__ prefix.
Example Button Component Code:
lightning/cmp/NS__vlocityLWCWrapper?
c__target=c:button&c__label=Dynamically Generated&c__variant=outline-brand
Example Image:
lightning/cmp/NS__vlocityLWCWrapper?c__target=c:demoButton
Required Versions
Available beginning with Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19.
1. Navigate to the Lightning Page, and open the Lightning App Builder. For information on the Lightning
App Builder, see Lightning App Builder.
2. In the Lightning Components search field, enter powerLauncher.
Component Description
Accordion Displays content as vertically stacked sections.
AccordionSection Adds the basic element inside the Accordion LWC.
Action The base component for all action components.
Alert Displays an SLDS or Newport styled alert.
AsyncUtils A module that exposes a collection of utilities designed to simplify asynchronous operations
BaseLayout All cards extend this component.
Component Description
BaseState All card layouts extend this component.
Button Renders a button element to perform an action
Carousel Displays a series of images inside a container one image at a time.
CarouselItem Displays the basic element inside a Carousel LWC.
Chart Displays data as a chart and enables users to perform actions from the chart.
ChartDonut Extends the Chart LWC and adds the ability to display and resize text at the center of the
donut.
CheckboxGroup Enables users to select from single or multiple options.
CheckboxImageGroup Extends the CheckboxGroup and enables users to select from single or multiple options by
clicking images instead of checkboxes.
Combobox Displays a read-only input element enabling users to select an option from a list of options.
Datasource Fetches data from Salesforce using different data source types by providing relevant input
data.
DatasourceApexRemote Extends Datasource LWC with additional features for fetching data using an Apex class using
a class and method.
DatasourceApexRest Extends Datasource LWC with additional features for fetching data using an Apex class from a
rest endpoint.
DatasourceDataraptor Extends Datasource LWC with additional features for fetching data from a Vlocity DataRaptor.
DatasourceIntegrationprocedure Extends Datasource LWC with additional features for fetching data from an Vlocity Integration
Procedure.
DatasourceQuery Extends Datasource LWC with additional features for fetching data using a Salesforce Object
Query Language (SOQL) query.
DatasourceRest Extends Datasource LWC with additional features for for data fetched from a REST web data
source.
DatasourceSdk Extends Datasource LWC with additional features for data fetched from an SDK.
DatasourceSearch Extends Datasource LWC with additional features for etching data through a Salesforce
Object Search Language (SOSL) query.
DataTable Creates a tabular structure of the data provided.
DataTableCell Adds the basic element inside a DataTable LWC to create individual cells.
DatePicker Displays a date input element with a graphical user interface (GUI) widget that enables the
user to select a date from a calendar.
DateTimePicker Displays a set of input fields with graphical user interface (GUI) widgets that enables the user
to select a date from a calendar and a time from a list.
Form Creates a wrapper around Vlocity form elements to enable form capabilities.
Icon Renders an SVG icon.
Img Displays an available image.
Input Renders an input element.
InteractionWrapper A wrapper component for a customer interaction and the Power Launcher. The component is
used inside a customer interaction records page to see all interactions with a customer and
perform any actions related to the interaction.
Layout Creates a flexible grid system arranging containers on a page or inside other containers.
LayoutItem Adds the basic element inside the parent Layout LWC container, grouping content together to
create sections inside the parent container.
List Creates a searchable and sortable list from the data provided.
ListItems Adds the basic element for the List LWC. Creates the template for each list item.
MaskedInput Extends the Input LWC and controls what you can enter in the form input fields.
Component Description
Menu Creates a menu from the list of menu items provided.
MenuItem Adds the base element for building a menu with the Menu LWC.
Modal Displays content in a layer on top of the app, such as creating or editing a record, or various
types of messaging and wizards.
MonacoEditor Displays the code editor tool used inside Salesforce.
NavigateAction Enables navigation to any of Salesforce PageReference type by leveraging Salesforce's
navigation service.
NavigationUtils A module that exposes a collection of utilities designed to simplify navigational functions.
Newport Loader A utility that exposes a single load function used to ensure the Newport CSS styles load in the
<head> of the page.
OutputField Returns a read-only label, help text and value for the field name of a record.
Pill Displays an input element that displays read-only labels, which can containing links and be
removed from view on-demand.
Popover Displays a non-modal dialog that must pair with a clickable trigger element and contain at
least one focusable element.
Power Launcher Gets and displays a list of vlocity actions based on the recordId.
Power Launcher Action Displays Vlocity actions inside the PowerLauncher LWC and extends Action LWC.
ProgressBar Displays progress of activity on a page.
Prompt Displays simple content on a layer on top of an app. For example, use a prompt to confirm
form submission or to direct the user to confirm a step in a process.
Pubsub Enables data sharing between components. Multiple components can register and receive
data from the same channel.
RadioGroup Enables users to select from single or multiple options by selecting one radio button.
RadioImageGroup Extends the RadioGroup LWC and enables users to choose from single or multiple options by
selecting an image instead of a radio button.
Related List Displays a table of data with a header that supports actions. All attributes from the DataTable
LWC and SLDS Header LWC are available to this component.
RichTextEditor Displays a text editor tool for rich content editing.
SLDS Header Displays a page header, which contains a title, an icon, field data, and action links.
Slider Displays a graphical control element for a user to set a value by moving an indicator
horizontally or vertically.
Spinner Displays an animated image that indicates a feature is loading
Styles Specifies the theme of a component and gets the base CSS for that theme.
Tab Adds the base element inside a Tabset LWC.
Tabset Displays a tabbed container with multiple content areas, only one of which is visible at a time.
Textarea Displays an HTML textarea element for entering multi-line text input that holds an unlimited
number of characters.
TimePicker Displays a graphical user interface (GUI) widget that allows the user to select a time from a list
of options.
Toast A feedback and confirmation tool that runs after the user takes an action.
Toggle Enables a user to pick between two states, enable or disable an option, or select multiple
options.
Tooltip Displays an icon with a popover containing a small amount of text describing an element on
the screen.
Tree Displays the visualization of a structural hierarchy, such as a sitemap for a website or a role
hierarchy in an organization.
Component Description
TreeItem Adds the basic element in a Tree LWC.
Typeahead Provides hints or a list of possible choices based on the text the user enters while filling out a
form or performing a search.
Utility Functions Helper functions available for all Vlocity Lightning Web Components.
Wizard Displays a modal that enables navigating between steps in a process and displays a progress
bar that shows where the user is in the process. Supports custom labels.
Wizard Item Creates the template for each wizard item inside the Wizard LWC.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Accordion Lightning Web Component displays content as vertically stacked sections. Sections can
embed other components.
<c-accordion active-section-name="b">
<c-accordion-section name="a" title="a">...</c-accordion-section>
<c-accordion-section name="b" title="b">...</c-accordion-section>
<c-accordion-section name="c" title="c">...</c-accordion-section>
</c-accordion>
Available listeners
onaccordionsectionopen
Triggered after a section opens. The event detail contains the name of the section and its uniqueKey which
can be used to identify it using class accordion-class_[uniqueKey]
onaccordionsectionclose
Triggered after a section closes. The event detail contains the name of the section and its uniqueKey which
can be used to identify it using class accordion-class_[uniqueKey]
this.template.addEventListener("onaccordionsectionclose", function(event) {
console.log(
"onAccordionSectionClose : ",
JSON.stringify(event.detail.result)
);
});
this.template.addEventListener("onaccordionsectionopen", function(event) {
console.log("onAccordionSectionOpen : ",
JSON.stringify(event.detail.result));
});
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Accordion Lightning Web Component is the basic element inside the Accordion Lightning Web
Component.
Available c-accordion-sectionAttributes
Example menuitems
[
{
actionUrl: "javaScript:void(0);",
openUrlIn: "newTab",
name: "menu1",
type: "action",
record: {
id: "001122",
value: "Menu1",
label: "Menu1"
}
},
{
actionUrl: "javaScript:void(0);",
openUrlIn: "newTab",
name: "menu1",
type: "action",
record: {
id: "001124",
value: "Menu3",
label: "Menu3"
}
}
];
Note: All the keys of the menuItem array object are required. However, the value can be null or empty. For
more info check the readme of the Menu Lightning Web Component.
}
}]
<c-accordion active-section-name="B">
<c-accordion-section
theme="slds"
label="Accordion With Menu"
name="A"
title="A"
menuitem="{menuitem}"
>
<p>This is the first accordion</p>
<p>.</p>
<p>.</p>
<p>.</p>
</c-accordion-section>
<c-accordion-section
theme="slds"
label="Accordion Without Menu"
name="B"
title="B"
>
<p>This is the second accordion</p>
<p>.</p>
<p>.</p>
<p>.</p>
</c-accordion-section>
<c-accordion-section
theme="slds"
label="Accordion Without Menu"
name="C"
title="C"
>
<p>This is the third accordion</p>
<p>.</p>
<p>.</p>
<p>.</p>
</c-accordion-section>
</c-accordion>
@track
query = JSON.stringify({
datasource: {
type: "query",
value: {
query: "SELECT Id, name FROM Contact LIMIT 1"
}
},
url: "/${data[0].Id}",
target: "_blank",
parameters: {},
navigate: false
});
fetchData(ev) {
let action = ev.currentTarget;
let def = JSON.parse(this.query);
action.definition = this.query;
action.triggerAction();
}
// Passing these properties down to the navigate-action using attributes.
onsuccesscallback(ev) {
let result = ev.detail.result;
this._targetType = "Record";
this._targetId = result[0].Id;
// Because attribute values are set using attributes, give the ui a chance
to re-render.
Promise.resolve().then(() => {
let navigateAction = this.template.querySelector("c-navigate-action");
navigateAction.navigate();
this.url = ev.target.url;
this.onResult(
result.map(obj => {
var rObj = obj;
rObj.isEdit = false;
return rObj;
})
);
});
}
onerrorcallback(error) {
console.log(error);
}
{
"datasource": {
"type": "query",
"value": {
"query": "SELECT Id, name FROM Contact LIMIT 1"
}
},
"navigateTo": {
"type": "standard__objectPage",
"attributes": {
"objectApiName": "${data[0].Id}",
"actionName": "view"
}
},
"navigate": true
}
{
"datasource": {
"type": "query",
"value": {
"query": "SELECT Id, name FROM Contact LIMIT 1"
}
},
"url": "/${data[0].Id}",
"navigate": true
}
{
"data": {
"Id": "001B000000qBQXDIA4"
},
"url": "/${data.Id}",
"navigate": true
}
{
"navigateTo": {
"type": "standard__objectPage",
"attributes": {
"objectApiName": "Account",
"actionName": "home"
}
},
"navigate": true
}
{
"navigateTo": {
"type": "standard__objectPage",
"attributes": {
"objectApiName": "Account",
"actionName": "new"
}
},
"navigate": true
}
<c-action
icon-extraclass="slds-m-right_small"
state-obj={obj}
context-id={contextId}
s-object-type={sObjectType}
state-action={item}
action-wrapperclass="slds-size--1-of-1"
action-labelclass="slds-size--7-of-8"
icon-wrapperclass="slds-size--1-of-8"
></c-action>
<c-action
onclick={fetchData}
ondata={onsuccesscallback}
onerror={onerrorcallback}
>
<c-button label="Fetch Contact" type="button" variant="neutral"></c-button>
<c-navigate-action
target-type={_targetType}
target-id={_targetId}
target-name={_targetName}
target-params={_targetParams}
target-action={_targetAction}
replace
>
<p>URL: {url}</p>
</c-navigate-action>
</c-action>
@track
query = JSON.stringify({
datasource: {
type: "query",
value: {
query: "SELECT Id, name FROM Contact LIMIT 1"
}
},
url: "/${data[0].Id}",
target: "_blank",
parameters: {},
navigate: false
});
fetchData(ev) {
let action = ev.currentTarget;
let def = JSON.parse(this.query);
action.definition = this.query;
action.triggerAction();
}
// I'm passing these properties down to the navigate-action via
// attributes.
onsuccesscallback(ev) {
let result = ev.detail.result;
this._targetType = "Record";
this._targetId = result[0].Id;
this.url = ev.target.url;
this.onResult(
result.map(obj => {
var rObj = obj;
rObj.isEdit = false;
return rObj;
})
);
});
}
onerrorcallback(error) {
console.log(error);
{
"datasource": {
"type": "query",
"value": {
"query": "SELECT Id, name FROM Contact LIMIT 1"
}
},
"navigateTo": {
"type": "standard__objectPage",
"attributes": {
"objectApiName": "${data[0].Id}",
"actionName": "view"
}
},
"navigate": true
}
{
"datasource": {
"type": "query",
"value": {
"query": "SELECT Id, name FROM Contact LIMIT 1"
}
},
"url": "/${data[0].Id}",
"navigate": true
}
{
"data": {
"Id": "001B000000qBQXDIA4"
},
"url": "/${data.Id}",
"navigate": true
}
{
"navigateTo": {
"type": "standard__objectPage",
"attributes": {
"objectApiName": "Account",
"actionName": "home"
}
},
"navigate": true
}
{
"navigateTo": {
"type": "standard__objectPage",
"attributes": {
"objectApiName": "Account",
"actionName": "new"
}
},
"navigate": true
}
<c-action
icon-extraclass="slds-m-right_small"
state-obj={obj}
context-id={contextId}
s-object-type={sObjectType}
state-action={item}
action-wrapperclass="slds-size--1-of-1"
action-labelclass="slds-size--7-of-8"
icon-wrapperclass="slds-size--1-of-8"
></c-action>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Action Lightning Web Component is the base component for all action components.
@track
query = JSON.stringify({
datasource: {
type: "query",
value: {
query: "SELECT Id, name FROM Contact LIMIT 1"
}
},
url: "/${data[0].Id}",
target: "_blank",
parameters: {},
navigate: false
});
fetchData(ev) {
let action = ev.currentTarget;
let def = JSON.parse(this.query);
action.definition = this.query;
action.triggerAction();
}
this.url = ev.target.url;
this.onResult(
result.map(obj => {
var rObj = obj;
rObj.isEdit = false;
return rObj;
})
);
});
}
onerrorcallback(error) {
console.log(error);
}
{
"datasource": {
"type": "query",
"value": {
"query": "SELECT Id, name FROM Contact LIMIT 1"
}
},
"navigateTo": {
"type": "standard__objectPage",
"attributes": {
"objectApiName": "${data[0].Id}",
"actionName": "view"
}
},
"navigate": true
}
{
"datasource": {
"type": "query",
"value": {
"query": "SELECT Id, name FROM Contact LIMIT 1"
}
},
"url": "/${data[0].Id}",
"navigate": true
}
{
"data": {
"Id": "001B000000qBQXDIA4"
},
"url": "/${data.Id}",
"navigate": true
}
{
"navigateTo": {
"type": "standard__objectPage",
"attributes": {
"objectApiName": "Account",
"actionName": "home"
}
},
"navigate": true
}
{
"navigateTo": {
"type": "standard__objectPage",
"attributes": {
"objectApiName": "Account",
"actionName": "new"
}
},
"navigate": true
}
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Action Lightning Web Component is the base component for all action components.
<c-action
onclick={fetchData}
ondata={onsuccesscallback}
onerror={onerrorcallback}
>
<c-button label="Fetch Contact" type="button" variant="neutral"></c-button>
<c-navigate-action
target-type={_targetType}
target-id={_targetId}
target-name={_targetName}
target-params={_targetParams}
target-action={_targetAction}
replace
>
<p>URL: {url}</p>
</c-navigate-action>
</c-action>
@track
query == JSON.stringify({
datasource: {
type: "query",
value: {
query: "SELECT Id, name FROM Contact LIMIT 1"
}
},
url: "/${data[0].Id}",
target: "_blank",
parameters: {},
navigate: false
});
fetchData(ev) {
let action == ev.currentTarget;
let def == JSON.parse(this.query);
action.definition == this.query;
action.triggerAction();
}
// I'm passing these properties down to the navigate-action via
// attributes.
onsuccesscallback(ev) {
let result == ev.detail.result;
this._targetType == "Record";
this._targetId == result[0].Id;
this.url == ev.target.url;
this.onResult(
result.map(obj => {
var rObj == obj;
rObj.isEdit == false;
return rObj;
})
);
});
}
onerrorcallback(error) {
console.log(error);
}
{
"datasource": {
"type": "query",
"value": {
"query": "SELECT Id, name FROM Contact LIMIT 1"
}
},
"navigateTo": {
"type": "standard__objectPage",
"attributes": {
"objectApiName": "${data[0].Id}",
"actionName": "view"
}
},
"navigate": true
}
{
"datasource": {
"type": "query",
"value": {
"query": "SELECT Id, name FROM Contact LIMIT 1"
}
},
"url": "/${data[0].Id}",
"navigate": true
}
{
"data": {
"Id": "001B000000qBQXDIA4"
},
"url": "/${data.Id}",
"navigate": true
}
{
"navigateTo": {
"type": "standard__objectPage",
"attributes": {
"objectApiName": "Account",
"actionName": "home"
}
},
"navigate": true
}
{
"navigateTo": {
"type": "standard__objectPage",
"attributes": {
"objectApiName": "Account",
"actionName": "new"
}
},
"navigate": true
}
<c-action
icon-extraclass="slds-m-right_small"
state-obj={obj}
context-id={contextId}
s-object-type={sObjectType}
state-action={item}
action-wrapperclass="slds-size--1-of-1"
action-labelclass="slds-size--7-of-8"
icon-wrapperclass="slds-size--1-of-8"
></c-action>
<c-alert theme="slds"
variation="info|warning|error|offline"
icon="utility:trail"
message="This is a simple message.">
<span>For more <em>complex</em> messaging, use the default slot.
<a href="https://lwc.dev/guide/composition#pass-markup-into-
slots" target="_blank">Using slots.</a>
</span>
</c-alert>
Available Methods
dismiss()
Available Classes
Alert
Available Events
dismissed
Available Variations
enum
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Alert Lightning Web Component displays an SLDS or Newport alert.
<c-alert theme="slds"
variation="info|warning|error|offline"
icon="utility:trail"
message="This is a simple message.">
<span>For more <em>complex</em> messaging, use the default slot.
<a href="https://lwc.dev/guide/composition#pass-markup-into-
slots" target="_blank">Using slots.</a>
</span>
</c-alert>
Available Methods
dismiss()
Available Classes
Alert
Available Events
dismissed
Available Variations
enum
AsyncUtils ReadMe
This page contains an AsyncUtils ReadMe for each Vlocity release.
ns/asyncUtils.delay(waitFor, [result])
Delays execution in the form of a promise.
Available Methods
reloadLayout()
Fetches the updated data from the data source and reloads the layout.
manipulateData()
Manipulates records before passing to cards. Updates the records, passes them to the cards.
fetchUserProfile()
Call this method to fetch the userProfile data. By default, when the fetch User Info is checked, this fetches
the value and stores it in the userProfile field. If the data is not present, you can call this method to
fetch it again.
setDefinition(val)
The definition is auto-generated when a layout is created in the Card Designer, defining the layout. If it
needs to be changed at runtime, you can call this method and pass val as the card definition.
evaluateMetatags()
By default, this method gets triggered when setting the definition value and sets the metatag from the
definition. To set the metadata manually, use this method.
loadRecords()
Fetches the data again from the card data source and updates the records data.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
All card layouts extend BaseLayout Lightning Web Component as a mixin.
Available Methods
enableEditMode
disableEditMode
updateObject
toggleFlyout
handleSmartActions
Reloads the smartActions. It can also be triggerd by pubsub, such as channel: smartActions , name:
reload.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
All card states extend BaseState Lightning Web Component as a mixin.
<c-button
icon-url="/slds"
variant="brand"
disabled=""
label="disabled"
icon-name="utility:close"
icon-position="right"
></c-button>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Button Lightning Web Component renders a button element to perform an action.
<c-button
icon-url="/slds"
variant="brand"
disabled=""
label="disabled"
icon-name="utility:close"
icon-position="right"
></c-button>
<c-button
icon-url="/slds"
variant="brand"
disabled=""
label="disabled"
icon-name="utility:close"
icon-position="right"
></c-button>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Button Lightning Web Component renders a button element to perform an action.
<c-button
icon-url="/slds"
variant="brand"
disabled=""
label="disabled"
icon-name="utility:close"
icon-position="right"
></c-button>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Carousel Lightning Web Component displays a series of images inside a container. Images display
one at a time and you can set how to navigate between images (by image thumbnail or colored dots).
<c-carousel
interval="5000"
arrow="false"
thumbnaillimit="3"
>
<c-carousel-item
src="{item.image}"
header="{item.title}"
description="{item.description}"
>
</c-carousel-item>
<c-carousel-item
src="{item.image}"
header="{item.title}"
description="{item.description}"
>
</c-carousel-item>
<c-carousel-item
src="{item.image}"
header="{item.title}"
description="{item.description}"
>
</c-carousel-item>
</c-carousel>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Carousel Lightning Web Component displays a series of images inside a container. Images display
one at a time and you can set how to navigate between images (by image thumbnail or colored dots).
<c-carousel-item
src="{item.image}"
header="{item.title}"
description="{item.description}"
>
</c-carousel-item>
<c-carousel-item
src="{item.image}"
header="{item.title}"
description="{item.description}"
>
</c-carousel-item>
</c-carousel>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The CarouselItem Lightning Web Component is the basic element inside the Carousel Lightning Web
Component. Each carousel item populates the carousel images.
<c-carousel-item
src="{item.image}"
header="{item.title}"
description="{item.description}"
>
</c-carousel-item>
<c-carousel-item
src="{item.image}"
header="{item.title}"
description="{item.description}"
>
</c-carousel-item>
</c-carousel>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The CarouselItem Lightning Web Component is the basic element inside the Carousel Lightning Web
Component. Each carousel item populates the carousel images.
<c-carousel
interval="5000"
arrow="false"
thumbnaillimit="3"
>
<c-carousel-item
src="{item.image}"
header="{item.title}"
description="{item.description}"
>
</c-carousel-item>
<c-carousel-item
src="{item.image}"
header="{item.title}"
description="{item.description}"
>
</c-carousel-item>
<c-carousel-item
src="{item.image}"
header="{item.title}"
description="{item.description}"
>
</c-carousel-item>
</c-carousel>
<c-chart
values="{val2}"
labels="{labels2}"
type="{type2}"
background-color="{backgroundColor2}"
></c-chart>
// call the getDataHandler and format the response from the query
getDataHandler(
request
).then(data => {
console.log('request from query : ',data);
this.formatResponse(data);
}).catch(error => {
console.log('error from query : ',error);
});
<c-chart
channel="query"
values="{testVal1}"
labels="{testLabel1}"
type="{testType1}"
background-color="{testBackgroundColor1}"
></c-chart>
@track
testLabel2 = [];
<c-chart
values="{testVal2}"
labels="{testLabel2}"
type="{testType2}"
background-color="{testBackgroundColor2}"
channel="dataraptor"
>
</c-chart>
<c-datasource-dataraptor
bundlename="GetContactDetails"
inputmap="{inputMap}"
channel="dataraptor"
debug="true"
>
</c-datasource-dataraptor>
values = [,,,4,2]
//or
values = [3.5,6,7,0,8.5]
backgroundColor1 = ['Red','Green','Yellow']
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Chart Lightning Web Component displays data as a chart and enables users to perform actions from
the chart.
icon-size xx-small, x-small, string Sets the icon size for the button element.
small, medium, large
icon-url URL string Sets the icon URL, overriding the defined url for
the svg resource. Used with Newport Design
System (NDS) theme only.
title string Adds a title to the chart.
<c-chart
values="{val2}"
labels="{labels2}"
type="{type2}"
background-color="{backgroundColor2}"
></c-chart>
// call the getDataHandler and format the response from the query
getDataHandler(
request
).then(data => {
console.log('request from query : ',data);
this.formatResponse(data);
}).catch(error => {
console.log('error from query : ',error);
});
<c-chart
channel="query"
values="{testVal1}"
labels="{testLabel1}"
type="{testType1}"
background-color="{testBackgroundColor1}"
></c-chart>
@track
testLabel2 = [];
<c-chart
values="{testVal2}"
labels="{testLabel2}"
type="{testType2}"
background-color="{testBackgroundColor2}"
channel="dataraptor"
>
</c-chart>
<c-datasource-dataraptor
bundlename="GetContactDetails"
inputmap="{inputMap}"
channel="dataraptor"
debug="true"
>
</c-datasource-dataraptor>
backgroundColor1 = ['Red','Green','Yellow']
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Chart Lightning Web Component displays data as a chart and enables users to perform actions from
the chart.
<c-chart
values="{val2}"
labels="{labels2}"
type="{type2}"
background-color="{backgroundColor2}"
></c-chart>
// call the getDataHandler and format the response from the query
getDataHandler(
request
).then(data => {
console.log('request from query : ',data);
this.formatResponse(data);
}).catch(error => {
console.log('error from query : ',error);
});
<c-chart
channel="query"
values="{testVal1}"
labels="{testLabel1}"
type="{testType1}"
background-color="{testBackgroundColor1}"
></c-chart>
@track
testLabel2 == [];
<c-chart
values="{testVal2}"
labels="{testLabel2}"
type="{testType2}"
background-color="{testBackgroundColor2}"
channel="dataraptor"
>
</c-chart>
<c-datasource-dataraptor
bundlename="GetContactDetails"
inputmap="{inputMap}"
channel="dataraptor"
debug="true"
>
</c-datasource-dataraptor>
backgroundColor1 == ['Red','Green','Yellow']
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The ChartDonut Lightning Web Component extends the Chart Lightning Web Component and adds
additional features. This component adds the ability to display and resize text at the center of the donut.
Example c-chart-donut
<c-chart-donut
values={val1}
labels={labels1}
icon-class="classOne"
type={type1}
title="Doughnut Chart"
background-color={backgroundColor1}
cutout-percentage="30"
center-text={centerText}
text-color={textColor}
font-style={fontStyle}
side-padding={sidePadding}
>
</c-chart-donut>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The ChartDonut Lightning Web Component extends the Chart Lightning Web Component and adds
additional features. This component adds the ability to display and resize text at the center of the donut.
Example c-chart-donut
<c-chart-donut
values={val1}
labels={labels1}
icon-class="classOne"
type={type1}
title="Doughnut Chart"
background-color={backgroundColor1}
cutout-percentage="30"
center-text={centerText}
text-color={textColor}
font-style={fontStyle}
side-padding={sidePadding}
>
</c-chart-donut>
<c-checkbox-group
name="vehicle"
value="bike"
options='[{"label":"car","value":"car"},{"label":"bike","value":"bike"},
{"label":"ship","value":"ship"}]'
></c-checkbox-group>
<c-checkbox-group
name="vehicle"
value="bike"
options='[{"label":"car","value":"car"},{"label":"bike","value":"bike"},
{"label":"ship","value":"ship"}]'
>
<span slot="label">Additional markup is inserted here</span>
</c-checkbox-group>
Available Methods
checkValidity()
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears the error message and returns true.
setCustomValidity(message)
Sets a custom error message to display when the input value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidit() is called.
focus()
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The CheckboxGroup Lightning Web Component enables users to select from single or multiple options.
<c-checkbox-group
name="vehicle"
value="bike"
options='[{"label":"car","value":"car"},{"label":"bike","value":"bike"},
{"label":"ship","value":"ship"}]'
></c-checkbox-group>
Available Methods
checkValidity()
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears the error message and returns true.
setCustomValidity(message)
Sets a custom error message to display when the input value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidity() is called.
focus()
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The CheckboxGroup Lightning Web Component enables users to select from single or multiple options.
<c-checkbox-group
name="vehicle"
value="bike"
options='[{"label":"car","value":"car"},{"label":"bike","value":"bike"},
{"label":"ship","value":"ship"}]'
></c-checkbox-group>
Available Methods
checkValidity()
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears the error message and returns true.
setCustomValidity(message)
Sets a custom error message to display when the input value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidity() is called.
focus()
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The CheckboxImageGroup Lightning Web Component extends the CheckboxGroup Lightning Web
Component adding additional features. The CheckboxImageGroup Lightning Web Component enables
users to select from single or multiple options by clicking images instead of checkboxes.
name="check"
required
image-count-in-row=6
type="checkbox"
label="Don't Accept"
is-display-checkbox="true"
>
</c-checkbox-image-group>
Available Methods
checkValidity()
Returns the valid attribute value (boolean) on the ValidityState object.
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears the error message and returns true.
setCustomValidity(message)
Sets a custom error message to display when the input value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidity() is called.
focus()
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The CheckboxImageGroup Lightning Web Component extends theCheckboxGroup Lightning Web
Component adding additional features. TheCheckboxImageGroup Lightning Web Component enables
users to select from single or multiple options by clicking images instead of checkboxes.
Available Methods
checkValidity()
Returns the valid attribute value (boolean) on the ValidityState object.
reportValidity()**
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears the error message and returns true.
setCustomValidity(message)**
Sets a custom error message to display when the input value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidit() is called.
focus()
<c-combobox
theme="slds"
read-only="true"
options='[{"label":"Apple","value":"apple"},
{"label":"Orange","value":"orange"},{"label":"Mango","value":"mango"}]'
label="Single Select"
placeholder="Normal Input"
></c-combobox>
<div slot="footer">
<span>Footer</span>
</div>
</c-combobox>
<c-combobox
theme="slds"
read-only="true"
options='[{"label":"Apple","value":"apple"},
{"label":"Orange","value":"orange"},{"label":"Mango","value":"mango"}]'
label="Single Select"
placeholder="Normal Input"
>
<span slot="label">Additional markup is inserted here</span>
</c-combobox>
<c-combobox
theme="slds"
read-only="true"
options='[{"label":"Apple","value":"apple"},
{"label":"Orange","value":"orange"},{"label":"Mango","value":"mango"}]'
label="Single Select"
placeholder="Normal Input"
></c-combobox>
{"label":"Potato","value":"Potato",,"group":"group2"}]'
label="Single Select"
placeholder="Normal Input"
></c-combobox>
<c-combobox
theme="slds"
read-only="true"
options='[{"label":"Apple","value":"apple"},
{"label":"Orange","value":"orange"},{"label":"Mango","value":"mango"}]'
label="Single Select"
placeholder="Normal Input"
>
<span slot="label">Additional markup is inserted here</span>
</c-combobox>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Combobox Lightning Web Component is a read-only input element in which the user can select an
option from a list of options.
<c-combobox
theme="slds"
read-only="true"
options='[{"label":"Apple","value":"apple"},
{"label":"Orange","value":"orange"},{"label":"Mango","value":"mango"}]'
label="Single Select"
placeholder="Normal Input"
></c-combobox>
>
<div slot="footer">
<span>Footer</span>
</div>
</c-combobox>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Combobox Lightning Web Component is a read-only input element in which the user can select an
option from a list of options.
<c-combobox
theme="slds"
read-only="true"
options='[{"label":"Apple","value":"apple"},
{"label":"Orange","value":"orange"},{"label":"Mango","value":"mango"}]'
label="Single Select"
placeholder="Normal Input"
></c-combobox>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Datasource Lightning Web Component fetches data from Salesforce using different data source types
by providing relevant input data.
<c-datasource
theme=""
channel="testChannel"
value='{ "type": "query", "value": {"query": "Select Name from Account Limit
1"}}'
debug="true"
></c-datasource>
Using the channel name you can listen to result and error event inside the LWC where datasource is
used as below
pubsub.register("testChannel", {
result: this.onResult.bind(this),
error : this.onError.bind(this)
});
The following Vlocity Lightning Web Components extend the Datasource Lightning Web Component with
additional features for fetching data from specific data sources:
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Datasource Lightning Web Component fetches data from Salesforce using different data source types
by providing relevant input data.
<c-datasource
theme=""
channel="testChannel"
value='{ "type": "query", "value": {"query": "Select Name from Account Limit
1"}}'
debug="true"
></c-datasource>
Using the channel name you can listen to result and error event inside the LWC where datasource is
used as below
pubsub.register("testChannel", {
result: this.onResult.bind(this),
error : this.onError.bind(this)
});
The following Vlocity Lightning Web Components extend the Datasource Lightning Web Component with
additional features for fetching data from specific data sources:
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The DatasourceApexRemote Lightning Web Component extends the Datasource Lightning Web
Component with additional features for fetching data using an Apex class.
Example c-datasource-apexremote
<!--inputMap = '{ "query": "SELECT Id, name FROM Contact LIMIT 2" }';-->
<c-datasource-apexremote
theme="slds"
classname="LWCDatasource"
methodname="query"
inputmap={inputMap}
channel="apexremote"
debug="true"
></c-datasource-apexremote>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The DatasourceApexRemote Lightning Web Component extends theDatasource Lightning Web
Component with additional features for fetching data using an Apex class.
Example c-datasource-apexremote
<!--inputMap == '{ "query": "SELECT Id, name FROM Contact LIMIT 2" }';-->
<c-datasource-apexremote
theme="slds"
classname="LWCDatasource"
methodname="query"
inputmap={inputMap}
channel="apexremote"
debug="true"
></c-datasource-apexremote>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The DatasourceApexrest Lightning Web Component extends the Datasource Lightning Web Component
with additional features for fetching data using an Apex class from a REST endpoint.
Example c-datasource-apexrest
<c-datasource-apexrest
endpoint="/services/apexrest/vlocity_ins/v1/mockapexrest"
method-type="GET"
channel="apexrest"
debug="true">
</c-datasource-apexrest>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The DatasourceApexrest Lightning Web Component extends the Datasource Lightning Web Component
with additional features for fetching data using an Apex class from a REST endpoint.
Example c-datasource-apexrest
<c-datasource-apexrest
endpoint="/services/apexrest/vlocity_ins/v1/mockapexrest"
method-type="GET"
channel="apexrest"
debug="true">
</c-datasource-apexrest>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The DatasourceDataRaptor Lightning Web Component extends the Datasource Lightning Web Component
with additional features for fetching data from a Vlocity DataRaptor.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The DatasourceDataRaptor Lightning Web Component extends theDatasource Lightning Web Component
with additional features for fetching data from a Vlocity DataRaptor.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The DatasourceIntegrationProcedure Lightning Web Component extends the Datasource Lightning Web
Component with additional features for fetching data from a Vlocity Integration Procedure.
debug="true"
></c-datasource-integrationprocedure>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The DatasourceIntegrationProcedure Lightning Web Component extends theDatasource Lightning Web
Component with additional features for fetching data from an Vlocity Integration Procedure.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The DatasourceQuery Lightning Web Component extends the Datasource Lightning Web Component with
additional features for fetching data using a Salesforce Object Query Language (SOQL) query.
<c-datasource-query
theme="slds"
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The DatasourceQuery Lightning Web Component extends the Datasource Lightning Web Component with
additional features for fetching data using a Salesforce Object Query Language (SOQL) query.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The DatasourceRest Lightning Web Component extends the Datasource Lightning Web Component with
additional features for data fetched from a REST web data source.
<c-datasource-rest
theme="slds"
methodtype="GET"
subtype="web"
headers="{headers}"
channel="restweb"
endpoint="https://jsonplaceholder.typicode.com/users"
debug="true"
></c-datasource-rest>
<c-datasource-rest
theme="slds"
methodtype="GET"
subtype="namedcredential"
channel="restnamed"
namedcredential="test"
headers="{headers}"
endpoint="posts"
debug="true"
></c-datasource-rest>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The DatasourceRest Lightning Web Component extends the Datasource Lightning Web Component with
additional features for data fetched from a REST web data source.
<c-datasource-rest
theme="slds"
methodtype="GET"
subtype="namedcredential"
channel="restnamed"
namedcredential="test"
headers="{headers}"
endpoint="posts"
debug="true"
></c-datasource-rest>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The DatasourceSDK Lightning Web Component extends the Datasource Lightning Web Component with
additional features for data fetched from an SDK.
<c-datasource-sdk-component
theme=""
channel="true"
value='{ "type": "query", "value": {"query": "Select Name from Account Limit
1"}}'
debug="true"
></c-datasource-sdk-component>
<!--apexRemote = `{
"type": "apexremote",
"value": {
"className": "LWCDatasource",
"methodName": "query",
"inputMap": inputMap,
"optionsMap": "{}"
}
}`;
inputMap = '{ "query": "SELECT Id, name FROM Contact LIMIT 2" }';
-->
<c-datasource-sdk-component
channel="apexRemote"
value={apexRemote}
debug="false"
></c-datasource-sdk-component>
<!-- dataraptorData = `{
type: "dataraptor",
value: {
bundleName: "TestDRBundle",
inputMap:inputMap
}
}`-->
<c-datasource-sdk-component
channel="dataraptor"
value={dataraptorData}
debug="false"
></c-datasource-sdk-component>
<!--iprocedure = `{
"type": "integrationprocedure",
"value": {
"ipMethod": "TestType_TestSubType",
"inputMap":inputMap,
"optionsMap": "{}"
}
}` -->
<c-datasource-sdk-component
channel="integrationpreocedure"
value={iprocedure}
debug="false"
></c-datasource-sdk-component>
<c-datasource-sdk-component
channel="search"
value='{ "type": "search", "value": {"search": "Find {savings} IN ALL
FIELDS RETURNING Account(Name) limit 1"}}'
debug="false"
></c-datasource-sdk-component>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The DatasourceSDK Lightning Web Component extends the Datasource Lightning Web Component with
additional features for data fetched from an SDK.
<c-datasource-sdk-component
theme=""
channel="true"
value='{ "type": "query", "value": {"query": "Select Name from Account Limit
1"}}'
debug="true"
></c-datasource-sdk-component>
<!--apexRemote == `{
"type": "apexremote",
"value": {
"className": "LWCDatasource",
"methodName": "query",
"inputMap": inputMap,
"optionsMap": "{}"
}
}`;
inputMap == '{ "query": "SELECT Id, name FROM Contact LIMIT 2" }';
-->
<c-datasource-sdk-component
channel="apexRemote"
value={apexRemote}
debug="false"
></c-datasource-sdk-component>
<!-- dataraptorData == `{
type: "dataraptor",
value: {
bundleName: "TestDRBundle",
inputMap:inputMap
}
}`-->
<c-datasource-sdk-component
channel="dataraptor"
value={dataraptorData}
debug="false"
></c-datasource-sdk-component>
<!--iprocedure == `{
"type": "integrationprocedure",
"value": {
"ipMethod": "TestType_TestSubType",
"inputMap":inputMap,
"optionsMap": "{}"
}
}` -->
<c-datasource-sdk-component
channel="integrationpreocedure"
value={iprocedure}
debug="false"
></c-datasource-sdk-component>
<c-datasource-sdk-component
channel="search"
value='{ "type": "search", "value": {"search": "Find {savings} IN ALL
FIELDS RETURNING Account(Name) limit 1"}}'
debug="false"
></c-datasource-sdk-component>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The DatasourceSearch Lightning Web Component extends the Datasource Lightning Web Component with
additional features for fetching data through a Salesforce Object Search Language (SOSL) query.
<c-datasource-search
searchterm="quick"
searchfields="ALL"
returningsobjectfields="Account(Name),Contact(Name)"
channel="search"
debug="true"
limitto="2"
></c-datasource-search>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The DatasourceSearch Lightning Web Component extends the Datasource Lightning Web Component with
additional features for fetching data through a Salesforce Object Search Language (SOSL) query.
<c-datasource-search
searchterm="quick"
searchfields="ALL"
returningsobjectfields="Account(Name),Contact(Name)"
channel="search"
debug="true"
limitto="2"
></c-datasource-search>
The DataTable Lightning Web Component creates a tabular structure of the data provided. The DataTable
LWC supports grouping, search, pagination, and sorting capabilities.
ondelete
onrowclick
Triggers when a row is clicked and includes the record on which the click happens. Is inside
event.detail.result. event.detail.fieldNamewill give the name of the field from where event
was triggered.
Note: The element inside the dataTable is either a dataTableCell or an extended LWC of the dataTableCell.
The display order is the same as the order of the dataTableCell HTML in the slot.
NOTE: To customize one column you must specify all the columns inside the dataTable. If you do not want
to customize any column then leave dataTable empty.
Example customDataTableCell
DataTableCell or an extend LWC of a DataTableCell are supported inside the data table.
b) rowData: Contains complete row data as one single record and can also be used to show more data.
c) columnData: Contains metadata for what you pass inside columns JSON.
NOTE: To customize one column, you must specify all the columns inside the data table. If you
don't want to customize any column, leave the data table empty.
Example customDataTableCell
For the latest ReadMe, see DataTable Lightning Web Component ReadMe.
The DataTable Lightning Web Component creates a tabular structure of the data provided. The DataTable
LWC supports grouping, search, pagination, and sorting capabilities.
[{
"fieldName": "company",
"label": "Company",
"sortable": true,
"searchable": true
},
{
"fieldName": "email",
"label": "Email",
"sortable": true,
"searchable": true,
"type": "email",
"editable": true,
"userSelectable": true
},
{
"fieldName": "age",
"label": "Age",
"sortable": true,
"type": "number",
"editable": true,
"userSelectable": true
},
{
"fieldName": "balance",
"label": "Balance",
"sortable": true,
"userSelectable": true
},
{
"fieldName": "address",
"label": "Address",
"sortable": false,
"type": "textarea",
"editable": true,
"userSelectable": true
},
{
"fieldName": "isActive",
"label": "Active",
"sortable": false,
"type": "checkbox",
"editable": true
}
];
{
"groupFieldName": "company",
"fields": [
{
"name": "balance",
"methodToCalculateSummary": ""
}
]
};
ondelete
onrowclick
Triggers when a row is clicked and includes the record on which the click happens. Is inside
event.detail.result.
<c-data-table
extraclass="slds-table_bordered"
issearchavailable="true"
issortavailable="true"
theme={theme}
icon-url={iconUrl}
draggable="true"
columns={columns}
records={tableData}
onupdate={tableUpdateHandler}
ondelete={tableUpdateHandler}
row-delete="true"
>
<c-customDataTableCell data-field-name="email" class="dataTableCell">
</c-customDataTableCell>
<c-data-table-cell data-field-name="age" class="dataTableCell">
</c-data-table-cell>
<c-data-table-cell data-field-name="balance" class="dataTableCell">
</c-data-table-cell>
<c-data-table-cell data-field-name="address" class="dataTableCell">
</c-data-table-cell>
<c-data-table-cell data-field-name="isActive" class="dataTableCell">
</c-data-table-cell>
<c-data-table-cell data-field-name="phone" class="dataTableCell">
</c-data-table-cell>
</c-data-table>
DataTableCell or an extend LWC of a DataTableCell are supported inside the data table.
b) rowData: Contains complete row data as one single record and can also be used to show more data.
NOTE: To customize one column, you must specify all the columns inside the data table. If you
don't want to customize any column, leave the data table empty.
Example customDataTableCell
<template>
<div if:true={cellData} class="tableRowCell">
<!--Start your custom content from here-->
{cellData.value} : <br>{rowData.phone}
<button onclick={toggleText}>Toggle</button>
<div if:true={hiddenText}>
{cellData.value}
</div>
</div>
</template>
toggleText(){
this.hiddenText = !this.hiddenText;
}
}
.tableRowCell{
display: table-cell;
padding: 0.25rem 0.5rem;
white-space: nowrap;
position: relative;
}
.tableRowCell:first {
border: 0;
}
For the latest ReadMe, see DataTable Lightning Web Component ReadMe.
The DataTable Lightning Web Component creates a tabular structure of the data provided. It supports
grouping, search, pagination and sorting capabilities.
ondelete
onrowclick
Triggers when a row is clicked and includes the record on which the click happens. Is inside
event.detail.result.
As you can see how we create a data table is not changed at all, the only piece that is different is for each
column you want to show, you have to write its relevant column inside data table element.
Each column element should have two mandatory attributes: a) data-field-name : This is the same field
name we specify inside columns array as mentioned before.
b) class : You should add a dataTableCell class for it to be treated a column UI.
INSIDE EXTENDED COMPONENT YOU WILL HAVE FOLLOWING DATA: a) cellData : This is that
particular column cell data. For eg: if this column field name is "email". this variable will contain related data
to that field name. You can read it by "cellData.value"
b) rowData: This contains complete row data as it is of one single record and can be used to show more
data as well.
c) columnData: This contains metadata of what you pass inside columns json.
NOTE: Even if we just want to customize one column we have to specify all the columns inside data
table. If you dont want to customize any column then keep inside of data table empty.
NOTE: For now custom column UI support is not supported in GROUP BY tables.
Examples of a custom column UI component. You can use it as a reference. Please look at above data
table example.
customDataTableCell
For the latest ReadMe, see DataTable Lightning Web Component ReadMe.
The DataTable Lightning Web Component creates a tabular structure of the data provided. It supports
grouping, search, pagination and sorting capabilities.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The DataTableCell Lightning Web Component is the base element inside a DataTable Lightning Web
Component forming individual cells.
Example of baseState
<c-data-table
extraclass="slds-table_bordered"
theme="{theme}"
icon-url="{iconUrl}"
draggable="true"
pagesize="5"
row-level-edit="true"
row-delete="true"
columns="{columns}"
records="{tableData}"
onupdate="{tableUpdateHandler}"
ondelete="{tableDeleteHandler}"
onrowclick="{tableOnRowClickHandler}"
>
<c-data-table-cell
data-field-name="age"
class="dataTableCell"
></c-data-table-cell>
<c-data-table-cell
data-field-name="balance"
class="dataTableCell"
></c-data-table-cell>
</c-data-table>
<c-date-picker
theme=""
disabled="true"
label="Disabled"
name="date picker"
value="date picker"
hide-icon=false
></c-date-picker>
<c-date-picker
theme=""
disabled="true"
label="Disabled"
name="date picker"
value="date picker"
hide-icon=false
>
<span slot="label">Additional markup is inserted here</span>
</c-date-picker>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The DatePicker Lightning Web Component is a date input element with a graphical user interface (GUI)
widget that enables the user to select a date from a calendar.
<c-date-picker
theme=""
disabled="true"
label="Disabled"
name="date picker"
value="date picker"
hide-icon=false
></c-date-picker>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The DatePicker Lightning Web Component is a date input element with a graphical user interface (GUI)
widget that enables the user to select a date from a calendar.
<c-date-picker
theme=""
disabled="true"
label="Disabled"
name="date picker"
value="date picker"
></c-date-picker>
<c-datetime-picker
value="2019-03-30T10:15:00"
read-only
disabled
required
date-name="date"
time-name="time"
date-label="Date"
time-label="Time"
label="Select Datetime (empty date/time label)"
hide-icon=false
>
<span slot="label">Additional markup is inserted here</span>
</c-datetime-picker>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The DateTimePicker Lightning Web Component is a set of input fields with graphical user interface (GUI)
widgets that enable the user to select a date from a calendar and a time from a list.
<c-datetime-picker
value="2019-03-30T10:15:00"
read-only
disabled
required
date-name="date"
time-name="time"
date-label="Date"
time-label="Time"
label="Select Datetime (empty date/time label)"
hide-icon=false
></c-datetime-picker>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The DateTimePicker Lightning Web Component is a set of input fields with graphical user interface (GUI)
widgets that enable the user to select a date from a calendar and a time from a list.
<c-datetime-picker
value="2019-03-30T10:15:00"
read-only
disabled
required
date-name="date"
time-name="time"
date-label="Date"
time-label="Time"
label="Select Datetime (empty date/time label)"
></c-datetime-picker>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Form Lightning Web Component creates a wrapper around Vlocity form elements to enable form
capabilities.
<c-form
model={model}
layout="stacked"
>
<c-input value="" label="Name" placeholder="Normal Input"
name="name"></c-input>
<c-input value="" label="Password" placeholder="Normal Input"
name="password"></c-input>
<c-typeahead data={data} label="Typeahead" placeholder="Normal Input"
name="typeahead"></c-typeahead>
<c-combobox theme="" value="" multiple options={data} label="Default
Multi Selected" placeholder="Normal Input" name="multiselect"></c-combobox>
<c-checkbox label="Normal Checkbox" name="checkbox"></c-checkbox>
<c-radio-group extraclass="slds-p-around_small" groupname="slds1"
label="Select option" options={data} name="radiogroup"></c-radio-group>
<c-button theme="" type="submit" name="submit" variant="brand"
label="brand" icon="utility:close" icon-position="right"></c-button>
</c-form>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Form Lightning Web Component creates a wrapper around Vlocity form elements to enable form
capabilities.
<c-form
model={model}
layout="stacked"
>
<c-input value="" label="Name" placeholder="Normal Input"
name="name"></c-input>
<c-input value="" label="Password" placeholder="Normal Input"
name="password"></c-input>
<c-typeahead data={data} label="Typeahead" placeholder="Normal Input"
name="typeahead"></c-typeahead>
<c-combobox theme="" value="" multiple options={data} label="Default
Multi Selected" placeholder="Normal Input" name="multiselect"></c-combobox>
<c-checkbox label="Normal Checkbox" name="checkbox"></c-checkbox>
<c-radio-group extraclass="slds-p-around_small" groupname="slds1"
label="Select option" options={data} name="radiogroup"></c-radio-group>
<c-button theme="" type="submit" name="submit" variant="brand"
label="brand" icon="utility:close" icon-position="right"></c-button>
</c-form>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Icon Lightning Web Component renders an SVG icon.
<c-icon
theme="slds"
icon-name="utility:add"
size="small"
extraclass="slds-icon-text-default"
></c-icon>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Icon Lightning Web Component renders an SVG icon.
<c-icon
theme="slds"
icon-name="utility:add"
size="small"
extraclass="slds-icon-text-default"
></c-icon>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Icon Lightning Web Component renders an SVG icon.
<c-icon
theme="slds"
icon-name="utility:add"
size="small"
extraclass="slds-icon-text-default"
></c-icon>
<c-img
theme="slds"
imgsrc="https://www.domain.com/image.jpg"
alternative-text="Image Description"
size="small"
extraclass="slds-image slds-image--card"
></c-img>
<c-input
class="slds-p-top_small"
theme="slds"
inline-help="ex: (415)111-2222"
label="Input"
placeholder="Inline-help"
></c-input>
<c-input
class="slds-p-top_small"
theme="slds"
multiple
type="file"
accept="image/*"
label="Accept only image"
></c-input>
<c-input
class="slds-p-top_small"
theme="slds"
required
label="Required Input"
placeholder="Required Input"
></c-input>
<c-input
class="slds-p-top_small"
theme="slds"
min-length="10"
required
label="Minimum 10 char"
placeholder="Minimum 10 char"
></c-input>
Available Methods
checkValidity()
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears displayed error messages and returns true.
setCustomValidity(message)
Displays a custom error message when the textarea value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidity() is called.
focus()
blur()
resetValidations()
<c-input
class="slds-p-top_small"
theme="slds"
inline-help="ex: (415)111-2222"
label="Input"
placeholder="Inline-help"
></c-input>
<c-input
class="slds-p-top_small"
theme="slds"
multiple
type="file"
accept="image/*"
label="Accept only image"
></c-input>
<c-input
class="slds-p-top_small"
theme="slds"
required
label="Required Input"
placeholder="Required Input"
></c-input>
<c-input
class="slds-p-top_small"
theme="slds"
min-length="10"
required
label="Minimum 10 char"
placeholder="Minimum 10 char"
></c-input>
• The mask uses custom logic with any input type, when mask is set, and formatter is not set.
• Format is international when type is set to 'number', formatter is set to 'currency', and mask is not set.
See NumberFormat.
• Javascript number formatter is used when type is set to 'number',formatter is set to 'currency', and mask
is set. See JavaScript Number Formatter.
<c-input
class="slds-p-top_small"
theme="slds"
inline-help="ex: (415)111-2222"
label="Input"
placeholder="Inline-help"
>
<span slot="label">Additional markup is inserted here</span>
</c-input>
Available Methods
checkValidity()
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears displayed error messages and returns true.
setCustomValidity(message)
Displays a custom error message when the textarea value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidity() is called.
focus()
blur()
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Input Lightning Web Component renders an input element.
• The mask uses custom logic with any input type, when mask is set, and formatter is not set.
• Format is international when type is set to 'number', formatter is set to 'currency', and mask is not set.
See NumberFormat.
• Javascript number formatter is used when type is set to 'number', formatter is set to 'currency', and mask
is set. See JavaScript Number Formatter.
Available Methods
checkValidity()
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears displayed error messages and returns true.
setCustomValidity(message)
Displays a custom error message when the textarea value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidity() is called.
focus()
blur()
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Input Lightning Web Component renders an input element.
<c-input
class="slds-p-top_small"
theme="slds"
inline-help="ex: (415)111-2222"
label="Input"
placeholder="Inline-help"
></c-input>
<c-input
class="slds-p-top_small"
theme="slds"
multiple
type="file"
accept="image/*"
label="Accept only image"
></c-input>
<c-input
class="slds-p-top_small"
theme="slds"
required
label="Required Input"
placeholder="Required Input"
></c-input>
<c-input
class="slds-p-top_small"
theme="slds"
min-length="10"
required
label="Minimum 10 char"
placeholder="Minimum 10 char"
></c-input>
Available Methods
checkValidity()
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears displayed error messages and returns true.
setCustomValidity(message)
Displays a custom error message when the textarea value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidity() is called.
focus()
blur()
Create Interaction IP
When Create Interaction flag is set to true, on page load, the wrapper automatically calls the IP configured
on the Create Interaction IP with the input data below.
{
recordId: this.recordId, //recordId of the sObject
verificationdate: Date.now(),
verifiedby: username //logged in username
}
Pubsub Listener
When the Create Interaction flag is set to true, on page load, the wrapper automatically creates a
unique channel addInteractionTopic:<recordId> with eventName trackInteraction which
other components on the page can trigger this event to track the interaction and create interaction topic.
pubsub.fire('addInteractionTopic:<recordId>', 'trackInteraction', {
name : "", // Name of the sObject
label: "", //label of the field
value: "", //value of the field
contextId : "" //Id of the sObject
});
This can be configured using the Action Component on Flex Card Designer
Create Topic IP
When Create Interaction flag is set to true, on page load the wrapper automatically adds a pubsub listener
and when we trigger if Create Topic IP is pointer to an Integration Procedure. It gets called with input
data below.
Default required fields. All the fields sent through the Pubsub Event are passed to the Create Topic IP.
Create Interaction IP depends on the Create Interaction Flag and also Create Topic IP
depends on both Create Interaction Flag and the pubsub listener.
{
accountId: this.recordId, //recordId of the page, mostly account
name: data.name, //Name that was send through the pubsub event
contextId: data.contextId, //Id that was send through the pubsub event
interactionId: this.interactionId // The created interaction Id
}
<c-interaction-wrapper
record-id="001f400000Odl3cAAB"
theme="slds"
>
</c-interaction-wrapper>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The InteractionWrapper Lightning Web Component is a wrapper component for a customer interaction and
the Power Launcher. The component is used inside a customer interaction records page to see all
interactions with a customer and perform any actions related to the interaction.
<c-interaction-wrapper
recordId=1
theme="slds"
>
</c-interaction-wrapper>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Layout Lightning Web Component is a flexible grid system arranging containers on a page or inside
other containers.
<c-layout
class="custom-slds-grid"
theme="nds"
horizontal-align="center"
vertical-align="stretch"
pull-to-boundary="medium"
>
<c-layout-item size="3">
{item.name}
</c-layout-item>
<c-layout-item size="1">
{item.name}
</c-layout-item>
<c-layout-item
size="1"
alignment-bump="left"
padding="around-medium"
flexibility="auto,no-grow,no-shrink"
>
{item.name}
</c-layout-item>
<c-layout-item size="1">
{item.name}
</c-layout-item>
</c-layout>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Layout Lightning Web Component is a flexible grid system arranging containers on a page or inside
other containers.
<c-layout
class="custom-slds-grid"
theme="nds"
horizontal-align="center"
vertical-align="stretch"
pull-to-boundary="medium"
>
<c-layout-item size="3">
{item.name}
</c-layout-item>
<c-layout-item size="1">
{item.name}
</c-layout-item>
<c-layout-item
size="1"
alignment-bump="left"
padding="around-medium"
flexibility="auto,no-grow,no-shrink"
>
{item.name}
</c-layout-item>
<c-layout-item size="1">
{item.name}
</c-layout-item>
</c-layout>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The LayoutItem Lightning Web Component is the basic element inside the parent Layout Lightning Web
Component container, grouping content together to create sections inside the parent container. You can
add one or more c-layout-item components inside the c-layout component.
<c-layout class="custom-slds-grid">
<c-layout-item size="3">
{item.name}
</c-layout-item>
<c-layout-item size="1">
{item.name}
</c-layout-item>
<c-layout-item
size="1"
alignment-bump="left"
padding="around-medium"
flexibility="auto,no-grow,no-shrink"
>
{item.name}
</c-layout-item>
<c-layout-item size="1">
{item.name}
</c-layout-item>
</c-layout>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The LayoutItem Lightning Web Component is the basic element inside the parent Layout Lightning Web
Component container, grouping content together to create sections inside the parent container. You can
add one or more c-layout-item components inside the c-layout component.
<c-layout class="custom-slds-grid">
<c-layout-item size="3">
{item.name}
</c-layout-item>
<c-layout-item size="1">
{item.name}
</c-layout-item>
<c-layout-item
size="1"
alignment-bump="left"
padding="around-medium"
flexibility="auto,no-grow,no-shrink"
>
{item.name}
</c-layout-item>
<c-layout-item size="1">
{item.name}
</c-layout-item>
</c-layout>
</template>
</ul>
</template>
<c-list records={data}>
</c-list>
Available Methods
sortListBy(reverse, field)
Sorts the list by field. The second parameter is optional. If no field is provided then it takes name.
searchListBy(searchKey, fields)
Filters the list. The second parameter is optional. If no fields are provided, then it takes only name. Fields
can also be a comma separated attribute string.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The List Lightning Web Component creates a searchable and sortable list from provided data.
| field-name | (Default: Name) | string | | Specifies which key from the records to display.|
<c-list records={data}>
</c-list>
Available Methods
sortListBy(reverse, field)
Sorts the list by field. The second parameter is optional. If no field is provided then it takes name.
searchListBy(searchKey, fields)
Filters the list. The second parameter is optional. If no fields are provided, then it takes only name. Fields
can also be a comma separated attribute string.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The List Lightning Web Component creates a searchable and sortable list from data provided.
<c-list records={data}>
</c-list>
Available Methods
sortListBy(reverse, field)
Sorts the list by field. The second parameter is optional. If no field is provided then it takes name.
searchListBy(searchKey, fields)
Filters the list. The second parameter is optional. If no fields are provided, then it takes only name. Fields
can also be a comma separated attribute string. === Preview Lightning Web Component
The Preview Lightning Web Component enables previewing Lightning web components. User can set
values to public attributes from user interface and dynamically check the output.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The ListItems Lightning Web Component creates the template for each list item inside the List Lightning
Web Component.
</li>
</template>
</ul>
</template>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The ListItems Lightning Web Component creates the the template for each list item inside the List Lightning
Web Component.
For possible use cases for the masked-input component, see imask documentation.
Name Description
maskedValue Returns value with masking.
typedValue Returns the valid value based on type.
unmaskedValue Returns value without masking.
To Note
• For the 'currency' and 'number' masks, the value of the mask parameter must be new Number(), not
Number. See Example masked-inputComponent on this page.
• For date, use c-input element where type is set to 'date'.
<c-masked-input
imask={maskAttrib}
class="slds-p-top_small"
theme={theme}
label="InputMask"
value="123456"
type="text"
>
</c-masked-input>
maskAttrib ={
mask: new Number(),
thousandsSeparator: ',',
radix: '.'
}
<c-masked-input
imask={maskAttrib}
class="slds-p-top_small"
theme={theme}
label="InputMask"
value="123456"
type="text"
>
<span slot="label">Additional markup is inserted here</span>
</c-masked-input>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The MaskedInput Lightning Web Component controls what you can enter in form input fields. The
MaskedInput Lightning Web Component extends the Input Lightning Web Component.
For possible use cases for the masked-input component, see imask documentation.
To Note
• For the 'currency' and 'number' masks, the value of the mask parameter must be new Number(), not
Number. See Example masked-input Component on this page.
• For date, use c-input element where type is set to 'date'.
maskAttrib ={
mask: new Number(),
thousandsSeparator: ',',
radix: '.'
}
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The MaskedInput Lightning Web Component controls what you can enter in form input fields. The
MaskedInput Lightning Web Component extends theInput Lightning Web Component.
Name Description
typedValue Returns the valid value based on type.
unmaskedValue Returns value without masking.
maskedValue Returns value with masking.
For possible use cases for the masked-input component, see imask documentation.
To Note
• For the currency' and `number' masks, the value of the mask parameter must be
`new Number(), not Number. See Example masked-input Component on this page.
• For date, use c-input element where type is set to `date'.
<c-masked-input
imask="{maskAttrib}"
class="slds-p-top_small"
theme="{theme}"
label="InputMask"
value="123456"
type="text"
>
</c-masked-input>
maskAttrib ={
mask: new Number(),
thousandsSeparator: ',',
radix: '.'
}
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Menu Lightning Web Component creates a menu from the list of menu items provided.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Menu Lightning Web Component creates a menu from the list of menu items provided.
displayName: "Action",
vlocityIcon: "standard-default",
targetType: "Web Page",
openUrlIn: "Current Window",
"Web Page": { targetName: "/apex" }
}
}
<c-menu-item
record={data2}
icon-position="right"
icon-name="action:info"
></c-menu-item>
</c-menu>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The MenuItem Lightning Web Component is the basic element inside the Menu Lightning Web Component.
Each c-menu-item component adds an item to the menu.
icon-position="right"
icon-name="action:info"
></c-menu-item>
</c-menu>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The MenuItem Lightning Web Component is the basic element inside theMenu Lightning Web Component.
Each c-menu-item component adds an item to the menu.
<c-menu-item
name="home"
record={menuItem1}
icon-position="right"
icon-name="action:info"
status="error"
checked
>
Available Methods
openModal()
closeModal()
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Modal Lightning Web Component displays content in a layer on top of the app. Common use cases for
modals include: creating or editing a record, as well as various types of messaging and wizards. Use the
Prompt Lightning Web Component for form submission confirmation.
Available Methods
openModal()
closeModal()
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Modal Lightning Web Component displays content in a layer on top of the app. Common use cases for
modals include: creating or editing a record, as well as various types of messaging and wizards. Use
thePrompt Lightning Web Component for form submission confirmation.
Available Methods
openModal()
closeModal()
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The MonacoEditor Lightning Web Component is a code editor tool used inside Salesforce.
<c-monaco-editor
onchange={valueChnged}
editor-src-url={url}
config={editorConfig}
value="var t = 10"
height="calc(100vh - 350px)"
></c-monaco-editor>
<h1>Monaco Editor</h1>
</div>
<div slot="content">
<c-monaco-editor
onchange={valueChnged}
modal="true"
editor-src-url={url}
config={editorModalConfig}
value="var t = 10"
height="calc(100vh - 350px)"
></c-monaco-editor>
</div>
</c-modal>
Available Methods
updateConfig(Type,Value)
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The MonacoEditor Lightning Web Component is a code editor tool used inside Salesforce.
<c-monaco-editor
onchange={valueChnged}
editor-src-url={url}
config={editorConfig}
value="var t == 10"
height="calc(100vh - 350px)"
></c-monaco-editor>
Available Methods
updateConfig(Type,Value)
<c-navigate-action
target-type="{string}"
target-name="{string}"
target-id="{string}"
target-params="{string}"
target-action="{string}"
replace
use-href
>
<!-- content -->
</c-navigate-action>
Currently Lightning web components must be wrapped in an aura component that implements the
lightning:isUrlAddressable interface.
<c-navigate-action
target-type="Component"
target-name="c__example_aura_wrapper"
>
<!-- pass in desired content -->
</c-navigate-action>
To remove parameters from the CurrentPageReference.state, set the param to an empty value. In
the following example, executing the navigation removes the view parameter from the
PageReference.state.
<c-navigate-action target-params="c__paramone=">
<!-- pass in desired content -->
</c-navigate-action>
<c-navigate-action
target-type="Record"
target-name="Account"
target-id="001B000000vYIINIA4"
>
<!-- pass in desired content -->
</c-navigate-action>
Available Methods
NavigationAction.navigate()
Performs navigation to the PageReference that is constructed via the passed attributes. Calls
NavigationMixin.Navigate(). The generated pageReference is returned.
NavigateAction.generateUrl()
Returns a promise that resolves the value of the configured PageReference URL and updates the tracked
property url. This method is called on connectedCallback. Note, if useHref is set to true and
properties are updated after component initialization, generateUrl must be called manually.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The NavigateAction Lightning Web Component enables navigation to any of Salesforce's PageReference
types, by leveraging Salesforce's navigation service.
Properties
Methods
Markup
The navigate-action component renders a single template, and is designed to attach functionality onto
the slotted markup.
Usage
<c-navigate-action
target-type="{string}"
target-name="{string}"
target-id="{string}"
target-params="{string}"
target-action="{string}"
replace
use-href
>
<!-- content -->
</c-navigate-action>
Example Usage
Currently Lightning web components must be wrapped in an aura component that implements the
lightning:isUrlAddressable interface.
<c-navigate-action
target-type="Component"
target-name="c__example_aura_wrapper"
>
<!-- pass in desired content -->
</c-navigate-action>
To remove parameters from the CurrentPageReference.state, set the param to an empty value. In
the following example, executing the navigation removes the view parameter from the
PageReference.state.
<c-navigate-action target-params="c__paramone=">
<!-- pass in desired content -->
</c-navigate-action>
<c-navigate-action
target-type="Record"
target-name="Account"
target-id="001B000000vYIINIA4"
>
<!-- pass in desired content -->
</c-navigate-action>
<c-navigate-action
target-type="Record"
target-name="Account"
target-action="edit"
target-id="001B000000vYIINIA4"
>
<!-- pass in desired content -->
</c-navigate-action>
Available Methods
NavigationAction.navigate()
Performs navigation to the PageReference that is constructed via the passed attributes.
NavigationMixin.Navigate() is called, and the generated pageReference is returned.
NavigateAction.generateUrl()
Returns a promise that resolves the value of the configured PageReference URL and updates the tracked
property url. This method is called on connectedCallback. Note, if use-href is set to true and
properties are updated after component initialization, generateUrl must be called manually.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The NavigateAction Lightning Web Component enables navigation to any of Salesforce’s PageReference
types, by leveraging Salesforce’s navigation service.
Properties
Methods
Markup
The navigate-action component renders a single template, and is designed to attach functionality onto
the slotted markup.
Usage
<c-navigate-action
target-type="{string}"
target-name="{string}"
target-id="{string}"
target-params="{string}"
target-action="{string}"
replace
use-href
>
<!-- content -->
</c-navigate-action>
Example Usage
Currently Lightning web components must be wrapped in an aura component that implements the
lightning:isUrlAddressable interface.
<c-navigate-action
target-type="Component"
target-name="c__example_aura_wrapper"
>
<!-- pass in desired content -->
</c-navigate-action>
<c-navigate-action target-params="c__paramone=value
one&amp;c__layout=newport">
<!-- pass in desired content -->
</c-navigate-action>
To remove parameters from the CurrentPageReference.state, set the param to an empty value. In
the following example, executing the navigation removes the view parameter from the
PageReference.state.
<c-navigate-action target-params="c__paramone=">
<!-- pass in desired content -->
</c-navigate-action>
<c-navigate-action
target-type="Record"
target-name="Account"
target-id="001B000000vYIINIA4"
>
<!-- pass in desired content -->
</c-navigate-action>
Available Methods
NavigationAction.navigate()
Performs navigation to the PageReference that is constructed via the passed attributes.
NavigationMixin.Navigate() is called, and the generated pageReference is returned.
NavigateAction.generateUrl()
Returns a promise that resolves the value of the configured PageReference URL and updates the tracked
property url. This method is called on connectedCallback. Note, if use-href is set to true and
properties are updated after component initialization, generateUrlmust be called manually.
NavigationUtils ReadMe
This page contains a NavigationUtils ReadMe for each Vlocity release.
ns/navigationUtils.PageReference
Kind: static class of ns/navigationUtils
PageReference.unfreeze(pageReference, newParams)
Utility method to unfreeze, and update PageReference object returned from @wire(CurrentPageReference)
is frozen
ns/navigationUtils.AppPageReference
Kind: static class of ns/navigationUtils
ns/navigationUtils.ComponentPageReference
Kind: static class of ns/navigationUtils Supports: Lightning Experience, Salesforce Mobile App
ns/navigationUtils.KnowledgeArticlePageReference
Kind: static class of ns/navigationUtils
ns/navigationUtils.LoginPageReference
Kind: static class of ns/navigationUtils
ns/navigationUtils.NamedPageReference
Kind: static class of ns/navigationUtils
ns/navigationUtils.CommNamedPageReference
Kind: static class of ns/navigationUtils
ns/navigationUtils.NavItemPageReference
Kind: static class of ns/navigationUtils
ns/navigationUtils.ObjectPageReference
Kind: static class of ns/navigationUtils
ns/navigationUtils.RecordPageReference
Kind: static class of ns/navigationUtils
ns/navigationUtils.RelationshipPageReference
Kind: static class of ns/navigationUtils
ns/navigationUtils.WebPageReference
Kind: static class of ns/navigationUtils
ns/navigationUtils.pageReferenceTypes : enum
Kind: static enum of ns/navigationUtils Read only: true
ns/navigationUtils.parseParams(queryString)
Expands query params to an object
ns/navigationUtils.normalizeParams(namespacedParams) ⇒ object
Returns a copy of a params object with the namespace values removed. Duplicate values will be
overwritten.
ns/navigationUtils~APP : 'App'
Kind: inner constant of ns/navigationUtils
ns/navigationUtils~COMPONENT : 'Component'
Kind: inner constant of ns/navigationUtils
ns/navigationUtils~LOGIN : 'Login'
Kind: inner constant of ns/navigationUtils
ns/navigationUtils~OBJECT : 'Object'
Kind: inner constant of ns/navigationUtils
ns/navigationUtils~RECORD : 'Record'
Kind: inner constant of ns/navigationUtils
ns/navigationUtils~parseValue(value) ⇒ string
Parse the value of a url parameter.
Param Type
value string
Vlocity Insurance and Health Winter '20 and CME Winter '20
The Newport Loader is a utility that exposes a single load function used to ensure the Newport CSS styles
load in the <head> of the page.
This utility:
• Ensures the styles are loaded only once across the page
• Loads a custom version of Newport if the newportZipUrlhas been configured in the org.
Available Methods
load(component)
You must always pass your component to the load function.
...
connectedCallback() {
// It's recommended to add the styles into the page
// from your connectedCallback so they're not added
// to the page before they're needed, but available
// for when the component's `render` is called.
load(this)
.then(() => {
// newport styles added to page
});
}
}
<c-output-field
record={record}
field-name="Name"
type={field.type}
></c-output-field>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The OutputField Lightning Web Component returns the label, help text and value for the field name of a
record. The returned data is read-only.
<c-output-field
record={record}
field-name="Name"
type={field.type}
></c-output-field>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The OutputField Lightning Web Component returns the label, help text and value for the field name of a
record. The returned data is read-only.
<c-output-field
record={record}
field-name="Name"
></c-output-field>
<c-pill
options='["Morin", "Banks", "Olivia"]'
label="Users"
value='"Adeola" "Mariam"'
freetext="true"
placeholder="Please enter you interest"
></c-pill>
onselect
Available Methods
getValue()
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Pill Lightning Web Component is an input element that displays read-only labels that can contain links
and can be removed from view on demand. For example, a user can create a list of email addresses or
keywords by adding options using the input field or by selecting from a list of options, which are then
displayed as read-only labels with delete buttons.
<c-pill
options='["Morin", "Banks", "Olivia"]'
label="Users"
value='"Adeola" "Mariam"'
freetext="true"
placeholder="Please enter you interest"
></c-pill>
onselect
Available Methods
getValue()
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Pill Lightning Web Component is an input element that displays read-only labels that can contain links
and can be removed from view on demand. For example, a user can create a list of email addresses or
keywords by adding options using the input field or by selecting from a list of options, which are then
displayed as read-only labels with delete buttons.
<c-pill
options='["Morin", "Banks", "Olivia"]'
label="Users"
value='"Adeola" "Mariam"'
freetext="true"
placeholder="Please enter you interest"
></c-pill>
onselect
Available Methods
getValue()
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Popover Lightning Web Component is a non-modal dialog. The component must be paired with a
clickable trigger element and contain at least one focusable element.
<c-popover
title="Test"
theme="{theme}"
icon-url="{iconUrl}"
showclosebutton="true"
onmouseover="{showPopover}"
onmouseout="{hidePopover}"
>
<div slot="header">
<h1>Header description</h1>
</div>
<div slot="content">
This is a sample text
</div>
<div slot="footer">
<button>test</button>
</div>
</c-popover>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Popover Lightning Web Component is a non-modal dialog. The component must be paired with a
clickable trigger element and contain at least one focusable element.
To display its content, the Popover component supports three slots:`header`, content, footer (see
example below). You must specific content. This component does not support base templates.
<c-popover
title="Test"
theme="{theme}"
icon-url="{iconUrl}"
showclosebutton="true"
onmouseover="{showPopover}"
onmouseout="{hidePopover}"
>
<div slot="header">
<h1>Header description</h1>
</div>
<div slot="content">
This is a sample text
</div>
<div slot="footer">
<button>test</button>
</div>
</c-popover>
<c-power-launcher
record-id="001f400000Odl3cAAB"
></c-power-launcher>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Power Launcher Lightning Web Component gets and displays a list of vlocity actions based on the
recordId.
<c-power-launcher
record-id="001f400000Odl3cAAB"
></c-power-launcher>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The PowerLauncherAction Lightning Web Component displays Vlocity actions inside the PowerLauncher
LWC and extends Action LWC.
<c-power-launcher-action
icon-extraclass="slds-m-right_small"
state-action={item}
context-id={recordId}
disable-cache="true"
></c-power-launcher-action>
Available Methods
Navigate()
<c-progress-bar progress="0"
size="x-small"
theme="nds"
transition="0.5"
success
></c-progress-bar>
Available Methods
setProgress(value) Sets the % of completeness of the progress bar value without setting the api value
directly.
progressBar.setSuccess() Sets the value of ProgressBar.success without setting the api value directly.
ProgressBar.ProgressBar Custom element that will render a slds-progress-bar or nds-progress bar css
component. Extends the LightningElement.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The ProgressBar Lightning Web Component displays the progress of activity on a page.
<c-progress-bar progress="0"
size="x-small"
theme="nds"
transition="0.5"
success>
</c-progress-bar>
Available Methods
setProgress(value)
Sets the % of completeness of the progress bar value without setting the API value directly.
progressBar.setSuccess()
Sets the value of ProgressBar.success without setting the API value directly.
ProgressBar.ProgressBar Custom element that will render a slds-progress-bar or nds-progress bar CSS
component. Extends the LightningElement.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Prompt Lightning Web Component displays simple content on a layer on top of the app. For example,
use a prompt to confirm form submission or to direct the user to confirm a step in a process. Use the Modal
Lightning Web Component to modify data with forms and fields.
<c-prompt
theme="slds"
title="Service Unavailable"
message="Sit nulla est ex deserunt exercitation anim occaecat. Nostrud
ullamco deserunt aute id consequat veniam incididunt duis in sint irure nisi.
Mollit officia cillum Lorem ullamco minim nostrud elit officia tempor esse
quis. Cillum sunt ad dolore
quis aute consequat ipsum magna exercitation reprehenderit magna. Tempor
cupidatat consequat elit dolor adipisicing."
></c:prompt>
Available Methods
openPrompt()
closePrompt()
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Prompt Lightning Web Component displays simple content on a layer on top of the app. For example,
use a prompt to confirm form submission or to direct the user to confirm a step in a process. Use the Modal
Lightning Web Component to modify data with forms and fields.
<c-prompt
theme="slds"
title="Service Unavailable"
message="Sit nulla est ex deserunt exercitation anim occaecat. Nostrud
ullamco deserunt aute id consequat veniam incididunt duis in sint irure nisi.
Mollit officia cillum Lorem ullamco minim nostrud elit officia tempor esse
quis. Cillum sunt ad dolore
quis aute consequat ipsum magna exercitation reprehenderit magna. Tempor
Available Methods
openPrompt()
closePrompt()
Pubsub Component
This page contains the Pubsub Component ReadMe for each Vlocity release.
• register
• unregister
• fire
• shouldExecuteCallbackHandler.shouldExecuteCallback
Available Methods
Register
Register a callback for an event.
pubsub.register(this.channel, {
result: // Pass the payload here
});
Unregister
Unregister from an event.
pubsub.unregister(this.channel, {
onresult: // Do on successfull disconnect
});
Fire
Fire an event to a listener.
value: // payload
});
shouldExecuteCallbackHandler.shouldExecuteCallback
Override this function to implement a check before executing the registered callback. This function should
return true if you want the callback to execute or return false. The default value returned is true.
pubsub.shouldExecuteCallbackHandler.shouldExecuteCallback =
(callback,payload)=>{
//implement the function to return true if you want the callback to
execute else return false.
if(condition){ //some condition.
return true;
}else{
return false;
}
}
Vlocity Insurance and Health Summer '19 and CME Fall '19
The Pubsub Component enables data sharing between components. Multiple components can register and
receive data from the same channel.
• register
• unregister
• fire
Available Methods
Register
Register a callback for an event.
pubsub.register(this.channel, {
result: // Pass the payload here
});
Unregister
Unregister from an event.
pubsub.unregister(this.channel, {
onresult: // Do on successfull disconnect
});
Fire
Fire an event to a listener.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The RadioGroup Lightning Web Component enables users to select from single or multiple options by
selecting one radio button.
<c-radio-group
name="vehicle"
value="bike"
options='[{"label":"car","value":"car"},{"label":"bike","value":"bike"},
{"label":"ship","value":"ship"}]'
></c-radio-group>
Available Methods
checkValidity()
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears displayed error messages and returns true.
setCustomValidity(message)
Displays a custom error message when the textarea value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidity() is called.
focus()
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The RadioGroup Lightning Web Component enables users to select from single or multiple options by
selecting one radio button.
<c-radio-group
name="vehicle"
value="bike"
options='[{"label":"car","value":"car"},{"label":"bike","value":"bike"},
{"label":"ship","value":"ship"}]'
></c-radio-group>
Available Methods
checkValidity()
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears displayed error messages and returns true.
setCustomValidity(message)
Displays a custom error message when the textarea value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidity() is called.
focus()
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The RadioImageGroup Lightning Web Component extends the RadioGroup Lightning Web Component
adding additional features. The RadioImageGroup Lightning Web Component enables users to choose
from single or multiple options by selecting an image instead of a radio button.
Available Methods
checkValidity()
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears displayed error messages and returns true.
setCustomValidity(message)
Displays a custom error message when the textarea value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidity() is called.
focus()
<c-radio-image-group
class="slds-p-top_small"
name="rad"
type="radio"
options='[{"name": "male", "value": "male", imgId: "https://
image.shutterstock.com/image-photo/summer-beach-holiday-online-
shopping-450w-461355724.jpg", "selected": false},
{"name": "female", "value": "female", imgId: "https://cdn.pixabay.com/photo/
2015/11/06/15/13/internet-1028794__340.jpg", "selected": true}]'
is-image="true"
></c-radio-image-group>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The RadioImageGroup Lightning Web Component extends the RadioGroup Lightning Web Component
adding additional features. TheRadioImageGroup Lightning Web Component enables users to choose from
single or multiple options by selecting an image instead of a radio button.
Available Methods
checkValidity()
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears displayed error messages and returns true.
setCustomValidity(message)
Displays a custom error message when the textarea value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidity() is called.
focus()
<c-radio-image-group
class="slds-p-top_small"
name="rad"
type="radio"
options='[{"name": "male", "value": "male", imgId: "https://
image.shutterstock.com/image-photo/summer-beach-holiday-online-
shopping-450w-461355724.jpg", "selected": false},
{"name": "female", "value": "female", imgId: "https://cdn.pixabay.com/photo/
2015/11/06/15/13/internet-1028794__340.jpg", "selected": true}]'
is-image="true"
></c-radio-image-group>
<c-related-list
header="Sample Header"
description="Sample title for the header"
theme={theme}
icon-name="standard:opportunity"
icon-size="large"
icon-color="#fcb95b"
icon-bg-color="#fff"
draggable="false"
columns={columns}
records={tableData}
action-list={actionList}
record-id="001f400000Odl3cAAB"
></c-related-list>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The RichTextEditor Lightning Web Component enables the text editor tool for rich content editing.
<c-rich-text-editor
onchange="{valueChnged}"
editor-src-url="{url}"
config="{editorConfig}"
value="{initialValue}"
height="400"
></c-rich-text-editor>
{
height: 300;
}
{
menubar: false,
plugins: [
'advlist autolink lists link image charmap print preview anchor
textcolor',
'searchreplace visualblocks code fullscreen',
'insertdatetime media table paste code help wordcount'
],
toolbar: 'undo redo | formatselect | bold italic forecolor backcolor |
alignleft aligncenter alignright alignjustify | bullist numlist outdent indent
| removeformat | preview | help',
content_css: [
'//fonts.googleapis.com/css?family=Lato:300,300i,400,400i',
'//www.tiny.cloud/css/codepen.min.css'
],
skin: 'oxide'
}
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The RichTextEditor Lightning Web Component enables the text editor tool for rich content editing.
<c-rich-text-editor
onchange="{valueChnged}"
editor-src-url="{url}"
config="{editorConfig}"
value="{initialValue}"
height="400"
></c-rich-text-editor>
{
height: 300;
}
{
menubar: false,
plugins: [
'advlist autolink lists link image charmap print preview anchor
textcolor',
'searchreplace visualblocks code fullscreen',
'insertdatetime media table paste code help wordcount'
],
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Slider Lightning Web Component is a graphical control element for a user to set a value by moving an
indicator horizontally or vertically.
<c-slider
type="vertical"
step="20"
label="Slider Component"
size="medium"
min="-1000"
max="1000"
value="0"
>
</c-slider>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Slider Lightning Web Component is a graphical control element for a user to set a value by moving an
indicator horizontally or vertically.
min="-1000"
max="1000"
value="0"
>
</c-slider>
<c-slds-header
header="Sample Header"
description="Sample title for the header"
theme={theme}
icon-name="standard:opportunity"
icon-size="large"
icon-color="#fcb95b"
icon-bg-color="#fff"
>
</c-slds-header>
An event that expects params detail.message to be set to the header when in edit mode.
handleSave()
fields
This accepts an array of objects with keys name,label and type. Supports number, currency, date, datetime,
percentage, phone, address, checkbox, url & icon. For type = icon the value need to be boolean. If true
it shows check. If false it shows nothing.
const fields = [
{ name: "Author", label: this.authorLabel, type: "string" },
{ name: "Status", label: this.statusLabel, type: "string" },
{ name: "IsChildCard", label: this.isChildCardLabel, type: "icon" }
];
<c-slds-header
header="Sample Header"
description="Sample title for the header"
theme={theme}
icon-name="standard:opportunity"
icon-size="large"
icon-color="#fcb95b"
icon-bg-color="#fff"
>
</c-slds-header>
An event that expects params detail.message to be set to the header when in edit mode.
handleSave()
<c-spinner
variant="inverse"
alternative-text="Loading content..."
size="medium"
></c-spinner>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Spinner Lightning Web Component displays an animated image that indicates a feature is loading. You
can display this component when retrieving data or when an operation takes time to complete.
<c-spinner
variant="inverse"
alternative-text="Loading content..."
size="medium"
></c-spinner>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Spinner Lightning Web Component displays an animated image that indicates a feature is loading. You
can display this component when retrieving data or when an operation takes time to complete.
<c-spinner
variant="inverse"
alternative-text="Loading content..."
size="medium"
></c-spinner>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Styles Lightning Web Component specifies the theme and gets the base CSS for that theme.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Styles Lightning Web Component specifies the theme and gets the base CSS for that theme.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Tab Lightning Web Component keeps related content in a single container. The tab content displays
when a user clicks the tab. This component is a base element of the c-tabset component.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Tab Lightning Web Component keeps related content in a single container. The tab content displays
when a user clicks the tab. This component is a base element of the c-tabset component.
Triggers when the tab is changed, it returns the tabIndex and tab-id, if tab-id is passed on c-tab, if tab-id is
not specified only tabIndex will be returned as result.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Tabset Lightning Web Component displays a tabbed container with multiple content areas, only one of
which is visible at a time. A tabset can hold multiple c-tab components. The first tab is activated by
default.
Triggers when the tab is changed, it returns the tabIndex and tab-id, if tab-id is passed on c-tab, if tab-id is
not specified only tabIndex will be returned as result.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Tabset Lightning Web Component displays a tabbed container with multiple content areas, only one of
which is visible at a time. A tabset can hold multiple c-tab components. The first tab is activated by
default.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Textarea Lightning Web Component creates an HTML textarea element for entering multi-line text
input. A text area holds an unlimited number of characters.
<c-textarea
label="Message When Value Long(30 char)"
max-length="30"
message-when-too-long="Value is too long."
placeholder="Enter Description..."
></c-textarea>
Available Methods
checkValidity()
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears displayed error messages and returns true.
setCustomValidity()
Displays a custom error message when the textarea value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidity() is called.
focus()
blur()
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Textarea Lightning Web Component creates an HTML textarea element for entering multi-line text
input. A text area holds an unlimited number of characters.
<c-textarea
label="Message When Value Long(30 char)"
max-length="30"
message-when-too-long="Value is too long."
placeholder="Enter Description..."
></c-textarea>
Available Methods
checkValidity()
reportValidity()
Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity()
clears displayed error messages and returns true.
setCustomValidity()
Displays a custom error message when the textarea value is submitted. Takes the message argument. If
message is an empty string, the error message is reset.
showHelpMessageIfInvalid()
Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns
false when checkValidity() is called.
focus()
blur()
<c-time-picker
label="Time (max : 2:00 pm, min : 10:00 pm)"
min="14:00"
max="10:00"
placeholder="Select Time"
required
output-type="date"
hide-icon=false
>
</c-time-picker>
Example ---
<c-time-picker
label="Time (max : 2:00 pm, min : 10:00 pm)"
min="14:00"
max="10:00"
placeholder="Select Time"
required
output-type="date"
hide-icon=false
>
<span slot="label">Additional markup is inserted here</span>
</c-time-picker>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The TimePicker Lightning Web Component is a graphical user interface widget that allows the user to
select a time from a list of options.
<c-time-picker
label="Time (max : 2:00 pm, min : 10:00 pm)"
min="14:00"
max="10:00"
placeholder="Select Time"
required
output-type="date"
hide-icon = false
>
</c-time-picker>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The TimePicker Lightning Web Component is a graphical user interface widget that allows the user to
select a time from a list of options.
<c-time-picker
label="Time (max : 2:00 pm, min : 10:00 pm)"
min="14:00"
max="10:00"
placeholder="Select Time"
required
output-type="date"
>
</c-time-picker>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Toast Lightning Web Component is a feedback and confirmation tool run after the user takes an action.
<c-toast
title="Information"
theme="nds"
styletype="error"
message="This is an info toast"
duration="3000"
></c-toast>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Toast Lightning Web Component is a feedback and confirmation tool run after the user takes an action.
options='[{"label":"car","value":"car"},{"label":"bike","value":"bike"},
{"label":"ship","value":"ship"}]'
></c-toggle>
<c-toggle
name="vehicle"
value="bike"
options='[{"label":"car","value":"car"},{"label":"bike","value":"bike"},
{"label":"ship","value":"ship"}]'
>
<span slot="label">Additional markup is inserted here</span>
</c-toggle>
Available Methods
Supports all methods available in the CheckboxGroup Lightning Web Component.
<c-tooltip
content="This is a test message"
arrowposition="top-right"
icon-name="utility:add"
></c-tooltip>
<c-tooltip
theme="{theme}"
icon-url="{iconUrl}"
content="This is a demo help text"
arrowposition="top-right"
>
<div>
<h1>This is Custom markup</h1>
<span>You can put HTML inside the tooltip</span>
<c-button variant="brand" label="This is a Button"></c-button>
</div>
</c-tooltip>
<c-tooltip
content="This is a test message"
arrowposition="top-right"
icon-name="utility:add"
></c-tooltip>
<c-tooltip
theme="{theme}"
icon-url="{iconUrl}"
content="This is a demo helptextsssss"
arrowposition="top-right"
>
<div>
<h1>This is Custom markup</h1>
<span>You can put HTML inside the tooltip</span>
<c-button variant="brand" label="This is a Button"></c-button>
</div>
</c-tooltip>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Tooltip Lightning Web Component displays an icon with a popover containing a small amount of text
describing an element on screen. The popover displays on hover or on focus of the icon.
<c-tooltip
content="This is a test message"
arrowposition="top-right"
icon-name="utility:add"
></c-tooltip>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Tooltip Lightning Web Component displays an icon with a popover containing a small amount of text
describing an element on screen. The popover displays on hover or on focus of the icon.
<c-tooltip
content="This is a test message"
arrowposition="top-right"
icon-name="utility:add"
></c-tooltip>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Tree Lightning Web Component displays a visualization of a structural hierarchy, such as a sitemap for
a website or a role hierarchy in an organization. Items display as hyperlinks. Items in the hierarchy can be
nested. Items with nested items are also known as branches.
<c-tree
icon-url="{iconUrl}"
theme="{theme}"
items="{treeData}"
onselect="{handleTreeSelect}"
>
</c-tree>
Event Listener
onselect
Fires when a tree item is selected and before navigating to a given hyperlink. Returns the item object.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Tree Lightning Web Component displays visualization of a structural hierarchy, such as a sitemap for a
website or a role hierarchy in an organization. Items display as hyperlinks. Items in the hierarchy can be
nested. Items with nested items are also known as branches.
<c-tree
icon-url="{iconUrl}"
theme="{theme}"
items="{treeData}"
onselect="{handleTreeSelect}"
>
</c-tree>
Event Listener
onselect
Fires when a tree item is selected and before navigating to a given hyperlink. Returns the item object.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The TreeItem Lightning Web Component defines the individual items of a tree component.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
c/typeahead
Slots: iconLeft, iconRight, lastItem
Example
<c-typeahead label={string}
options={array}
theme={"slds"|"nds"}
onchange={changeHandler}
onkeyup={keyupHandler}
icon-name-left={string}
icon-name-right={string}
required={boolean}
disable-filter={boolean}
remote-source={boolean}>
</c-typeahead>
• c/typeahead
• .disableFilter: boolean
• .remoteSource : boolean
• isLookupVisible : boolean
• .input : HTMLInputElement
• .firstRender : boolean
• ._isFocused : boolean
• ._validity : ValidityState
• ._progressBar : ProgressBar
• .focusChange(evt)
• .showLookup(isVisible)
• .selectOption(evt)
• .lastItemChange(evt)
• .updateValue(event)
• .showHelpMessageIfInvalid()
• .progressStart()
• .progressComplete()
• .progressReset()
typeahead.disableFilter : boolean
• When boolean attribute disable-filter is applied, then no filtering will be appliedto the options array on
keyup. For use when backend system is filtering.
typeahead.remoteSource : boolean
• When boolean attribute remote-source is applied a progress bar will be displayed while options are
retrieved.
typeahead.isLookupVisible : boolean
typeahead.input : HTMLInputElement
Scope: private
typeahead.firstRender : boolean
Scope: private
typeahead._isFocused : boolean
Scope: private
typeahead._validity : ValidityState
typeahead._progressBar : ProgressBar
Kind: instance property of c/typeahead.
typeahead.focusChange(evt)
Event handler covering both focus and blur events.
Scope: private
Param Type
evt Event
typeahead.showLookup(isVisible)
Method which controls the visibility of lookup.
typeahead.selectOption(evt)
Kind: instance method of c/typeahead.
Param Type
evt MouseEvent
typeahead.lastItemChange(evt)
Hides the last item element when no content is passed into the lastItem slot.
Scope: private
Param Type
evt Event
typeahead.updateValue(event)
Keeps the _value up to date with the value of the input.
Param Type
event KeyboardEvent
typeahead.progressStart()
Sets progress bar visibility, and starts progress.
typeahead.progressComplete()
Sets progress-bar's progress to 100%
Scope: private
typeahead.progressReset()
Hides the progress bar and resets progress.
Scope: private
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Typeahead Lightning Web Component supplies hints or a list of possible choices based on the text the
user enters while filling out a form or performing a search.
<c-typeahead
value="Morin"
data='["Morin", "Banks", "Olivia", "Morina", "Banker", "Adeola"]'
label="Options"
placeholder="Select Value"
></c:typeahead>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
isRtl
The isRTL function enables 'right-to-left' scripts.
Supported languages
• Arabic
• Aramaic
• Dhivehi, Maldivian
• Hebrew
• Kurdish (Sorani)
• Persian, Farsi
• Urdu Steps to implement isRtl
Implementation
1. Set isRTL by adding the dir attribute inside a parent 'div' element.
<div dir={dir}></div>
2. Assign the value (returned from isRTL function) to the respective property.
this.dir = isRtl();
createMask
The createMask function enables masking for input fields.
Available masks
• dd-ddd-ddd
• yyyy-mm-dd
• dd-mm-yyyy
• yyyy/mm/dd
• dd/mm/yyyy
Implementation
Call createMask function on 'keyup' event of input.
this.value = creatMask(event)
fetchCustomLabels
The fetchCustomLabels function gets custom labels, and accepts one required parameter and two
optional parameters.
Implementation
Note The labels array and the default values must be of the same length so that they are mapped correctly.
If labels and values are incorrectly mapped, the default values are not considered.
{
DRMapperFilter: "Filter"
DeleteLayout: "Delete Layout?"
Preview: "Preview"
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
isRtl
The isRTL function enables `right-to-left' scripts.
Supported languages
• Arabic
• Aramaic
• Dhivehi, Maldivian
• Hebrew
• Kurdish (Sorani)
• Persian, Farsi
• Urdu Steps to implement isRtl
Implementation
1. Set isRTL by adding the dir attribute inside a parent `div' element.
<div dir={dir}></div>
1. Assign the value (returned from isRTL function) to the respective property.
this.dir == isRtl();
createMask
The createMask function enables masking for input fields.
Available masks
• dd-ddd-ddd
• yyyy-mm-dd
• dd-mm-yyyy
• yyyy/mm/dd
• dd/mm/yyyy
Implementation
Call createMask function on `keyup' event of input.
this.value == creatMask(event)
fetchCustomLabels
The fetchCustomLabels function gets custom labels, and accepts one required parameter and two
optional parameters.
Implementation
Note The labels array and the default values must be of the same length so that they are mapped correctly.
If labels and values are incorrectly mapped, the default values are not considered.
{
DRMapperFilter: "Filter"
DeleteLayout: "Delete Layout?"
Preview: "Preview"
Available Attributes
OmniScripts
An OmniScript is an omnichannel customer engagement and a business tool built on the Salesforce
platform. OmniScripts allow you to craft dynamic customer interactions without code and deploy to multiple
channels and devices. Administrators can define a script once and then deploy the script within a
Salesforce application or on a web page.
Create OmniScripts to guide users through sales and service processes with fast, personalized responses,
and seamless integration to enterprise applications and data.
LWC OmniScripts
LWC OmniScripts enable you to enhance an existing OmniScript element or add custom functionality to the
OmniScript by using custom Lightning web components. For information on Vlocity's Lightning web
components, see Vlocity Lightning Web Components.
NOTE
It is possible to switch an OmniScript to either an LWC OmniScript or an Angular
OmniScript at any time. However, Angular OmniScripts and LWC OmniScripts do not
support the same components and functionalities. For more information on OmniScript's
Lightning web component support, see LWC OmniScript Considerations.
While building your script, preview elements inside steps, view property changes live, and access
contextual guidance with in-product help to discover and learn about functionality without leaving your
script. To access the LWC OmniScript Designer, see Access the LWC OmniScript Designer.
NOTE
The LWC OmniScript Designer is optimized for use in the Google Chrome browser.
Header (1), Navigation Panel (2), Canvas (3), Build panel (4), Properties panel (5), Setup panel (6),
Preview (7)
• Building your scripts on a wide and adjustable Canvas and instantly view changes made to element
properties.
• Repositioning, cloning, and adjusting the width of step elements along a 12-column horizontal grid.
• Accessing inactive elements and navigating between elements in high-level and detailed views from the
Navigation Panel.
• Configuring elements from the Properties panel.
• Searching for and dragging elements onto the Canvas from the Build panel.
• Configuring script-wide settings from the Setup panel.
• Viewing contextual In-Product Help to discover and learn about elements and properties without leaving
your script.
• Previewing, testing, and debugging your script in Preview.
Header (1)
In the Header, view metadata and perform actions related to your script.
View high-level metadata about your OmniScript such as Type, SubType, Version, Language, and
Activation status.
In the actions navigation, toggle between design and preview mode, create a new version, activate or
deactivate the current version, edit basic settings, download your OmniScript, and get launch instructions.
The Slide View tab provides a high-level view of the structure of large and complex scripts. Click on a slide to
open the Properties panel for a step or action.
The Tree View tab provides a detailed view of the script's structure. Click on a branch to open the Properties
panel for a step, element, or action.
Canvas (3)
(A) Build your scripts by dragging elements from the Build panel onto the Canvas.
(D) Expand Steps to preview and configure elements. Adjust the width of elements on a 12-column grid,
and drag elements next to each other to automatically take up the remaining width of the grid.
(E) See how your scripts look with a Newport or Lightning theme without switching to Preview.
Configure basic settings, Step Chart Options, Save Options, Knowledge Options, Error Messages,
Messaging Framework, and Lightning Design System Tokens in the UI, or edit properties as JSON.
In-Product Help
In the Build, Properties, and Setup panels, access In-Product Help to view contextual information and
instruction about elements and properties without leaving your script.
(B) View detailed documentation about element functionality with slide-out help panels.
Preview (7)
Preview
(A) Preview your script in real-time with real data.
(B) Enter a record Id into the Context Id field and click refresh to preview your form with test data.
(C) Preview how an OmniScript appears on different devices, such as mobile, desktop, and tablet, with the
Preview Device feature.
(D) With the Theme dropdown, see how your OmniScript looks with a Lightning or Newport theme. If a
custom Newport style sheet is in the org, it overrides the out-of-the-box Newport style sheet.
(E) Reload the Canvas to reset data, and update the Data JSON and Action Debugger.
(F) The Data JSON provides an easy-to-read JSON format, which updates when you enter values in data
fields on the Canvas. Also, copy the entire JSON with just one click.
Debug
(G) The Action Debugger enables you to debug action requests and response data. Search for actions,
copy specific nodes in one click, and clear the console logs.
Changes in functionality affect how you must configure an LWC OmniScript and how an LWC OmniScript
performs. For information on unsupported elements, functionalities, and properties see LWC OmniScript
Designer Considerations.
Changes and Enhancements for Vlocity Insurance and Health and Vlocity CME Summer
'20
This section lists changes and enhancements specific to the LWC OmniScript Designer. To view LWC
OmniScript changes and enhancements that apply to both the LWC OmniScript Designer and the classic
designer, see LWC OmniScript Changes and Enhancements.
Property Description
Tracking Business Category Define a business category for a tracking entry. See Enable Tracking for Vlocity Components.
Tracking Business Event Define a business tracking event for a tracking entry. See Enable Tracking for Vlocity Components.
Property Description
Edit Block Label LWC Edit Block's Cards and Long Cards modes support the Edit Block Label LWC Component
Component Override Override. See Extending the Edit Block Label LWC.
Edit Block New LWC Edit Block's Cards mode supports the Edit Block New LWC Component Override. See Extending
Component Override the Edit Block New LWC.
Use Continuation The Remote Action's Use Continuation property, which enables you to invoke apex classes that
return continuation objects, appears in the UI. See Remote Action.
Element Description
Matrix Action Call a Calculation Procedure with specific inputs and retrieve a value.
PDF Action Fill and display PDFs using OmniScript data.
Set Errors Action Render validation messaging on one or more elements in a Step.
New Functionalities
The LWC OmniScript Designer now includes these functionalities.
Functionality Description
Cancel Options Configure Cancel Options to direct users to different Salesforce experiences. See Enable and
Configure Cancel Functionality in an LWC OmniScript.
Download Off-Platform Download the OmniScript LWC to add it to OmniOut. See Run LWC OmniScripts Outside of Salesforce
LWC with LWC OmniOut.
Hide Conditional Hide conditional elements in the designer by checking the hide conditional elements checkbox in the
Elements canvas. See Conditionally Display Elements Using the Conditional View Property.
Functionality Description
Edit Block SObject The SObject mapping section appears in the UI of the Edit Block properties.See Configuring an Edit
Mapping Block
Full-width Preview Collapse the Debug Panel to hide the Data JSON and Action debugger and preview the OmniScript
in a full-width page. See Preview an OmniScript in the LWC OmniScript Designer.
Functionality Description
Multi-Language: Custom Configure custom label translations from the LWC OmniScript Designer when designing a multi-
Label Translations language OmniScript. See Define Custom Label Translations in Multi-Language OmniScripts.
Changes in Functionality
The File and Image elements no longer contain the Upload to Content Document checkbox property.
LWC OmniScripts always upload files and images to the content document. See Add a File or Image to
OmniScript.
Changes and Enhancements for Vlocity Insurance and Health Spring '20
Changes in Functionality
Functionality Description
Edit Block: SObject In the LWC OmniScript Designer, the SObject Mapping section does not work. To edit the SObject
Mapping mapping, use the classic designer. Once the edits are complete, switch back to the LWC OmniScript
Designer to test the mapping.
Functionality Description
Canvas Build and manage your script on an adjustable canvas.
In-Product Help Access In-Product Help to view contextual information and instruction about elements and properties without
leaving your script.
Preview Device Preview how your LWC OmniScript appears on mobile, desktop, and tablet with the Preview Device feature.
Slide View In the Slide View of the Navigation Panel, see a high-level overview of our OmniScript and navigate between active
and inactive elements.
Tree View In the Tree View of the Navigation Panel, see a detailed view of your OmniScript and navigate between active and
inactive elements.
Element Changes
• View elements in Build panel to drag onto the canvas to build your scripts.
• Search for elements in the Build panel.
For information on new features and enhancements exclusive to the LWC OmniScript Designer, and newly
supported elements and properties, see LWC OmniScript Designer Changes and Enhancements.
Unsupported Functionality
Unsupported Elements
• Set Errors - Available beginning with Vlocity Insurance and Health Summer '20.
• Matrix Action - Available beginning with Vlocity Insurance and Health Summer '20.
Unsupported Properties
• Edit Block New LWC Component Override - Available beginning with Vlocity Insurance and Health
Summer '20
• Edit Block Label LWC Component Override - Available beginning with Vlocity Insurance and Health
Summer '20
• Edit Block's SObject Mapping - Available beginning with Vlocity Insurance and Health Summer '20
• Cancel Options. See Enable and Configure Cancel Functionality in an LWC OmniScript - Available
beginning with Vlocity Insurance and Health Summer '20.
Unsupported Functionality
• Multi-language OmniScripts - Available beginning with Vlocity Insurance and Health Summer '20
• Copy Individual Data JSON nodes in Preview
• SEO - Available beginning with Vlocity Insurance and Health Summer '20
• Delete
• Export - Available beginning with Vlocity Insurance and Health Summer '20
• Testing additional data when in Preview
• Full-Width Preview - Available beginning with Vlocity Insurance and Health Summer '20
• Close or open all steps
Permanently Unsupported
These functionalities, elements, and properties in Vlocity Insurance and Health Spring '20 and future
releases.
• Review Action
• Post to Object Action
• Submit Action
• Done Action
• Persistent Component
• Available For Prefill When Hidden (Prefilled by default)
Beginning with the Vlocity Insurance and Health Spring '20, the Vlocity LWC OmniScript Designer enables
you to preview dynamic web forms as you build them using a drag-and-drop interface with WYSIWYG
editing. See LWC OmniScript Designer Overview.
1. From the Vlocity OmniScript Designer tab, click an LWC OmniScript, click a version to open the
OmniScript Designer.
2. Click Open in LWC OmniScript Designer.
Create a new LWC OmniScript to build a script in the LWC OmniScript Designer. For information on
features exclusive to LWC OmniScripts, see LWC OmniScript Changes and Enhancements.
IMPORTANT
When using an existing OmniScript in the LWC OmniScript Designer, create a new version
of the OmniScript to update the OmniScript's property set. Without a new version, errors
may appear in the designer. See Upgrade an LWC OmniScript's Property Set.
What's Next
Next steps, configure your OmniScript. See Set Up an OmniScript in the LWC OmniScript Designer.
See Also
What's Next
Next steps, build your script. See Build an LWC OmniScript with Elements in the LWC OmniScript Designer.
See Also
Actions outside steps perform actions for the entire script, such as getting, posting, evaluating, and
transforming data. Steps typically include Block, Input, and Display elements, but can also include Actions
as buttons and Functions specific to the step. Learn more about OmniScript Script Structure Definitions.
Each page of an OmniScript is called a Step and can contain Group elements, such as Blocks, Input
elements, such as Checkboxes, Actions, such as Email Actions, and Functions, such as Formulas.
Follow the hierarchical structure of Actions and Steps to build your script. Actions outside steps perform
actions for the entire script, such as getting, posting, evaluating, and transforming data. Steps typically
include Block, Input, and Display elements, but can also include Actions as buttons and Functions specific
to the step. Learn more about OmniScript Script Structure Definitions.
b. From the DataRaptor Extract Action dropdown, select a DataRaptor that retrieves data from one
or more related Salesforce objects.
c. (Optional) To configure other DataRaptor Extract Action properties, see DataRaptor Extract Action
Properties.
NOTE
To execute more than one server call to fetch data, use an Integration Procedure or an
Action Block.
NOTE
Actions placed inside a step render as buttons.
NOTE
To execute more than one server call to fetch data, use an Integration Procedure or an
Action Block.
6. To end the OmniScript and return the user either to where the script was launched or a custom URL:
1. Click Actions, and drag a Navigate Action onto the canvas.
2. To configure the Navigate Action, click the help icon (?) next to the Navigate Action Properties title
in the Properties panel, or see Navigate Action.
What's Next
Next steps, configure your elements. See Configure Elements in the LWC OmniScript Designer.
See Also
1. From your OmniScript, click an element on the canvas or the Navigation Panel to open the Properties
panel.
2. Enter values for any required fields marked with an asterisk (*), such as the Name field of a Text input
element.
3. (Optional) To view an inactive element, see Activate Elements in the LWC OmniScript Designer.
4. (Optional) Enter values for optional fields, such as the Placeholder and Label fields of a Text input
element.
5. (Optional) To learn more about a specific property, hover over the tooltip icon (i) next to the name of the
property.
6. (Optional) For detailed documentation about your selected element, select the help icon (?) next to the
name of the property. See also OmniScript Element Reference.
What's Next
Next steps, preview the look and functionality of your OmniScript. See Preview an OmniScript in the LWC
OmniScript Designer.
See Also
When an element is deactivated, it disappears from the canvas. View inactive and active steps and actions
placed outside of steps in the Slide View of the Navigation Panel. View all inactive and active elements,
including those inside steps, in the Tree View of the Navigation Panel.
1. From OmniScript, In the Navigation panel, click the Slide View icon or the Tree View icon.
2. Click the step or action you want to activate.
3. In the Properties panel, click Activate.
1. From OmniScript, in the Navigation panel, click the Tree View icon.
2. Click a step, and click the element you want to activate.
3. In the Properties panel, click Activate.
See Also
IMPORTANT
Using Set Values Action to set the context ID only works in preview.
NOTE
Confirm that a Context Id is defined in your data source. For example, if you have a
DataRaptor Extract Action that gets account records, you must have an Input
Parameter whose Data Source is ContextId, and whose Filter Value is the
DataRaptor Extract's output name, such as AccountId.
• Preview Device: To preview how your OmniScript appears on different devices, select Mobile,
Tablet, or Desktop.
• Theme: Preview your OmniScript with a Lightning or Newport theme.
• To reset data fields in your OmniScript after making changes, click the reload icon.
3. (Optional) Hide the Data JSON and Action Debugger by clicking X. Display the Data JSON and Action
again by clicking the debug panel button that appears when the panel closes.
What's Next
Next steps, test your OmniScript. See Test Data in the LWC OmniScript Designer.
See Also
NOTE
Confirm that a ContextId is defined in your data source. For example, if you have a
DataRaptor Extract Action that gets account records, you must have an Input
Parameter whose Data Source is ContextId, and whose Filter Value is the
DataRaptor Extract's output name, such as AccountId.
Next Steps
Next steps, launch your OmniScript on a Lightning or Community page. See Activate and Deploy an LWC
OmniScript.
See Also
Example Error
1. From your OmniScript, click New Version to trigger a class that adds any missing JSON properties.
2. Repeat the process for any older or imported OmniScripts.
See Also
Changes in functionality affect how you must configure an LWC OmniScript and how an LWC OmniScript
performs. For information on unsupported elements, functionalities, properties, and deployments, see LWC
OmniScript Considerations.
Beginning with the Vlocity Insurance and Health Summer '19 and Vlocity Communications, Media, and
Energy Fall '19 releases, Vlocity supports the Salesforce Lightning Web Component programming model.
Changes and Enhancements for Vlocity Insurance and Health and Vlocity CME Summer
'20
All of the LWC OmniScript changes and enhancements apply to both the LWC OmniScript Designer and
the Classic OmniScript Designer. To view changes and enhancements specific to the LWC OmniScript
Designer, see LWC OmniScript Designer Changes and Enhancements.
Download the LWC HTML, CSS, and ReadMe files for this release by clicking here.
LWC OmniOut
Run an OmniScript on an external site by using the LWC OmniOut in your external application. OmniOut
enables apps to run an OmniScript that connects to Salesforce and external APIs to send and receive data.
See Run LWC OmniScripts Outside of Salesforce with LWC OmniOut.
New Properties
New LWC OmniScript properties appear in the LWC OmniScript Designer only. See LWC OmniScript
Designer Changes and Enhancements.
New Functionalities
These new functionalities are exclusive to LWC OmniScripts:
Functionality Description
Browser Navigation A browser's forward and back buttons navigate an LWC OmniScript to the next or previous Step.
Custom Styling Support for Add custom styling for right-to-left languages using static resources. See Custom Stylesheet
RTL Language Static Resource.
Download Off-Platform LWC Download the OmniScript LWC to add it to OmniOut. See Run LWC OmniScripts Outside of
Salesforce with LWC OmniOut.
Expanded Google Maps Type Ahead's Google Maps functionality returns an expanded response containing more JSON
Response Node nodes. See Using Google Maps Autocomplete in LWC OmniScripts.
Improved Readability Readability has been improved for screenreaders.
Functionality Description
Messaging Framework Pass a value in the c__messagingKey URL parameter to change the node that stores the
messaging payload for window.postMessage and session storage message. See Message with
Window Post Messages and Session Storage Messages.
Place Custom LWC Elements Custom LWC Elements are usable in a non-repeatable Block element. The Block cannot be
in Blocks nested. See Custom LWC Element.
Run OmniScripts Off-Platform Add OmniOut to an application to run OmniScripts on a third-party website.
with OmniOut
Translate Tooltip Help Text in Provide translations for tooltip help text in multi-language OmniScripts by defining and adding
Multi-Language OmniScripts custom labels. See Translate Tooltip Help Text in OmniScripts.
Changes and Enhancements for Vlocity Insurance and Health Spring '20 and Vlocity
CME Summer '20
Download the HTML, CSS, and ReadMe files for this release by clicking here.
New Elements
These new elements are available in LWC OmniScripts.
Element Description
Action Block Groups Action elements together to enable backend calls to fire asynchronously using the same
configuration.
DataRaptor Turbo Extract Action Invokes a DataRaptor Turbo Extract.
New Properties
These new properties are exclusive to LWC OmniScripts:
Property Description
Send only Extra Pass an Extra Payload's Key/Value pairs without sending an OmniScript's data JSON by using the Send
Payload Only Extra Payload property available in these actions: Calculation Action, HTTP Action, Integration
Procedure Action, and Remote Action.
Step: Messaging Steps support the pubsub, window post message, and session storage message properties. See
Framework Communicate with OmniScript from a Lightning Web Component.
New Functionalities
These new functionalities are exclusive to LWC OmniScripts:
Functionality Description
Custom Stylesheet Static Resource Add custom styling to an OmniScript using a custom style sheet static resource.
Enable LWC OmniScripts with Create LWC OmniScripts or convert Angular OmniScripts with a Type that begins with an
UpperCase Type uppercase letter with no additional configuration. See Create an LWC OmniScript.
Inline OmniScripts Display OmniScripts inline in Community and Lightning pages.
Navigate to Additional Direct users to an App, Community Named Page, Logout, or Login page using the Navigate
PageReference Types Action. See Navigate Action.
Override the Edit Block LWC Override an Edit Block LWC, Edit Block New LWC, and Edit Block Label LWC, to add custom
functionality and styling to an Edit Block.
Override the Modal LWC Extend and override the OmniScript Modal LWC.
Override the Save For Later Override the Save For Later Acknowledgment LWC to add customizations.
Acknowledgement LWC
Override the Type Ahead LWC The LWC Type Ahead element's LWC Component Override field overrides the Type Ahead
component instead of overriding the Type Ahead Block component.
SEO OmniScripts Enable OmniScripts to appear in online searches and direct users to specific Steps in the
OmniScript by configuring OmniScript's SEO options.
SLDS Token Override Add customizations to SLDS Design Tokens in the OmniScript.
Stateful OmniScripts Store the state of an OmniScript's progression in the URL to direct users to specific Steps in
an OmniScript and temporarily store data.
Time Tracking in Navigate Action The Navigate Action supports time tracking. The action is tracked in the StepActionTime time
tracking entry. See Vlocity Tracking Service.
Changes and Enhancements for Vlocity Insurance and Health Winter '20 and Vlocity
CME Winter '20
New Properties
These new properties are exclusive to LWC OmniScripts:
Property Description
Action Message Enables custom action messages to render under an action's loading spinner when an Action runs. For
more information, see Common Action Element Properties.
Display Outside Enables Knowledge base articles to display in a separate Lightning web component in a Lightning page.
OmniScript For more information, see Opening Knowledge Base Articles Outside of a Classic OmniScript.
Merge Saved Data JSON Enables a saved OmniScript to merge data into an updated version of the OmniScript. For more
into updated OmniScript information, see Configure Save Options.
New Functionalities
These new functionalities are exclusive to LWC OmniScripts:
• Make remote calls from any custom LWC using the Common Action Utility. Make Remote Calls from
Lightning Web Components using the LWC OmniScript Action Framework.
• View Knowledge Base articles outside of the OmniScript using the Vlocity OmniScript Knowledge Base
Component. See Opening Knowledge Base Articles Outside of a Classic OmniScript.
• Pass parameters into LWC OmniScripts in a Community. See Launch an LWC OmniScript with LWC
OmniScript Wrapper.
• Launch an OmniScript from a Card in a Community. See Launching an LWC OmniScript from an OS
Action on a Card.
• Override the default save for later error message with a custom message. See Configure Save Options.
• Pass events to an LWC OmniScript in the c_vlocEvents parameter, and fire the event by configuring
the Navigate Action. See Navigate Action.
• Hide the Next and Previous button on a Step by setting the width for each button to 0. See Hide the Next
and Previous Buttons.
• Override the Step Chart Lightning web component. See Customize the Step Chart Component.
• The OmniScript Base Mixin component includes methods to enable these functionalities:
• Navigating to a Step
• Saving a state in a disconnected callback
• Clearing a saved state when a user navigates to a previous Step
• Making remote calls
• Applying response data to an OmniScript's data JSON
• In LWC OmniScripts, validation runs when a user clicks out of a field by using the onBlur function. In
Angular OmniScripts, validation runs when a user types in a field by using the onChange function.
To enable the LWC OmniScript to run validation when a user types:
1. In the Setup properties, click Edit as JSON.
2. Add the property "commitOnChange": true.
3. Preview the behavior.
NOTE
In LWC OmniScripts, the onChange behavior runs after a half-second delay.
• Displaying Knowledgebase articles in OmniScript. For more information, see Initial Configuration for the
Knowledge Component in Classic OmniScript.
• Saving and resuming OmniScripts. Saving and resuming LWC OmniScripts requires additional
configuration due to new behavior. For more information, see Configure Save Options.
• Group elements support the validation framework. For example, when a Group element, such as a Block,
is hidden, validation does not apply to any element inside of the hidden group element.
• Prefilling repeatable blocks. For more information, see Prefill Repeatable Blocks
NOTE
The Image and File elements do not work in the LWC preview due
to a Salesforce limitation. When Image and File elements are
required in a Step, the LWC Preview cannot advance past the
Step. Vlocity recommends marking File and Image elements as
Required only before activating the OmniScript.
Image Supports uploads up to 2 GB. For more information, see Upload Files and Images in Supports uploads up
OmniScripts. to 25 MB.
NOTE
The Image and File elements do not work in the LWC preview
because they use Salesforce components. When Image and File
elements are required in a Step, the LWC Preview cannot
advance past the Step. Vlocity recommends marking File and
Image elements as Required only before activating the
OmniScript.
Messaging Validation runs when a user clicks out of a field. See Display Messages in OmniScripts. Validation runs when
a user types.
Password No change No change
Type Ahead The Type Ahead Block displays a progress bar instead of a spinner when retrieving data There is no progress-
Block results. See ProgressBar Lightning web component ReadMe. bar component
Changes and Enhancements for Vlocity Insurance and Health Summer '19 and Vlocity
Communications, Media, and Energy Fall '19
Changes in Functionality
• When a User submits a Step, error messages appear inline with the
Element
• Validation runs for typed values and values set by an API
• Validation methods are accessible in custom Lightning web
components. For more information, see Add Validation to a Custom
Lightning Web Component in OmniScript.
URL Element Accepts a broader range of URL patterns, including: Accepts a pattern of http://
www.xyz.com
• http://www.xyz.com
• https://www.xyz.com
• www.xyz.com
• test.xyz.com
Left:
Top:
Element Changes
• Elements that support Lightning web components display a Lightning icon in the available components
section of an OmniScript.
• The LWC Component Override property enables custom Lightning web components to override an
individual element's component. For more information, see Add Custom Lightning Web Components to
an OmniScript.
LWC OmniScripts For information on unsupported elements, properties, and functionalities, see LWC
OmniScript Considerations.
Added Elements for Vlocity Insurance and Health and Vlocity CME Summer '20
Added Elements for Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20
NOTE
The Image and File elements do not work in the LWC preview due
to a Salesforce limitation. When Image and File elements are
required in a Step, the LWC Preview cannot advance past the
Step. Vlocity recommends marking File and Image elements as
Required only before activating the OmniScript.
Image Supports uploads up to 2 GB. For more information, see Upload Files and Images in Supports uploads up
OmniScripts. to 25 MB.
NOTE
The Image and File elements do not work in the LWC preview
because they use Salesforce components. When Image and File
elements are required in a Step, the LWC Preview cannot
advance past the Step. Vlocity recommends marking File and
Image elements as Required only before activating the
OmniScript.
Messaging Validation runs when a user clicks out of a field. See Display Messages in OmniScripts. Validation runs when
a user types.
Password No change No change
Type Ahead The Type Ahead Block displays a progress bar instead of a spinner when retrieving data There is no progress-
Block results. See ProgressBar Lightning web component ReadMe. bar component
Added Elements for Vlocity Insurance and Health Summer '19 and Vlocity
Communications, Media, and Energy Fall '19
NOTE
The Step always runs the validation and ignores
the Step's Validation Required property.
• When a User submits a Step, error messages appear inline with the
Element
• Merge fields are usable in the Step Instruction field.
Text No change No change
Text Area No change No change
Text Block Does not insert data into the data JSON No change
Time No change No change
LWC OmniScripts do not support all of the elements, functionalities, and deployment options that Angular
OmniScripts support. For information on new features that are exclusive to LWC OmniScripts and newly
supported elements and properties, see LWC OmniScript Changes and Enhancements.
Permanently Unsupported
The elements and functionalities in this section are permanently unsupported in LWC OmniScripts.
Unsupported Elements
• Done Action - The Done Action has been replaced with the Navigate Action
• Filter Block
• Headline
• Input Block
• Post to Object Action
• Review Action
• Selectable Items
• Submit Action
Unsupported Functionality
Angular OmniScript's Cart Component functionality is permanently unsupported.
Considerations for Vlocity Insurance and Health and Vlocity CME Summer '20
These considerations apply to Vlocity Insurance and Health Summer '20.
Unsupported Properties
Unsupported Functionalities
• Click Tracking
• Text Block does not insert data into the data JSON
Unsupported Elements
Vlocity plans to add support for the elements on this page in future releases. LWC compatible elements
display a Lightning icon in the Available Components panel of an OmniScript. Unsupported elements are
still available in the available components section. However, unsupported elements will not render in a
Lightning Web Component OmniScript.
• PDF Action - Available beginning with Vlocity Insurance and Health Summer '20
Unsupported Properties
• Cancel Options - Available beginning with Vlocity Insurance and Health Summer '20. In Vlocity Insurance
and Health Spring '20, cancel behavior is provided by the Navigate Action. See Enable and Configure
Cancel Functionality in an LWC OmniScript
• Mask is not supported in the Currency element
• Min and Max in a Date Element
• Merge fields in a Range Element
Unsupported Functionalities
• Clicking a browser's forward and back button to navigate steps in an OmniScript - Available beginning
with Vlocity Insurance and Health Summer '20.
• Click Tracking
• Text Block does not insert data into the data JSON
Unsupported Deployments
LWC OmniScripts do not support any off-platform deployment. For more information, see Deploying
OmniScripts Off-Platform with OmniOut. Available beginning with Vlocity Insurance and Health Summer
'20.
Considerations for Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20
These considerations apply to Vlocity Insurance and Health Winter '20.
Unsupported Elements
Vlocity plans to add support for the elements on this page in future releases. LWC compatible elements
display a Lightning icon in the Available Components panel of an OmniScript. Unsupported elements are
still available in the available components section. However, unsupported elements will not render in a
Lightning Web Component OmniScript.
• Calculation Action - Available starting with Vlocity Insurance and Health Spring '20.
• Delete Action - Available starting with Vlocity Insurance and Health Spring '20.
• Disclosure - Available starting with Vlocity Insurance and Health Spring '20.
• Matrix Action - Available starting with Vlocity Insurance and Health Spring '20
• PDF Action - Available beginning with Vlocity Insurance and Health Summer '20.
• Set Errors - Available starting with Vlocity Insurance and Health Spring '20
Unsupported Properties
• Cancel Button - Beginning with Vlocity Insurance and Health Spring '20, Cancel behavior is provided by
the Navigate Action. See Enable and Configure Cancel Functionality in an LWC OmniScript
• Cancel Options - Available beginning with Vlocity Insurance and Health Summer '20. In Vlocity Insurance
and Health Spring '20, cancel behavior is provided by the Navigate Action. See Enable and Configure
Cancel Functionality in an LWC OmniScript
• Conditional - Required - Available starting with Vlocity Insurance and Health Spring '20
• Conditional - Read Only - Available starting with Vlocity Insurance and Health Spring '20
• Mask is not supported in the Currency element
• Min and Max in a Date Element
• Merge fields in a Range Element
• Post-Transform DataRaptor Interface in Remote Properties - Available starting with Vlocity Insurance and
Health Spring '20
• Pre-Transform DataRaptor Interface in Remote Properties - Available starting with Vlocity Insurance and
Health Spring '20
• Repeatable element - Available Vlocity Insurance and Health Spring '20.Block supports the Repeat
property starting with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20
Unsupported Functionalities
• Clicking a browser's forward and back button to navigate steps in an OmniScript - Available beginning
with Vlocity Insurance and Health Summer '20.
• Click Tracking
• Multi-language OmniScripts - Available starting with Vlocity Insurance and Health Spring '20
• Text Block does not insert data into the data JSON
Unsupported Deployments
LWC OmniScripts do not support any off-platform deployment. For more information, see Deploying
OmniScripts Off-Platform with OmniOut. Available beginning with Vlocity Insurance and Health Summer
'20.
Considerations for Vlocity Insurance and Health Summer '19 and Vlocity
Communications, Media, and Energy Fall '19
These considerations apply to Vlocity Insurance and Health Summer '19 and Vlocity Communications,
Media, and Energy Fall '19.
Unsupported Elements
Vlocity plans to add support for the elements on this page in future releases. LWC compatible elements
display a Lightning icon in the Available Components panel of an OmniScript. Unsupported elements are
still available in the available components section. However, unsupported elements will not render in a
Lightning Web Component OmniScript.
• Block - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20
• Calculation Action - Available starting with Vlocity Insurance and Health Spring '20
• Delete Action - Available starting with Vlocity Insurance and Health Spring '20
• Disclosure - Available starting with Vlocity Insurance and Health Spring '20.
• Docusign - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20
• Edit Block - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20
• Email Action - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20
• File - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20
• Image - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20
• Matrix Action - Available starting with Vlocity Insurance and Health Spring '20
• Messaging - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20
• Password - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20
• PDF Action - Available beginning with Vlocity Insurance and Health Summer '20.
• Set Errors - Available starting with Vlocity Insurance and Health Spring '20
• Type Ahead Block - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME
Winter '20
Unsupported Properties
• Cancel Button - Beginning with Vlocity Insurance and Health Spring '20, Cancel behavior is provided by
the Navigate Action. See Enable and Configure Cancel Functionality in an LWC OmniScript
• Cancel Options - Beginning with Vlocity Insurance and Health Spring '20, Cancel behavior is provided by
the Navigate Action. See Enable and Configure Cancel Functionality in an LWC OmniScript
• Conditional - Required - Available starting with Vlocity Insurance and Health Spring '20
• Conditional - Read Only - Available starting with Vlocity Insurance and Health Spring '20
• Mask is not supported in the Currency element
• Min and Max in a Date Element
• Hide - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20
• Knowledge Component - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME
Winter '20
• Post-Transform DataRaptor Interface in Remote Properties - Available starting with Vlocity Insurance and
Health Spring '20
• Pre-Transform DataRaptor Interface in Remote Properties - Available starting with Vlocity Insurance and
Health Spring '20
• Merge fields in a Range Element
• Repeatable element - Available for the Block element starting with Vlocity Insurance and Health Winter
'20 and Vlocity CME Winter '20
• Save for Later - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter
'20
Unsupported Functionalities
• Clicking a browser's forward and back button to navigate steps in an OmniScript - Available beginning
with Vlocity Insurance and Health Summer '20.
• Click Tracking
• Console Tab Title and Icon - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity
CME Winter '20
• Custom Tracking Data - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME
Winter '20
• Multi-language OmniScripts - Available beginning with Vlocity Insurance and Health Summer '20.
• Fetching picklist values when an OmniScript loads - Available starting with Vlocity Insurance and Health
Winter '20 and Vlocity CME Winter '20
• Text Block does not insert data into the data JSON
• Time tracking - Available starting with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter
'20
Unsupported Deployments
LWC OmniScripts do not support any off-platform deployment. For more information, see Deploying
OmniScripts Off-Platform with OmniOut. Available beginning with Vlocity Insurance and Health Summer
'20.
NOTE
It is possible to switch an OmniScript to either an LWC OmniScript or an Angular
OmniScript at any time. However, Angular OmniScripts and LWC OmniScripts do not
support the same elements and functionalities. For more information on Lightning Web
Component support, see LWC OmniScript Considerations.
1. From the OmniScript's Script Configuration, add a Type, Subtype, and Language.
NOTE
In the Vlocity Insurance and Health Summer '19-Winter '20 and Vlocity CME Fall '19-
Winter '20 releases, the OmniScript's Type must begin with a lowercase letter. You
cannot use case-sensitivity to define a Type's unique name if another OmniScript with
the same Type exists. For example, if you have an Angular OmniScript with an
existing Type named Test, you cannot create an LWC OmniScript with a Type named
test. For information on converting Angular OmniScripts to LWC OmniScripts, see
Convert an Angular OmniScript to an LWC OmniScript. The Type limitation occurs
because Type is stored in a Salesforce picklist, and Salesforce picklists store values
without case-sensitivity.
See Also
Enable the use of custom Lightning web components for an existing Angular OmniScript by converting the
OmniScript to an LWC OmniScript. For more information on LWC OmniScripts, see LWC OmniScripts.
NOTE
LWC compatible elements display a Lightning icon in the Available Components panel of
an OmniScript.
1. Beginning with Vlocity Insurance and Health Spring '20, LWC OmniScripts may begin with an
uppercase letter. If the OmniScript is in an earlier package, perform these steps:
a. In the Vlocity Insurance and Health Summer '19-Winter '20 and Vlocity CME Fall '19-Winter '20
releases, an LWC OmniScript's Type must begin with a lowercase letter. If the OmniScript's Type
begins with an uppercase letter, change the Type to a unique name that begins with a lowercase
letter. You cannot use case-sensitivity to convert the Angular OmniScript's Type. For example, if
you have an Angular OmniScript with an existing Type named Test, you cannot create an LWC
OmniScript with a Type named test.
NOTE
The Type limitation occurs because Type is stored in a Salesforce picklist, and
Salesforce picklists store values without case-sensitivity.
b. (Optional) If you rely on the OmniScript's Type as a naming convention and cannot create a new
unique Type, see Converting an Angular OmniScript's Type to an LWC OmniScript Type.
2. Check the Enable LWC checkbox.
3. Replace any existing Done Actions in the OmniScript with a Navigate Action. For information on
configuring the Navigate Action, see Navigate Action.
NOTE
LWC OmniScripts do not support the Done Action element.
4. Elements in an Angular OmniScript that use custom templates must now use custom Lightning web
components to provide custom functionality. For information on creating custom Lightning web
components, see Create a Custom Lightning Web Component for OmniScript.
5. (Optional) If the Angular OmniScript exists in a Community or Lightning page, see Add an LWC
OmniScript to a Community or Lightning Page.
NOTE
Before previewing an OmniScript that uses custom Lightning web components, you must
activate the OmniScript. If the OmniScript is not active, custom Lightning web components
won't render in the preview. If you deploy changes to a custom Lightning web component
that is present in an Active OmniScript, the OmniScript will display the changes.
Requirements
To make the custom Lightning web component compatible with Vlocity Lightning web components, you
must set two metadata tags in your XML configuration file:
• runtimeNamespace: You must add the namespace of your Vlocity package to the XML metadata file in
your component by using the runtimeNamespace metadata tag. Replace the NS variable in the code
example with the namespace of your Vlocity package. For more information on finding the namespace of
your package, see Viewing the Namespace and Version of the Vlocity Package.
<runtimeNamespace>NS</runtimenamespace>
• Custom Lightning web components built outside of the package cannot use any Salesforce Lightning web
component that uses resources or affects the component at runtime. For more information, see
Salesforce Modules.
• isExposed : Set the isExposed metadata tag to true.
<isExposed>True</isExposed>
For more information on extending Vlocity Lightning web components, see Extend Vlocity Lightning Web
Components.
NOTE
Custom Lightning Web Components will not throw errors unless Debug Mode is enabled.
For more information, see Debug Lightning Web Components.
For information on adding a custom Lightning web component to an OmniScript, see Add Custom Lightning
Web Components to an OmniScript.
NOTE
Use Custom LWC Elements in a Step, and, beginning with Vlocity Insurance and Health
and Vlocity CME Summer '20, a non-repeatable Block element that is not nested.
• Components that extend the OmniScriptBaseMixin component. For more information, see Extend the OmniScriptBaseMixin
Component.
• Standalone components that run independently from OmniScript. For more information, see Create a Standalone Custom Lightning
Web Component.
Property Description
Property Name Enter a property name using the HTML attribute format to pass it into the custom component. For example,
the property recordId converts to the HTML attribute record-id.
Property Enter a value to pass in the property. Values may use merge field syntax to pass a JSON node. For
Source example, to pass the JSON node ContextId, enter %ContextId%.
6. (Optional) Activate and preview the OmniScript to view your custom Lightning web component.
See Also
• Extend the OmniScriptBaseMixin Component
• Create a Standalone Custom Lightning Web Component
Lightning web components in OmniScript provide the HTML, JavaScript, and CSS for an OmniScript
element. For example, a Text element has an extendable component named OmniScriptText. For
information on creating custom Lightning web components that do not extend an OmniScript element's
Lightning web component, see Create a Custom Lightning Web Component for OmniScript.
NOTE
Custom Lightning web components built outside of the package cannot use any Salesforce
Lightning web component that uses Salesforce resources or affects the component at run
time. For more information, see Salesforce Modules.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
1. Ensure you have set up IDX Workbench or Salesforce DX locally. For information on setting up IDX
Workbench or Salesforce DX, see Set Up Lightning Web Components.
2. Locate the name of the OmniScript element's Lightning web component. Information about OmniScript
element Lightning web components is available in the LWC OmniScript ReadMe Reference.
NOTE
LWC compatible elements display a Lightning icon in the Available Components panel
of an OmniScript.
3. Create a custom component and extend the OmniScript element's Lightning web component.
4. To make the custom Lightning web component compatible with Vlocity Lightning web components, you
must set two metadata tags in your XML configuration file:
• runtimeNamespace: You must add the namespace of your Vlocity package to the XML metadata
file in your component by using the runtimeNamespace metadata tag. Replace the NS variable in
the code example with the namespace of your Vlocity package. For more information on finding the
namespace of your package, see Viewing the Namespace and Version of the Vlocity Package.
<runtimeNamespace>NS</runtimenamespace>
• isExposed : Set the isExposed metadata tag to true.
<isExposed>True</isExposed>
For more information on extending Vlocity Lightning web components, see Extend Vlocity Lightning
Web Components.
5. Once customizations are complete, deploy the custom component to your Salesforce org. For more
information on deploying Lightning web components, see Deploy Lightning Web Components.
6. Add the custom component to an OmniScript by overriding an individual element or mapping all the
elements of one type to the custom component. For more information on adding custom lightning web
components to an OmniScript, see Add Custom Lightning Web Components to an OmniScript.
Example
In this code example, a custom Lightning web component is extending the OmniScriptText component.
Replace the NS variable in the code example with the namespace of the Vlocity package you are using. For
more information on finding the namespace of your package, see Viewing the Namespace and Version of
the Vlocity Package.
render() {
return tmpl;
}
}
Requirements
• Custom Lightning web components extending the OmniScriptBaseMixin component cannot also
extend or override an OmniScript element Lightning web component. For more information on extending
an OmniScript element's Lightning web component, see Extend an OmniScript Element's Lightning Web
Component.
• Custom Lightning web components extending the OmniScriptBaseMixin must use the Custom LWC
element in OmniScript. For more information on using the Custom LWC element, see Add Custom
Lightning Web Components to an OmniScript.
• Custom Lightning web components built outside of the package cannot use any Salesforce Lightning web
component that uses resources or affects the component at runtime. For more information, see
Salesforce Modules.
• To make the custom Lightning web component compatible with Vlocity Lightning web components, you
must set two metadata tags in your XML configuration file:
• runtimeNamespace: You must add the namespace of your Vlocity package to the XML metadata file
in your component by using the runtimeNamespace metadata tag. Replace the NS variable in the
code example with the namespace of your Vlocity package. For more information on finding the
namespace of your package, see Viewing the Namespace and Version of the Vlocity Package.
<runtimeNamespace>NS</runtimenamespace>
• isExposed : Set the isExposed metadata tag to true.
<isExposed>True</isExposed>
For more information on extending Vlocity Lightning web components, see Extend Vlocity Lightning Web
Components.
OmniScriptBaseMixin ReadMe
View all of the component's properties, attributes, and methods in the ReadMe. See OmniScript Base Mixin
(omniscriptBaseMixin) ReadMe.See LWC OmniScript ReadMe Reference.
render() {
return tmpl;
}
}
This code example contains a checkValidity() function that returns false when the sum is less than
zero. Replace the NS variable in the code example with the namespace of the Vlocity package you are
using.
Navigating to a Step
Beginning with Vlocity Insurance and Health Winter '20 , enable users to navigate to different steps in the
OmniScript using these three mixins:
nextButton(evt) {
if (evt) {
this.omniNextStep();
}
}
HTML Example
prevButton(evt) {
if (evt) {
this.omniPrevStep();
}
}
HTML Example
NOTE
Auto advancing to a step more than one step ahead is not permitted.
JS Example
goToStep(evt) {
if (evt) {
this.omniNavigateTo(this.omniScriptHeaderDef.asIndex - 2);
}
}
HTML Example
Method: omniSaveState(input,key,usePubSub=false):
Arguments:
Beginning with Vlocity Insurance and Health Winter '20 , optionally save the state within a disconnected
callback. Saving the state within a disconnected callback enables the state of the element to save when
users leave the element automatically. In disconnected callbacks, the usePubSub argument must be set to
true. Events in disconnected callbacks can only be passed using pubsub.
disconnectedCallback() {
let mySaveState = {"my":"data", "here" : 8};
let key = 'customLwcKey';
let usePubSub = true;
1. In OmniScript, determine the Step that clears the Custom LWCs saved state.
2. In the Step's properties, click Edit as JSON.
3. Enter the property "omniClearSaveState": [ ].
4. In the omniClearSaveState property, enter the name of one or more custom LWC elements
"omniClearSaveState": [ "CustomLWC1"]. The Step sends data to the Custom LWC enabling
the Custom LWC to determine if the Step rendered.
5. In your Custom LWC's code, retrieve the current state.
this.getAttribute('data-omni-layout')
Arguments:
• The first argument must be an object with the properties input, sClassName, sMethodName, and options.
The values of each of the properties must be in String data type.
NOTE
Methods called within a package must have the namespace prepended with ${this._ns}.
For example, `${this._ns}IntegrationProcedureService`.
const params = {
input: JSON.stringify(this.omniJsonData),
sClassName: 'SomeApexClass',
sMethodName: 'someApexMethod',
options: '{}',
};
• The second argument for omniRemoteCall is an optional boolean value that links a tracked property
called omniSpinnerEnabled. The HTML must have some code to check the boolean's value.
HTML Example
<template if:true={omniSpinnerEnabled}>
<div class="slds-spinner-container__wrapper">
<c-spinner variant="brand"
alternative-text="Loading.."
size="medium">
</c-spinner>
</div>
</template>
After omniRemoteCall executes, the response callback returns an object containing the two properties
result and error.
• result: The result property contains a raw response from the server.
• error: The error property stores an error value from the Vlocity's GenericInvoke2 class.
Vlocity provides properties that, when passed in the options, enable jobs to be queuable, future, chainable,
and continuable.
const params = {
input: this.omniJsonDataS,
sClassName: 'SomeApexClass',
sMethodName: 'someApexMethod',
options: '{}',
};
const params = {
input: this.omniJsonDataStr,
sClassName: `${this._ns}IntegrationProcedureService`,
sMethodName: 'test_RemoteAction', this will need to match the VIP ->
type_subtype
options: '{}',
};
const options = {
chainable: true,
};
const params = {
input: this.omniJsonDataStr,
sClassName: `${this._ns}IntegrationProcedureService`,
sMethodName: 'test_RemoteAction', this will need to match the VIP ->
type_subtype
options: JSON.stringify(options),
};
const options = {
input: this.omniJsonDataStr,
vlcClass: 'SomeApexClass',
vlcMethod: 'someApexMethod',
useQueueableApexRemoting: true,
};
const params = {
input: this.omniJsonDataStr,
sClassName: `$
{this._ns}VFActionFunctionController.VFActionFunctionControllerOpen`,
sMethodName: 'runActionFunction',
options: JSON.stringify(options),
};
const options = {
useFuture: true,
};
const params = {
input: this.omniJsonDataStr,
sClassName: 'SomeApexClass',
sMethodName: 'someApexMethod',
options: JSON.stringify(options),
};
window.console.log(error, 'error');
});
• Example continuation remote call passing the parameter useContinuation: true. For more
information on how continuation works, see Continuation Class.
const options = {
input: this.omniJsonDataStr,
vlcClass: 'SomeApexClass',
vlcMethod: 'someApexMethod',
useContinuation: true,
};
const params = {
input: this.omniJsonDataStr,
sClassName: 'SomeApexClass',
sMethodName: 'someApexMethod',
options: JSON.stringify(options),
};
Arguments:
• input: The first argument, input, accepts data in an object or primitive data type. Undefined is not
accepted. The input data either replaces the current value or merges with the existing data depending on
the setting of the second argument, aggregateOverride.
• aggregateOverride: The second argument, aggregrateOverride, controls how the data saves to the data
JSON. It is an optional argument that is set to false by default. When set to false, the input data merges
with the existing data. If the data is not an object it does not merge into the data JSON. When set to true,
the input data overrides any existing data in the Custom LWC element.
Examples:
• An example passing the input argument with the default aggregrateOverride behavior.
let myData = "myvalue" // any kind of data that is a string, object, number,
etc
this.omniUpdateDataJson(this.myData);
• An example passing the input argument with the aggregateOverride argument set to false.
The method accepts an object that it passes into the OmniScript's data JSON. If the root data node name in
the response matches an element name in the OmniScript, that data prefills the element, and any nested
elements, when it renders in the OmniScript. If the root node name does not match an element in the data
JSON, the node inserts into the data JSON immediately. Applying the response works similar to the Send/
Response property. For information, see Manipulate JSON with the Send/Response Transformations
Properties.
Arguments:
• response: The first argument, response, is an object that merges into the data JSON.
• usePubSub: The second argument, usePubSub, controls how the response passes up to the
OmniScript header to merge into the data JSON. This boolean is set to false by default. When set to
false, response is sent to the OmniScript header via javascript events. When set to true, response is
sent to the OmniScript header by the pubsub module.
The usePubSub argument enables users to call omniApplyCallResp asynchronously. When running
asynchronously, the UI is not blocked waiting for the response.
Optionally perform a remote call by using the omniNextStep() method and calling the
omniApplyCallResp() method asynchronously.
This example demonstrates how the omniApplyCallResp() method updates Data JSON.
{
"Step1" : {
"Currency1" : 12345,
"Text1" : "data1"
},
"Step2" : {
"Text3": "data3"
}
}
2. Call omniApplyCallResp and pass data as an argument.
let myData = {
"Step1" : {
"CustomLWC1" : "newprop"
},
"Anotherprop" : {
"prop1" : "anothervalue"
}
}
this.omniApplyCallResp(myData);
3. View the updated data JSON.
{
"Step1" : {
"Currency1" : 12345,
"Text1" : "data1",
"CustomLWC1" : "newprop"
},
"Step2" : {
"Text3": "data3"
},
"Anotherprop" : {
"prop1" : "anothervalue"
}
}
Event: omniaggregate
1. Create a custom aggregate function and set the omniaggregate event to a variable.
Example:
customAggregate() {
const eventName = 'omniaggregate'
}
2. Create a variable to store the LWC element's input data.
Example:
customAggregate() {
const eventName = 'omniaggregate'
const data = {
anyKeyName : 'myElementData'
};
}
3. Construct an object by mapping the data to the key data, and an element name to the key elementId.
customAggregate() {
const eventName = 'omniaggregate'
const data = {
anyKeyName : 'myElementData'
};
const detail = {
data: data,
elementId: 'elementName2'
};
}
4. (Optional) In the detail object, include the key-value pair aggregateOverride: true to override all
existing data in the Custom LWC element.
customAggregate() {
const eventName = 'omniaggregate'
const data = {
anyKeyName : 'myElementData'
};
const detail = {
data: data,
elementId: 'elementName2',
aggregateOverride: true
};
}
5. Create a new event object that passes the omniaggregate event and an object containing these four
properties:
• bubbles: A boolean that determines if the event bubbles up to the DOM.
• cancelable: A boolean that determines if the event is cancelable.
• composed: A boolean that determines if the event can pass through the shadow boundary.
• detail: Data passed in the event.
Example:
omniAggregate() {
const eventName = 'omniaggregate'
const data = {
anyKeyName : 'myElementData'
};
const detail = {
data: data,
elementId: 'elementName2'
};
const myEvent = new CustomEvent(eventName, {
bubbles: true,
cancelable: true,
composed: true,
detail: detail,
});
}
6. Call this.dispatchEvent() and pass in the event object as a parameter.
What's Next
Add a Custom Lightning Web Component to a Custom LWC Element
See Also
Requirements
<runtimeNamespace>NS</runtimeNamespace>
• isExposed : Set the isExposed metadata tag to true.
<isExposed>True</isExposed>
For more information on extending Vlocity Lightning web components, see Extend Vlocity Lightning Web
Components.
Event: omniaggregate
1. Create a custom aggregate function and set the omniaggregate event to a variable.
Example:
customAggregate() {
const eventName = 'omniaggregate'
}
2. Create a variable to store the LWC element's input data.
Example:
customAggregate() {
const eventName = 'omniaggregate'
const data = {
anyKeyName : 'myElementData'
};
}
3. Construct an object by mapping the data to the key data, and an element name to the key elementId.
customAggregate() {
const eventName = 'omniaggregate'
const data = {
anyKeyName : 'myElementData'
};
const detail = {
data: data,
elementId: 'elementName2'
};
}
4. (Optional) In the detail object, include the key-value pair aggregateOverride: true to override all
existing data in the Custom LWC element.
customAggregate() {
const eventName = 'omniaggregate'
const data = {
anyKeyName : 'myElementData'
};
const detail = {
data: data,
elementId: 'elementName2',
aggregateOverride: true
};
}
5. Create a new event object that passes the omniaggregate event and an object containing these four
properties:
• bubbles: A boolean that determines if the event bubbles up to the DOM.
• cancelable: A boolean that determines if the event is cancelable.
• composed: A boolean that determines if the event can pass through the shadow boundary.
• detail: Data passed in the event.
Example:
omniAggregate() {
const eventName = 'omniaggregate'
const data = {
anyKeyName : 'myElementData'
};
const detail = {
data: data,
elementId: 'elementName2'
};
const myEvent = new CustomEvent(eventName, {
bubbles: true,
cancelable: true,
composed: true,
detail: detail,
});
}
6. Call this.dispatchEvent() and pass in the event object as a parameter.
What's Next
Add a Custom Lightning Web Component to a Custom LWC Element
See Also
The Pub/Sub property enables Action elements and Step elements to send data in Key-Value pairs to other
LWCs. LWCs must register the OmniScript component's event name and add code to handle the data sent
from the event.
NOTE
Beginning with Vlocity Insurance and Health Spring '20, the Step element supports the
Pub/Sub property.
1. In an OmniScript Action or Step, select the Messaging Framework and check Pub/Sub.
2. In the Key and Value fields, configure which data to pass to another LWC.
handleOmniAction(data) { handleOmniStepLoadData(data) {
switch(data.name) { switch(data.name) {
case 'SomeNameForAction': case 'FirstStep':
this.handleSomeNameForAction(data);
break; this.handleOmniFirstStepLoadData(data);
case 'SomeNameForAction2': break;
this.handleSomeNameForAction2(data); case 'SecondStep':
break;
default: this.handleOmniSecondStepLoadData(data);
// handle default case break;
} default:
} // handle default case
}
handleSomeNameForAction(data) { }
// perform some logic specific to
SomeNameForAction action handleOmniFirstStepLoadData(data) {
// that has element name = // perform some logic specific when a
"SomeNameForAction" Step element which name is
} // FirstStep is loaded
}
handleSomeNameForAction2(data) {
// perform some logic specific to handleOmniSecondStepLoadData(data) {
SomeNameForAction2 action // perform some logic specific when a
// that has element name = Step element which name is
"SomeNameForAction2" // SecondStep is loaded
} }
Access the Action's Element Type using data.type. n/a
handleOmniAction(data) {
switch(data.type) {
case 'Integration Procedure Action':
this.handleIPActionPubsubEvents(data);
break;
case 'Remote Action':
this.handleRemoteActionPubsubEvents(data);
break;
default:
// handle default case
}
}
handleIPActionPubsubEvents(data) {
// perform some logic specific to
Integration Procedure Actions
}
handleRemoteActionPubsubEvents(data) {
// perform some logic specific to Remote
Actions
}
See Also
Make Remote Calls from Lightning Web Components using the LWC OmniScript Action
Framework
Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, LWC OmniScripts
make remote calls using a new action framework built with JavaScript classes. The Action framework is
available to all custom LWCs in your Salesforce org. Enable an LWC to make remote calls using specific
functionalities by importing the Common Action Utility class into the LWC.
NOTE
Custom LWCs extending the OmniScript Base Mixin must use the omniRemoteCall()
function. For more information, see Extend the OmniScriptBaseMixin Component.
Requirements
To make the custom Lightning web component compatible with Vlocity Lightning web components, you
must set two metadata tags in your XML configuration file:
• runtimeNamespace: You must add the namespace of your Vlocity package to the XML metadata file in
your component by using the runtimeNamespace metadata tag. Replace the NS variable in the code
example with the namespace of your Vlocity package. For more information on finding the namespace of
your package, see Viewing the Namespace and Version of the Vlocity Package.
<runtimeNamespace>NS</runtimenamespace>
• Custom Lightning web components built outside of the package cannot use any Salesforce Lightning web
component that uses resources or affects the component at runtime. For more information, see
Salesforce Modules.
• isExposed : Set the isExposed metadata tag to true.
<isExposed>True</isExposed>
For more information on extending Vlocity Lightning web components, see Extend Vlocity Lightning Web
Components.
NOTE
Custom Lightning Web Components will not throw errors unless Debug Mode is enabled.
For more information, see Debug Lightning Web Components.
Best Practice
When making remote calls, start the flow with the executeAction method. Do not start the flow with the
invokeAction method. To standardize the action flow and use the built-in logic of the action framework,
Vlocity recommends that all action flows begin with executeAction.
NOTE
The invokeAction method's purpose is to make the remote call with request parameters
processed by the preProcess method. The preProcess method, by default, supports
queueable and chainable process flows. The postProcess method standardizes the
response in a predictable format.
Utility: omniscriptActionUtils
Defined Methods
Available Variables
1. Obtain the dot notation format of the namespace in your LWC by importing
getNamespaceDotNotation from omniscriptInternalUtils. Replace NS in the first line of
code with the namespace of your package. For information on finding the namespace of your package,
see Viewing the Namespace and Version of the Vlocity Package.
NOTE
Remote calls made to Apex classes inside a vlocity managed package must include
the namespace in the sClassName parameter sent into the executeAction.
NOTE
Each key requires a stringified value.
• If the LWC displays in the Omniscript Designer, it is possible to send events to the Debug Console.
Send events to the Debug Console by including the sendDataToDebugConsole method in your
LWC. The method provides logic on sending events to the Debug Console.
sendDataToDebugConsole accepts these arguments:
• params
• resp
• label
Examples
To use the Common Action Utility, refer to these examples:
connectedCallback() {
this._actionUtilClass = new OmniscriptActionCommonUtil();
}
triggerRemote() {
const params = {
input: '{}',
sClassName: 'LwcTest',
sMethodName: 'lwctest',
options: '{}',
};
this._actionUtilClass
.executeAction(params, null, this, null, null)
.then(response => {
window.console.log(response);
})
.catch(error => {
window.console.log(error);
});
}
• Sample sendDataToDebugConsole method:
params: sendParams,
response: sendResp,
element: { label: label },
},
});
this.dispatchEvent(debugEvent);
}
• Sample queueable remote call using executeAction:
connectedCallback() {
this._actionUtilClass = new OmniscriptActionCommonUtil();
}
triggerQueueable() {
const options = {
input: '{}',
vlcClass: 'LwcTest',
vlcMethod: 'lwctest',
useQueueableApexRemoting: true,
};
const params = {
input: '{}',
sClassName: `$
{this._ns}VFActionFunctionController.VFActionFunctionControllerOpen`,
sMethodName: 'runActionFunction',
options: JSON.stringify(options),
};
this._actionUtilClass
.executeAction(params, null, this, null, null)
.then(response => {
window.console.log(response);
})
.catch(error => {
window.console.log(error, 'error');
});
}
• Sample continuation remote call using executeAction:
connectedCallback() {
this._actionUtilClass = new OmniscriptActionCommonUtil();
}
triggerContinuation() {
const options = {
input: '{}',
vlcClass: 'QeRemoteAction2',
vlcMethod: 'populateElements',
useContinuation: true,
};
const params = {
input: JSON.stringify(this.omniJsonData),
sClassName: 'QeRemoteAction2',
sMethodName: 'populateElements',
options: JSON.stringify(options),
};
this._actionUtilClass
.executeAction(params, null, this, null, null)
.then(response => {
window.console.log(response);
})
.catch(error => {
window.console.log(error, 'error');
});
}
• Sample future remote call using executeAction:
connectedCallback() {
this._actionUtilClass = new OmniscriptActionCommonUtil();
}
triggerFuture() {
const options = {
useFuture: true,
};
const params = {
input: '{}',
sClassName: `${this._ns}IntegrationProcedureService`,
sMethodName: 'Test_Chainable',
options: JSON.stringify(options),
};
this._actionUtilClass
.executeAction(params, null, this, null, null)
.then(response => {
window.console.log(response);
})
.catch(error => {
window.console.log(error, 'error');
});
}
• Sample chainable remote call using executeAction:
connectedCallback() {
this._actionUtilClass = new OmniscriptActionCommonUtil();
}
triggerChainable() {
const options = {
chainable: true,
};
const params = {
input: '{}',
sClassName: `${this._ns}IntegrationProcedureService`,
sMethodName: 'Test_Chainable',
options: JSON.stringify(options),
};
this._actionUtilClass
.executeAction(params, null, this, null, null)
.then(response => {
window.console.log(response);
})
.catch(error => {
window.console.log(error, 'error');
});
}
• Sample parameters for a remote call from inside a Vlocity package:
const params = {
input: '{}',
sClassName: `${this._ns}IntegrationProcedureService`,
sMethodName: 'Test_Chainable',
options: '{chainable: true}',
};
The omniscriptValidation component provides the OmniScript element's component with the functions to
enable validation. For information on using validation in custom components that do not extend an
OmniScript element's component, see Extend the OmniScriptBaseMixin Component.
The stepChartItems Lightning web component contains logic that determines the different step statuses the
step chart and its labels display. For information on extending OmniScript Lightning web components, see
Extend an OmniScript Element's Lightning Web Component.
1. Create a custom Step Chart Lightning web component that extends the stepChart Lightning web
component. For more information, download the ReadMe LWC OmniScript ReadMe Reference.
2. Extend the stepChartItems Lightning web component in one of two ways:
• Customize the stepChartItems LWC by creating an additional custom component that extends the
stepChartItems LWC. For more information, download the ReadMe LWC OmniScript ReadMe
Reference.
• Extend the stepChartItems LWC directly in your custom Step Chart LWC. The default behavior and
styling of the stepChartItems LWC will display in your custom Step Chart LWC.
3. (Optional) If a custom Step Chart Items LWC exists, extend that component in your custom Step Chart
component.
4. After deploying custom LWCs to Salesforce, open an OmniScript.
5. In the OmniScript's Script Configuration properties, go to Element Type To LWC Component
Mapping, and click Add New Mapping.
6. In the Element Type field, enter StepChart.
7. In the Lightning Web Component field, enter the name of your custom Lightning web component.
8. Activate the OmniScript, and Preview your changes.
See Also
Required Versions
Available with Vlocity Insurance and Health Spring '20 and CME Fall '20.
1. Create a custom LWC that extends the omniscriptModal LWC and add it to your Salesforce org.
See Extend an OmniScript Element's Lightning Web Component.
2. The custom modal LWC must have these three slots for OmniScript to insert content into the modal:
<slot name="header></slot>
<slot name="content></slot>
<slot name="footer"></slot>
3. In OmniScript Setup , scroll to the Element Type to LWC Component Mapping property.
4. In the Element Type field, enter Modal.
5. In the Lightning Web Component field, enter the name of the custom LWC.
6. Activate and preview the OmniScript to view your modal changes.
See Also
Extend and Override the Save for Later Acknowledge Lightning Web Component
Customize the Save for Later messaging modal in OmniScript by extending and overriding the Save for
later Acknowledge LWC.
Required Versions
Available with Vlocity Insurance and Health Spring '20 and CME Fall '20.
1. Create a custom LWC that extends the omniscriptSaveForLaterAcknowledge LWC and add it to
your Salesforce org. See Extend an OmniScript Element's Lightning Web Component.
2. From OmniScript Setup or Script Configuration, scroll to the Element Type to LWC Component
Mapping property.
3. In the Element Type field, enter SaveForLaterAcknowledge.
4. In the Lightning Web Component field, enter the name of the custom LWC.
5. In Save Options, check Allow Save For Later.
6. Activate and preview the OmniScript to view the save for later override.
See Also
Use the custom component to override an individual OmniScript element's component, override all
OmniScript element components of one element type, or to add an entirely custom component that does
not extend an element's component.
NOTE
Before previewing an OmniScript that uses custom Lightning web components, you must
activate the OmniScript. If the OmniScript is not active, custom Lightning web components
won't render in the preview. If you deploy changes to a custom Lightning web component
that is present in an Active OmniScript, the OmniScript will display the changes.
See Also
The custom LWC must extend the element's component because OmniScript passes in properties specific
to the original component that the custom component is overriding. For more information on extending
OmniScript element components, see Extend an OmniScript Element's Lightning Web Component.
1. From the element's properties pane, in the LWC Component Override field, enter the name of a
custom Lightning web component.
2. Save and Activate the OmniScript.
3. Activate the OmniScript and click the Preview tab to preview the OmniScript.
What's Next
Deploy your OmniScript to preview the Custom LWC's design and behavior. See Activate and Deploy an
LWC OmniScript.
See Also
The custom Lightning web component must extend the Element Type's Lighting web component. For
example, to override all of the Text elements in the OmniScript, the custom component must extend the
OmniScriptText component.
1. From the OmniScript's Script Configuration, locate the property Element Type To LWC Component
Mapping, and click New Mapping.
2. In the Element Type field, enter the Element type that the custom component overrides.
3. In the Lightning Web Component field, enter the name of the custom component that overrides the
element type.
4. Save and Activate the OmniScript.
5. Click Preview to preview the OmniScript.
What's Next
Deploy your OmniScript to preview the Custom LWC's design and behavior. See Activate and Deploy an
LWC OmniScript.
See Also
The Custom LWC element enables custom components to either interact with the OmniScript or to act as a
standalone component. Standalone components do not interact with the OmniScript or the OmniScript's
data JSON.
NOTE
Enable custom Lightning web components to interact with OmniScript by extending the
OmniScriptBaseMixin component. Custom Lightning web components extending the
OmniScriptBaseMixin cannot extend an OmniScript element's component. For more
information on the OmniScriptBaseMixin, see Extend the OmniScriptBaseMixin
Component
NOTE
Standalone custom Lightning web components cannot extend any OmniScript element
component or the OmniScriptBaseMixin component. The standalone component supports
custom functionalities but cannot interact with an OmniScript. For more information on the
standalone components, see Create a Standalone Custom Lightning Web Component.
What's Next
Deploy your OmniScript to preview the Custom LWC's design and behavior. See Activate and Deploy an
LWC OmniScript.
See Also
Style OmniScripts
Add custom styling to OmniScripts by using static resources, extending an Element's Lightning web
component, overriding global stylesheets, or using SLDS design tokens.
View the behavior of each customization option in this page's table, and choose the solution that meets
your requirements.
See Also
Required Versions
Available beginning with Vlocity Insurance and Health Summer '20 and CME Fall '20.
NOTE
To add custom stylesheets to individual OmniScripts prior to Vlocity Insurance and Health
Summer '20, see Reference Stylesheet Names in an OmniScript's JSON.
NOTE
Beginning with Vlocity Insurance and Health Summer '20, Multi-Language OmniScripts
provide beta support for right-to-left languages. See Create Multi-Language OmniScripts.
1. In the LWC OmniScript Designer, click Setup, and click Styling Options.
2. In the Custom Lightning Stylesheet File Name or Custom Newport StyleSheet File Name field,
enter the name of that Static Resource that stores your custom Lightning or Newport styling.
3. (Optional) To add custom styling for right-to-left languages, see Reference Stylesheet Names in an
OmniScript's JSON.
4. Activate and preview the OmniScript to view your custom styling.
See Also
• Style OmniScripts
• Apply Global Branding to OmniScripts
• Create Multi-Language OmniScripts
Required Versions
Available beginning with Vlocity Insurance and Health Spring '20 and CME Fall '20.
NOTE
Beginning with Vlocity Insurance and Health Summer '20, Multi-Language OmniScripts
provide beta support for right-to-left languages.
"stylesheet": {
"newport": "",
"lightning": ""
}
3. Add the name of the static resource as a value to newport or lightning.
"stylesheet": {
"newport": "",
"lightning": "myCustomOmniScriptStyles"
}
4. (Optional) Available beginning with Vlocity Insurance and Health Summer '20. Add the name of the
static resource as a value to newportRtl or lightningRtl to display the styling for right-to-left
languages. If you are updating an existing OmniScript, add newportRTL and lightningRtl
manually.
"stylesheet": {
"newport": "",
"lightning": "",
"newportRtl": "myRtlNewportStyles",
"lightningRtl": ""
}
5. Activate and preview the OmniScript to view your custom styling.
See Also
• Style OmniScripts
• Apply Global Branding to OmniScripts
• Create Multi-Language OmniScripts
Required Versions
Available beginning with Vlocity Insurance and Health Summer '19 and CME Fall '19.
System Requirements:
1. Ensure that Node and NPM are installed on your local computer using the commands NPM outlines in
their documentation https://www.npmjs.com/get-npm. If you do not have Node or NPM, download them
from https://nodejs.org/en/download/.
2. Clone vlocityinc/newport-design-system from https://github.com/vlocityinc/newport-design-system
using a command-line interface. To see which components are provided by Newport, look at the UI/
components directory.
3. From the GitHub page, perform the latest steps to install the correct dependencies.
4. After installation is complete, launch the Storybook.js preview by issuing the command npm start.
5. Review the documentation in the Storybook preview.
6. Add customizations to your theme. See Customizing OmniScripts and Cards with Vlocity Newport
Design System.
7. Apply the OmniScript to individual OmniScripts or override the Newport theme for the entire org. See
Deploy and Apply Global Styling Changes using the Newport Design System.
8. Preview the changes in your Salesforce org by using the Newport Player in the OmniScript Designer
Preview.
See Also
OmniScript elements use SLDS Design Tokens for styling. Override tokens that have global access to
modify the appearance of your OmniScript.
NOTE
Design Tokens are not supported in Safari browsers, the classic OmniScript designer, and
Community pages.
Required Versions
Available beginning with Vlocity Insurance and Health Spring '20 and CME Fall '20.
1. In your OmniScript's Setup panel, click the Styling Options section or Lightning Design System
Design Tokens section.
2. In the Lightning Design System Design Tokens field, enter tokens by applying these changes:
a. Remove the dashes and apply camelcase to the token. For example, the token $spacing-xx-
small must be $spacingXxSmall.
b. Replace the token's $ symbol with --lwc-.
--lwc-spacingXxSmall
c. Set the token's value, and end the line for each token using a ;.
--lwc-spacingXxSmall: 10rem;
--lwc-spacingSmall: 5rem;
--lwc-spacingMedium: 2rem;
1. In an OmniScript's Script Configuration, select Edit as JSON to open the JSON editor.
2. Add the node designTokenOverride.
3. Set the node's value to a token, and edit the token's syntax by applying these changes:
a. Remove the dashes and apply camelcase to the token. For example, the token $spacing-xx-
small must be $spacingXxSmall.
b. Replace the token's $ symbol with --lwc-.
--lwc-spacingXxSmall
c. Set the token's value, and end the line for each token in the designTokenOverride node using
a ;.
See Also
Generate the OmniScript's Lightning web component by deploying your OmniScript. Add the generated
LWC to Lightning pages, Community pages, third-party applications, and custom LWCs to launch your
OmniScripts.
1. From OmniScript, click Activate to activate the OmniScript and deploy the OmniScript automatically.
2. (Optional) Click Deactivate, and then Activate to redeploy the OmniScript and apply updates or
resolve a deployment issue.
3. (Optional) Exclusive to the Classic Designer, if there is an issue with the deployment, redeploy the
OmniScript by clicking the Deploy LWC button in the Script Configuration properties.
NOTE
Ensure the OmniScript is active, then click the Deploy LWC button to redeploy the
OmniScript.
4. After deploying your OmniScript, launch your OmniScript from one of these experiences:
7. (Optional) Click the dropdown arrow, and click Download LWC to view the metadata for the
OmniScript.
What's Next
Add an LWC OmniScript to a Community or Lightning Page
See Also
2. Search for the name of your OmniScript by entering the OmniScript's unique Type, SubType, and
Language. Use the syntax Type/SubType/Language to search as the search does not ignore forward
slashes.
5. (Optional) Configure the inline options. See Display Inline OmniScripts on Lightning and Community
Pages.
6. (Optional) Control how right-to-left languages display. OmniScript provides beta support for right-to-left
languages. In the dir field, select whether the OmniScript displays ltr or rtl.Available beginning with
Vlocity Insurance and Health and Vlocity CME Summer '20.
7. (Optional) Change the device view in the Community Builder to Phone or Tablet to see how the
OmniScript displays on a mobile or tablet device. Available beginning with Vlocity Insurance and
Health and Vlocity CME Summer '20
1. In a Lightning Page's App Builder, search for the name of your OmniScript by entering the OmniScript's
unique Type, SubType, and Language. Use the syntax Type/SubType/Language to search as the
search does not ignore forward slashes.
4. (Optional) Configure the inline options. See Display Inline OmniScripts on Lightning and Community
Pages.
5. (Optional) Control how right-to-left languages display. OmniScript provides beta support for right-to-left
languages. In the dir field, select whether the OmniScript displays ltr or rtl. Available beginning
with Vlocity Insurance and Health and Vlocity CME Summer '20
6. (Optional) Modify the component's visibility by adding filters. For more information, see Dynamic
Pages.
7. (Optional) Change the device view of the App Builder to Phone to see how the OmniScript displays on
a mobile device. Available beginning with Vlocity Insurance and Health and Vlocity CME Summer '20
See Also
The wrapper component makes the OmniScript URL addressable to enable the passing of additional
parameters to the OmniScript. The Vlocity LWC OmniScript Wrapper component and the
vlocityLWCOmniWrapper are Aura components that wrap an OmniScript to make the OmniScript URL
addressable. For information on launching OmniScripts from a Card OS Action, see Launching an
OmniScript from an OS Action on a Card.
NOTE
If the LWC OmniScript Wrapper component exists on a record page, the record Id passes
into the OmniScript as the Context Id automatically.
Required Versions
Available beginning with the Vlocity Insurance and Health Winter '20, and Vlocity CME Winter '20.
2. Search for the Vlocity LWC OmniScript Wrapper component, and drag it onto the page.
3. Leave the fields in the component blank.
4. (Optional) To test an OmniScript using the LWC OmniScript Wrapper in the Community Builder:
1. In the LWC OmniScript Wrapper, check the Stand Alone Mode checkbox.
2. In the LWC OmniScript Name field, enter the component name of your OmniScript with the prefix
c:. The OmniScript's component name is a combination of the Type, SubType, and Language of
your OmniScript without spaces.
c:customTestEnglish
To configure the URL to access the Vlocity LWC OmniScript Wrapper component:
1. Configure the URL for the Community page in a URL field, such as a URL in a Card Action or text
editor.
Example URL for a Community named AccountCommunity that has a page named AccountPage:
https://exampleURL.force.com/AccountCommunity/s/AccountPage?
2. In your OmniScript, click the How to Launch Activated Script button.
3. In the How to Launch modal, click the LWC tab.
4. In the Vlocity Aura Wrapper section of the LWC tab, copy the text appearing after the question mark.
https://exampleURL.na130.visual.force.com/lightning/cmp/
namespace__vlocityLWCOmniWrapper?
c__target=namespace:myLWCTestEnglish&c__layout=lightning
• The c__target parameter is set to a component indicated by c:. The component is the Name of your
OmniScript combined with the Type, SubType, and Language. This component passes into the LWC
OmniScript Name field of the Vlocity LWC OmniScript Wrapper.
• The c__layout parameter passes the layout to the Layout field of the Vlocity LWC OmniScript
Wrapper.
5. In the c__target parameter of the URL, replace the namespace with c.
c__target=c:myLWCTestEnglish&c__layout=lightning
6. Paste the copied text to the end of the Community Page URL.
https://exampleURL.force.com/AccountCommunity/s/AccountPage?
c__target=c:myLWCTestEnglish&c__layout=lightning
7. (Optional) Pass additional parameters by separating them with an ampersand, &. Parameters must use
the c__ prefix. For example, to pass "AccountName": "Acme" into the OmniScript's data JSON,the
syntax must be &c__AccountName=Acme.
8. (Optional) Fire events from the Navigate Action by passing an event to the OmniScript in the URL
parameter c__vlocEvents. The Navigate Action element must have the checkbox property LWC
PubSub Message? enabled to fire the event. To refresh Cards using events, see Reloading a Card
After Updating an LWC OmniScript.
1. In your LWC OmniScript, click the How to Launch Activated Script button.
2. In the How to Launch modal, click the LWC tab.
3. In the Vlocity Aura Wrapper section of the LWC tab, copy the relative path of the URL.
https://exampleURL.na130.visual.force.com/lightning/cmp/
namespace__vlocityLWCOmniWrapper?
c__target=namespace:myLWCTestEnglish&c__layout=lightning
4. (Optional) Launch the OmniScript using a Newport layout by clicking Newport and copying the relative
path.
5. (Optional) When using the URL path in a production org, you must replace the namespace of your
component. In the c__target parameter of the URL, replace the namespace with c.
c__target=c:myLWCTestEnglish&c__layout=lightning
6. (Optional) Prefill an OmniScript by assigning prefill values with the prefix &c__ placed before the key.
For example, to pass "AccountName": "Acme" into an OmniScript's data JSON, add the parameter
using the syntax &c__AccountName=Acme. For more information on prefilling data, see Load Data
into OmniScript Elements.
lightning/cmp/NS__vlocityLWCOmniWrapper?
c__target=c:myTypeExampleEnglish&c__AccountName=Acme
7. (Optional) When using the wrapper in a console app, add a Console Tab Icon and a Console Tab Label
by setting the c__tabIcon and c__tabLabel parameters. The c__tabIcon accepts an SLDS Icon , and
c__tabLabel accepts plain text. For example, &c__tabLabel=Custom
Label&c__tabIcon=standard:account renders the console tab shown in this example image.
8. (Optional) To view additional parameters for the vlocityLWCOmniWrapper, see Launch Lightning Web
Component URLs with vlocityLWCWrapper.
9. (Optional) Fire events from the Navigate Action by passing an event to the OmniScript in the URL
parameter c__vlocEvents. The Navigate Action element must have the checkbox property LWC
PubSub Message? enabled to fire the event. To refresh Cards using events, see Reloading a Card
After Updating an LWC OmniScript.
10. Paste the URL wherever you plan to invoke the OmniScript from and preview the functionality.
1. From Setup, enter Object Manager into the Quick Find search.
2. Select an Object, and click Buttons, Links, and Actions.
3. Click New Button or Link.
4. Set Display Type to Detail Page Button.
5. Set Content Source to URL.
6. Configure the URL value to equal the relative path of the vlocityLWCOmniWrapper. For information on
obtaining the relative path, see Launching an LWC OmniScript in Lightning.
namespace__vlocityLWCOmniWrapper?
c__target=c:myLWCTestEnglish&c__layout=lightning
An inline OmniScript renders as a button that, when clicked, launches the OmniScript inline. The record id
of a page passes into an inline OmniScript as a Context Id automatically. You can render more than one
inline OmniScript on a page beginning in Vlocity Insurance and Health Summer '20 and CME Fall '20 .
Required Versions
Available beginning with Vlocity Insurance and Health Spring '20 and Vlocity CME Summer '20.
NOTE
Running OmniScripts in inline mode disables SEO Enabled and Save For Later.
1. From the Community or App Builder, add an activated OmniScript to a page. For information on adding
OmniScripts to a Lightning page, see Add an LWC OmniScript to a Community or Lightning Page.
2. In the OmniScript component, check the inline checkbox.
See Also
NOTE
When passing data from an LWC into an embedded LWC OmniScript's prefill property, the
string values "true" and "false" will convert to boolean values. To avoid this issue,
stringify your values by adding additional quotation marks escaped by backslashes. For
example, to convert this prefill object prefill = { "Multi-select1":"true"} the
new syntax must be prefill = { "Multi-select1":"\"true\""}.
1. In an OmniScript Designer, copy the LWC OmniScript tag using one of these options:
• In the OmniScript Designer, click the dropdown menu, click How To Launch, and copy one of the
component tags.
• In the Classic Designer, copy the LWC OmniScript component tag from the Script Configuration
properties.
• In the Classic Designer, copy the LWC OmniScript component code from one of the examples found
in the How to Launch activated script section of the OmniScript.
2. In your component's HTML file, enter the component tag to embed the OmniScript component.
<template>
<c-doc-example-english layout="lightning"></c-doc-example-english>
</template>
this.template.addEventListener( 'omniaggregate');
2. Create a separate function that handles the response of the event and assigns the value to a variable.
omniUpdateHandler(event) {
if(event.detail) {
this.omniDataJSON = event.detail;
// do something with the data JSON
}
3. Add the function that handles the response as an argument to the event listener so that it fires
whenever the OmniScript data JSON updates.
this.template.addEventListener( 'omniaggregate',
this.omniUpdateHandler.bind(this));
OmniOut enables you to display OmniScripts and connect to Salesforce from a content management
system's external website. An OmniScript webform handles user input, stores data in a browser-side JSON
object, and sends and receives data to and from Salesforce and other APIs. Run an OmniScript on your
external site by adding an OmniScript to the OmniOut project, integrating OmniOut into your application,
and deploying your application to your CMS.
Required Versions
Available beginning with Vlocity Insurance and Health Summer '20 and CME Summer '20.
NOTE
CMS configuration is separate from OmniOut. You must complete your CMS configuration
before using OmniOut.
1. Download the OmniOut static resource from Salesforce and open it in Visual Studio Code. See
Download the LWC OmniOut Static Resource.
2. Install dependencies for the OmniOut project. See Install LWC OmniOut Dependencies.
3. (Optional) Add any nested custom LWCs that exist in your OmniScript before adding an OmniScript to
OmniOut. See Include Nested Custom LWCs in Your OmniOut OmniScript.
4. Download and add your OmniScript to the OmniOut project. See Add an OmniScript Lightning Web
Component to OmniOut.
5. Create a Connected App to enable a Salesforce API connection. See Create a Connected App for
OmniOut.
6. (Optional) Configure OmniOut to use multi-language OmniScripts. See Configure Multi-Language in
OmniOut
7. Run OmniOut in development mode to view and test your OmniScript. See Run OmniOut in
Development Mode
8. (Optional) Control where OmniScripts direct users by using the Navigate Action. See Navigate to a URL
from an OmniOut App.
9. (Optional) Add OmniOut to your application. This step is required if you are not deploying to Adobe
Experience Manager. See Move OmniOut into Your App.
10. (Optional) Beginning with Spring '21, Add OmniOut to an Adobe Experience Manager application. See
Add OmniScripts to Adobe Experience Manager.
11. (Optional) Add custom styling to your OmniScript using stylesheets. See Add Custom Stylesheets to
Your OmniOut Application.
12. Build a connection in your application. See Connect Your OmniOut App.
The LWC OmniOut static resource includes JS, HTML, CSS, and other files necessary for OmniScript to
run outside of Salesforce.
1. In your Salesforce Org, navigate to Setup, and in the quick find box, enter Static Resources.
2. In the Static Resources page, locate and select the vlocityomnioutlwc resource.
3. Click on View File to download the static resource.
4. Open the uncompressed downloaded file in Visual Studio Code.
What's Next
Install LWC OmniOut Dependencies
See Also
• Run LWC OmniScripts Outside of Salesforce with LWC OmniOut
• Create a Connected App for OmniOut
_auth=Authentication_Key
3. In a new terminal shell, install the npm packages by running the command npm install.
4. Run the command npm run watch in the terminal console to run the development server.
5. Access the local development server at localhost:4002 to view the demo application.
What's Next
Add an OmniScript Lightning Web Component to OmniOut
See Also
Nested custom Lightning web components referenced by a custom Lightning web component in the
OmniScript are not included by default. To include nested custom LWCs, map them to a dummy element in
the Element Type To LWC Component Mapping section.
1. From OmniScript Setup, scroll to the Element Type To LWC Component Mapping section.
2. In the Element Type field, enter a fake element type. For example, nestedElement.
3. In the Lightning Web Component field, enter the name of your nested custom Lightning web
component. For example, nestedElement.
What's Next
Add an OmniScript Lightning Web Component to OmniOut
See Also
• Run LWC OmniScripts Outside of Salesforce with LWC OmniOut
• Navigate to a URL from an OmniOut App
NOTE
If your OmniScript includes Custom LWCs from a managed package, the Custom
LWCs may not work. Custom LWCs that exist in a managed package only work if they
are off-platform compatible.
3. Copy the component located in the lwc folder of your downloaded component into the ./src/modules/
vlocityomniscript folder of your OmniOut LWC project.
4. In an OmniScript Designer, copy the OmniScript tag using one of these options:
• In the LWC OmniScript Designer, click the dropdown menu, click How To Launch, and copy one of
the component tags.
• In the Classic Designer, copy the LWC OmniScript component tag from the Script Configuration
properties.
• In the Classic Designer, copy the LWC OmniScript component code from one of the examples found
in the How to Launch activated script section of the OmniScript.
5. In Visual Studio Code, open the ./src/index.html file and replace the component tag with your
OmniScript component tag.
6. Edit your component tag by replacing c-- with vlocityomniscript- and save the file.
7. Open the ./src/index.js file and take these steps to import and define your component:
a. Replace the sample component import with your component's file path.
b. Replace the sample component tag with your modified component tag and remove the closing tag
and angle brackets.
customElements.define('vlocityomniscript-type-example-subtype-example-
english', buildCustomElementConstructor(VlocApp));
NOTE
When running a multi-language OmniScript, the run-mode="localScriptDef"
attribute forces the OmniScript to use the locally defined custom labels. If run-mode
is not present, a connection is made to retrieve the custom labels.
9. (Optional) In the OmniScript component tag, add dir="rtl" to force the OmniScript styles to load
right-to-left regardless of the OmniScript language. Without this attribute, right-to-left languages still
load with right-to-left styling. OmniScript provides beta support for right-to-left styling.
<vlocityomniscript-type-example-subtype-example-english run-
mode="localScriptDef" dir="rtl"> </vlocityomniscript-type-example-
subtype-example-english>
10. (Optional) In Index.html, uncomment the Newport stylesheets to apply Newport styling.
12. In Index.html, include the SLDS styles even when using Newport styles, if these elements exist in your
OmniScript:
What's Next
Create a Connected App for OmniOut
See Also
You must create a Connected App to make external calls from OmniOut. Connected Apps provide OmniOut
with an access token that enables proxies and login authentication to work. For more information, see
Connected Apps (Salesforce documentation).
1. From Salesforce Setup, search for Apps in the Quick Find box, and click App Manager.
2. Click New Connected App.
3. In the Connected App Name field, enter a Name for your Connected App.
4. Enter an API name that is used to refer to the Connected App from your program.
5. Enter a contact email.
6. Check Enable OAuth Settings.
7. Enter a callback URL. The callback URL is the URL for the App's public site.
8. Move the Fullaccess (full) scope or Access and manage your data (api) into Selected OAuth
Scopes.
9. Save your Connected App.
10. From your Connected App page, click Edit Policies.
11. In the Permitted Users field, select All users may self-authorize, and save the Connected App.
12. Copy the Consumer Key and Consumer Secret. These values populate the client_id and
client_secret.
13. Open the OmniOut project in Visual Studio Code, and in the terminal, perform these tasks:
a. Enter this command without running it.
Value Description
USERNAME Replace with your Salesforce username.
PASSWORD Replace with your Salesforce password.
CLIENTID Replace with your Connected App's Consumer Key.
CLIENTSECRET Replace with your Connected App's Consumer Secret.
c. (Optional) In the command, enter the appropriate URL for your Salesforce environment. By
default, the URL is configured for a Sandbox org.
Environment URL
Developer Org https://login.salesforce.com/services/oauth2/token
Sandbox Org https://test.salesforce.com/services/oauth2/token
d. Run the command, and copy the Access Token and Instance URL.
What's Next
Run OmniOut in Development Mode
See Also
Access custom labels in your OmniScript directly from Salesforce or use custom labels defined in local files.
Control which language displays by using a language code. The language code searches locally defined
language files or a Salesforce connection to access a language's custom labels. If the OmniScript
component tag's run-mode attribute is present and set to localScriptDef, the OmniScript uses the locally
defined custom labels. If run-mode is not present, the OmniScript accesses the custom labels through a
Salesforce connection.
1. After adding your multi-language OmniScript to OmniOut, in the VSCode command line, enter this
command, and replace LANGCODE with a Salesforce language code:
NOTE
If both options are present, the component tag property overrides the URL parameter.
export const es = {
"New": "Nuevo"
}
7. (Optional) Test the multi-language OmniScript In the command line:
a. In the command line, enter and run the command npm run watch.
b. Click the localhost link that appears in the command line.
c. In your browser, edit the URL to include a language code.
localhost:4002/myOmniScript?LanguageCode=en_US
What's Next
Run OmniOut in Development Mode
See Also
Configure endpoints in the Navigate Action and create redirects for the URLs in your OmniOut app.
OmniOut supports all Navigate Action types, including URL generation and browser location updates.
Application authors must decide how to handle the generated URLs based on the project's unique
requirements.
1. View the generated URL format for each of these Navigate Action page reference types:
OR
/logout
Named Page /{pageName}?{...targetParameters} /home
Navigation Navigation items, such as tabs, transform the item /my-custom-tab
Item name into kebab-case.
Object Page /o/{sObjectApiName}/home? /o/case/home
{...targetParameters}
Record /r/{sObjectApiName}?id={objectId} /r/account?id=0012E00001qF0l2QAC
Page {...targetParameters}
Record /r/{sObjectApiName}? /r/case?
Relationship id={objectId}&rel={relationshipApiName} id=0012E00001qF0l2QAC&rel=CaseComments
Page
Vlocity /vlocityomniscript/ /vlocityomniscript/
OmniScript {OmniScriptComponentName} demoNavigateActionEnglish
Web Page A web URL. Navigate Action does not format Web <https://trailhead.salesforce.com>
Page URLs.
2. (Optional) If your application has a predetermined URL structure that does not match the generated
URL, take these steps to redirect the URLs:
a. In the OmniOut project, create this file ./src/modules/vlocityoverride/redirects.js
b. In redirect.js, add a map object to contain your redirect mappings.
]);
d. (Optional) Include wildcards in your URL to redirect all object pages to a single page. For example,
redirect case object and case record navigate actions to a single page with the endpoint /case.
Each of these generated URLs: /o/case/home, /r/case?id=0012E00001qF0l2QAC, and /r/case?
id=0012E00001qF0l2QAC&rel=CaseComments would point to /case. The URL parameters for
each generated URL is preserved.
What's Next
Move OmniOut into Your App
See Also
3. Set this.namespace equal to the namespace of your package namespace. To find your namespace,
see Viewing the Namespace and Version of the Vlocity Package.
4. Save your file.
5. In the terminal, enter and run the command npm run watch.
What's Next
Move OmniOut into Your App
See Also
1. In your OmniOut project, run the command npm run build in your Visual Studio Code terminal. The
command compiles OmniOut into a dist folder.
2. In the dist folder, copy the files your OmniScript requires to run from the OmniOut project to your App.
4. In the index.html file, select and copy your OmniScript component tag into your app's index.html file.
<vlocityomniscript-doc-example-english run-mode="localScriptDef"></
vlocityomniscript-doc-example-english>
What's Next
Connect Your OmniOut App
See Also
1. Create a Salesforce connection in AEM. See Integrate Salesforce Cloud Services into Adobe
Experience Manager.
2. Set resource paths in LWC OmniOut to load Lightning and Newport styles into your app. See Set the
LWC OmniOut Resource Path.
3. Deploy LWC OmniOut to AEM. See Deploy LWC OmniOut to Adobe Experience Manager.
4. Add the LWC OmniOut component to an AEM page. See Add the Vlocity LWC OmniOut Component to
Adobe Experience Manager.
1. Open your AEM instance and click the main logo in the top left corner.
2. Click the Tools icon, and select Deployment.
3. Select the Cloud Services card and scroll down to the Salesforce section. Click Show Configurations.
4. Click the [+] link next to Available Configurations and enter the necessary information and click Create.
This opens a new page and modal for the Cloud Services Configuration.
5. To create consistency across platforms, enter the name of the Connected App that you created in
Salesforce into the Title and Name fields of the AEM Configuration modal. Leave the modal open.
6. Navigate back to the Connected App page in Salesforce.
7. In Callback URL, enter the AEM URL with Administrator Access: http://localhost:4502/etc/
cloudservices/salesforce/testsalesforceconnect.html where testsalesforceconnect is
the title of your Cloud Services connection.
8. Navigate back to the Connected App page and paste the URL into the Callback URL field.
9. Click Save.
10. From the Connected App record page, copy the Consumer Key.
11. Return to the AEM modal and paste the Consumer Key into the Customer Key field.
12. From the Connected App record page, copy the Consumer Secret.
13. Return to the AEM modal and paste the Consumer Secret into the Customer Secret field.
14. Click Connect to Salesforce. This brings you to a login screen for Salesforce. Log in to the
appropriate org and click Allow. A modal window will pop up indicating that the connection was
successful. If you receive an error, wait 10 minutes and attempt to connect again.
15. Click Ok to save the settings.
What's Next
Deploy LWC OmniOut to Adobe Experience Manager
See Also
• Add the Vlocity LWC OmniOut Component to Adobe Experience Manager
• Run LWC OmniScripts Outside of Salesforce with LWC OmniOut
What's Next
Deploy LWC OmniOut to Adobe Experience Manager
See Also
• Run LWC OmniScripts Outside of Salesforce with LWC OmniOut
• Add OmniScripts to Adobe Experience Manager
1. In VisualStudio, open the LWC OmniOut resource and locate the ./aem.ui.apps/pom.xml file.
2. In the ./aem.ui.apps/pom.xml file, enter your AEM server username, password, host, and port in
these tags:
What's Next
Add the Vlocity LWC OmniOut Component to Adobe Experience Manager
See Also
1. From an AEM page, click on the + symbol to add a component. This opens a modal with a list of
components.
2. Select the Vlocity LWC OmniOut component.
3. From the component, click the configure icon, a wrench symbol, to open the component's Edit Dialog.
4. From the Vlocity LWC OmniOut Edit Dialog, configure these Vlocity LWC OmniOut component
options:
a. In Configuration, select the Salesforce cloud connection that connects your Salesforce
Connected App.
b. In Namespace, enter the namespace of your Vlocity package. See Viewing the Namespace and
Version of the Vlocity Package.
c. In LWC Element Name, enter the name of your OmniScript using the component tag name
without brackets.
For example, if your OmniScript had these properties:
• Type: doc
• SubType: Test
• Language: English
The correct syntax to use is vlocityomniscript-doc-test-english.
d. In Layout, select the Lightning or Newport design system.
e. (Optional) In Prefill Attribute, enter serialized JSON data to prefill elements.
f. (Optional) In Google Maps API Key, enter a Google Maps API Key if one is used in your
OmniScript.
g. (Optional) Check Use Proxy if your application is using a proxy to connect to your Salesforce
instance.
h. (Optional) In Proxy URL, enter your proxy URL.
i. (Optional) Check Use Local Definition to use the local OmniScript definition. The component will
not verify if the OmniScript is active in your Salesforce org.
j. (Optional) Check Load SLDS Resources to load SLDS styles, images, and icons into your
OmniScript. This option is required if you use File or Image in your OmniScript.
k. (Optional) Check Load Newport Resources to load Newport styles into your OmniScript.
l. (Optional) Check Load PDF Resources if you are using a PDF Action in your OmniScript.
5. Save your component and publish your AEM application.
6. Test your AEM application and run the OmniScript.
See Also
Custom stylesheets are not included in the OmniScript off-platform download metadata. You must add them
to your application after building the dist folder. All custom styling done in a custom LWC is included in the
OmniScript's off-platform download by default.
1. In Salesforce Setup's Quick Find box, enter Static Resources, and click Static Resources.
2. Locate and click the static resource that contains your CSS style sheet.
3. Click View File to download the static resource.
4. Copy the downloaded file into your app's /styles folder.
5. Add a reference to that file in your app's index.html file to load the custom style sheet.
Example
What's Next
Connect Your OmniOut App
See Also
Configure a connection object to connect to the Salesforce Connected App. Connections are unique to your
app's requirements and must be configured outside the scope of OmniOut. View the connection object
template and sample apps in this section to see examples of how to configure a connection.
1. (Optional) Download, run, and modify sample OmniOut apps. See Sample OmniOut Apps.
2. Create a Connection Object in OmniOut
After running the sample app, modify it to host your LWC OmniScripts.
1. Select a sample app from the table on this page to download and run the connection example.
What's Next
Create a Connection Object in OmniOut
The React app acts as the frontend of your website while the express app handles the backend calls. Each
sample application has separate dependencies you need to install to run them both together.
npm install
4. Open the ./app.js file, locate these keys, and set them equal to the appropriate values:
Key Value
namespace The namespace of your Vlocity managed package. See Viewing the Namespace and Version of the Vlocity
Package.
instanceUrl The instanceUrl retrieved from your Connected App. See Create a Connected App for OmniOut.
accessToken The accessToken retrieved from your Connected App. See Create a Connected App for OmniOut.
5. In the Visual Studio Code terminal, run this command to start the application:
npm start
6. In a browser, go to localhost:3001 to view the application.
npm install
3. Open the ./src/connection.js file, locate these keys, and set them equal to the appropriate values:
Key Value
_proxyUrl http://localhost:3001/api. This is the URL where your express backend is located.
instanceUrl The instanceUrl retrieved from your Connected App. See Create a Connected App for OmniOut.
namespace The namespace of your Vlocity managed package. See Viewing the Namespace and Version of the Vlocity
Package.
4. In the Visual Studio Code terminal, run this command to start the application:
npm start
5. In a browser, go to localhost:3000 to view the application.
6. From the navigation bar, click the Quote link to view an example OmniScript.
7. From the navigation bar, click the Contact link to view an inline OmniScript example.
What's Next
Modify a Sample OmniOut React App
See Also
npm install
4. Open ./src/App.js, and in the jsforce.browser.init object, locate these keys and set them equal
to the appropriate values:
Key Value
clientId The Connected App's Consumer Key. See Create a Connected App for OmniOut.
redirectUri The Connected App's redirect URL. See Create a Connected App for OmniOut.
5. Open ./src/connection.js, locate the namespace key, and enter your package namespace as the
value. For information on finding your namespace, see Viewing the Namespace and Version of the
Vlocity Package.
6. In the Visual Studio Code terminal, run this command to run the sample application at localhost:3000:
npm start
7. From the navigation bar, click the Login button, enter your credentials, and click Allow to log in to the
org.
8. After logging in, from the navigation bar, click the Quote link to view an example OmniScript.
9. From the navigation bar, click the Contact link to view an inline OmniScript example.
What's Next
Modify a Sample OmniOut React App
See Also
NOTE
The instructions on this page do not apply to the LWC Sample App because the LWC
Sample app is a standalone app. See Download and Run the OmniOut LWC Sample App.
1. In your OmniOut project, run the command npm run build in your Visual Studio Code terminal. The
command compiles OmniOut into a dist folder.
2. In the dist folder, copy the files your OmniScript requires to run from the OmniOut project to the
sample app's ./public folder.
4. In the dist folder's index.html file, copy your OmniScript component tag.
<vlocityomniscript-doc-example-english run-mode="localScriptDef"></
vlocityomniscript-doc-example-english>
5. In the sample app's ./src/pages/Quote.js or ./src/pages/Contact.js files, replace the existing sample
component tag with your OmniScript component tag.
npm start
See Also
• Create a Connection Object in OmniOut
• Run LWC OmniScripts Outside of Salesforce with LWC OmniOut
1. From Salesforce Setup, enter Static Resources into the Quick Find box, and click Static
Resources.
2. From Static Resources, click vlocityomnioutlwcsample.
3. Click View File to download the sample app.
4. Uncompress the downloaded file and open it in Visual Studio Code.
5. Locate the README.MD file, click it, and follow the README's instructions.
A connection object must be present for every type of connection, including when a proxy is present. The
connection object exposes the instance URL, namespace, and request function. You must create an event
handler to pass the connection object after receiving OmniOut's omnioutcomponentready event. The
templates on this page are examples that developers can use for reference material when building a
connection.
NOTE
The connection process is unique to each application and must be done outside the scope
of OmniOut.
/**
* Once the component is ready, an event is dispatched to let the DOM
knows that a connection is expected.
**/
document.addEventListener('omnioutcomponentready', evt => {
if (evt.detail && evt.detail.omnioutcomponent) {
evt.srcElement.connection = new YourOmniOutConnection();
}
});
2. Create a connection object.
Example Connection Object
function BaseConnectionExample() {
/**
* Expose the request method
**/
this.request = request;
/**
* @type {string} The namespace of the package
**/
this.namespace = '';
/**
* @type {string} The instance URL of your org
**/
this.instanceUrl = '';
/**
* A function that executes the HTTP requests.
* @type {string} The target URL.
* @type {Object} The data that will be sent to the target URL.
* @returns {Promise} A promise with the
**/
function request(url, data) {
return connection.requestPost(url, data);
}
}
3. Configure additional connection options outside of OmniOut.
See Also
OmniScript's cancel functionality enables users to cancel out of an OmniScript from a Step by clicking a
cancel link. The cancel option directs the user to a Salesforce experience set in the cancel options or a
Navigate Action.
1. From OmniScript's Setup, expand Cancel Options, and click Enable Cancel.
2. In Field Label, enter the Cancel option's display text. The text displays as a clickable link in every
Step.
3. (Optional) Check Show prompt before cancel? and enter text into Cancel Message to display a
prompt message. The prompt enables users to return to the OmniScript when a user clicks cancel.
4. (Optional) Replace the existing entry in the browser history by setting the Replace? property to Yes. If
Replace? is set to Yes, users cannot navigate back to the OmniScript.
5. Determine the Salesforce experience that the cancel link will direct to by clicking and selecting a
PageReference type. This page contains further instructions for each PageReference Type that
Cancel Options support. For information on PageReference Types, see PageReference Types.
3. In the Label field, enter the Cancel option's display text. The text displays as a clickable link in every
Step.
NOTE
Cancel cannot be activated or deactivated for individual steps.
4. (Optional) Disable confirmation prompts from displaying to users by unchecking Prompt before
cancel?.
5. (Optional) In the Cancel Message field, enter a custom message to display to users in the
confirmation prompt.
6. (Optional) To collapse the script and view the current page, set the Navigate Action's PageReference
type to Current Page with no additional configuration.
7. (Optional) Determine where the cancel option directs users by configuring the Navigate Action. For
more information, see Navigate Action.
What's Next
Deploy the OmniScript and add it to a page to test the cancel functionality. See Activate and Deploy an
LWC OmniScript.
See Also
SEO OmniScripts store the state of an OmniScript in the URL by setting the c__step parameter to the name
of an active Step automatically. Direct users to a specific step in the OmniScript by setting the c__step
parameter in SEO URLs to a Step name in the OmniScript. Refreshing the page does not cause the
OmniScript to begin at the first Step because the Step is stored in the c__step parameter. Include additional
parameters to store the state of elements, insert data into the OmniScript's data JSON, prefill elements, or
conditionally fire OmniScript Actions. Beginning with Vlocity Insurance and Health and Vlocity CME
Summer '20, storing the state enables a user to navigate to previous or next steps using their browser's
back and forward buttons.
NOTE
SEO is automatically disabled when running Inline OmniScripts. See Display Inline
OmniScripts on Lightning and Community Pages.
NOTE
It is possible to create OmniScripts that store the state in the c__step parameter without
using the OmniScript for SEO purposes. See Create Stateful LWC OmniScripts.
1. In the OmniScript's Setup section, check Enable SEO. The OmniScript automatically adds the c__step
parameter to store the state of a Step.
2. (Optional) Store the state of elements in your OmniScript, prefill elements, or pass data into the
OmniScript's data JSON using Additional SEO URL Parameters.
a. In the Additional SEO URL Parameters field, enter a parameter with the prefix c__. When
storing an element's state or prefilling an element, use the name of the element as your
parameter. For example, the parameter for an element named Text1 is c__Text1.
b. Set the parameter equal to an element in the OmniScript using merge field syntax or a static
value. If there is more than one parameter present, separate the parameters with an & symbol.
See Access OmniScript Data JSON with Merge Fields. For example, to store the state of the Text1
element, set the c__Text1 parameter equal to %Text1%.
3. Activate the OmniScript, and add it to a Community. See Add an LWC OmniScript to a Community or
Lightning Page.
4. Grant guest user access in your Community.
5. Add the OmniScript URL to the Community's sitemap.xml file. See Set Up SEO for Your Community.
6. Use a search engine, such as Google, to test the SEO functionality.
7. (Optional) Beginning with Vlocity Insurance and Health and Vlocity CME Summer '20, test the
OmniScript's forward and backward navigation using a browser's forward and back buttons.
See Also
OmniScripts store the state of an OmniScript in the URL by setting the c__step parameter to the name of
an active Step automatically. Direct users to a specific step in the OmniScript by setting the c__Step
parameter in the URL to a Step name in the OmniScript. Refreshing the page does not cause the
OmniScript to begin at the first step because the Step is stored in the c__step parameter. Include additional
parameters to store the state of elements, insert data into the OmniScript's data JSON, prefill elements, or
conditionally fire OmniScript Actions. Beginning with Vlocity Insurance and Health and Vlocity CME
Summer '20, storing the state enables a user to navigate to previous or next steps using their browser's
back and forward buttons.
NOTE
To make a stateful LWC appear in online searches, see Enable SEO for LWC OmniScripts.
1. In the OmniScript's Setup section, check Enable SEO. The OmniScript automatically adds the c__step
parameter to store the state of a Step.
2. (Optional) Store the state of elements in your OmniScript, prefill elements, or pass data into the
OmniScript's data JSON using Additional SEO URL Parameters.
a. In the Additional SEO URL Parameters field, enter a parameter with the prefix c__. When
storing an element's state or prefilling an element, use the name of the element as your
parameter. For example, the parameter for an element named Text1 is c__Text1.
b. Set the parameter equal to an element in the OmniScript using merge field syntax or a static
value. If there is more than one parameter present, separate the parameters with an & symbol.
See Access OmniScript Data JSON with Merge Fields. For example, to store the state of the Text1
element, set the c__Text1 parameter equal to %Text1%.
3. Activate the OmniScript, and add it to a Lightning or Community Page. See Add an LWC OmniScript to
a Community or Lightning Page.
4. (Optional) Beginning with Vlocity Insurance and Health and Vlocity CME Summer '20, test the
OmniScript's forward and backward navigation using a browser's forward and back buttons.
See Also
1. In an LWC enabled OmniScript, drag the Custom LWC element into a Step. For information on creating
an LWC OmniScript, see Create an LWC OmniScript.
2.
3. In the Custom LWC's Lightning Web Component Name property, enter the FlexCard component's
name and prepend cf to the beginning of the name. For example, a FlexCard named Account Card
must be entered as cfAccountCard.
4. In Property Name, enter a property that the FlexCard expects to receive by converting the property to
an HTML attribute format. Three options enable you to pass data into the FlexCard from your
OmniScript. Each data option requires you to pass data as an HTML attribute. For example, if a
FlexCard receives the property recordId, you must enter record-id in the property name field to
pass the property correctly.
AND Set records equal to an object containing a record or an array of records. FlexCards parses over these
records and maps the nodes to FlexCard fields.
records
6. (Optional) Rerender and refresh the FlexCards save state whenever a user navigates to the step by
taking these actions:
a. In the FlexCards Designer, disable OmniScript support.
b. In the OmniScript Designer, open the Custom LWC element and check Standalone Mode. For
information on Standalone Custom LWCs, see Create a Standalone Custom Lightning Web
Component.
7. Save and Activate the Script.
8. Preview the OmniScript.
NOTE
LWC OmniScripts using custom Lightning web components must be active to preview
the OmniScript.
See Also
Render a Vlocity Card Lightning Web Component in an OmniScript by using the Custom LWC Element.
1. Ensure your Vlocity Card is LWC enabled and includes OmniScript support. For more information on
including OmniScript support, see Creating an LWC Card Layout.
2. In an LWC enabled OmniScript, drag the Custom LWC element into a Step. For information on creating
an LWC OmniScript, see Create an LWC OmniScript.
3. In the Custom LWC's Lightning Web Component Name property, enter the name of the Vlocity Card
Component.
4. Save and Activate the Script.
5. Preview the OmniScript.
NOTE
LWC OmniScripts using custom Lightning web components must be active to preview
the OmniScript.
IMPORTANT
Your organization must have Salesforce Knowledge enabled to use this feature.
From the OmniScript Designer Preview, you can open the article in a new console or browser tab. Or you
can view the article inside the OmniScript Step or in a modal window.
IMPORTANT
Before enabling Lightning Knowledge, see Lightning Knowledge Limitations.
1. From the Setup panel, expand the Knowledge Options section and check Enable Knowledge.
2. (Optional) To integrate Lightning Knowledge with OmniScript check Use Lightning Knowledge.
Lightning Knowledge must be enabled in your org.
3. (Optional) Select Display Outside OmniScript to launch Knowledge base articles outside of an
OmniScript using the Vlocity OmniScript Knowledge Base component in a Community or Lightning
page. For information on configuring this option, see Open Knowledge Base Articles Outside an
OmniScript.
4. In the Knowledge Article Type Query Fields Map section:
a. In Article/Record Type API Name, enter the Article Type API name for Classic Knowledge or
enter the Record Type API name when Use Lightning Knowledge is enabled.
5. To query additional Article or Record types, click + Add New Knowledge Type Field Map and repeat
Step 4.
6. If Use Lightning Knowledge is enabled, enter the Lightning Knowledge object's API name into
the Lightning Knowledge Object API Name field, such as namespace__Knowledge__kav.
7. (Optional) In Label, enter the text displayed above the Knowledge component, such as Suggested
Articles.
See Also
1. From the OmniScripts Designer, click the Step you want to display the Knowledge component.
2. In the Properties panel, expand the Knowledge Options section, and click Enable Knowledge.
3. Update Language from the default English to your preferred language.
4. Update Public Status from the default is Online to Archive or Draft.
5. In the Keyword field, enter the text to search for. This can be literal text, such as Service
Disconnect. Or, you can use merge fields for variable data. For example, enter %RouterType% to
enable your users to enter keywords to search for in a Text element whose Name is RouterType. For
information on merge fields see, Access OmniScript Data JSON with Merge Fields.
6. To filter articles by their Data Category, enter a SOQL query in the Data Category Criteria field. For
example, enter Troubleshooting__c AT (Router__c) to show articles from the sub-category
Router under the parent category Troubleshooting. For more information on building queries for
Data Categories, see With Data Category filtering Expression
NOTE
You do not need to enter WITH DATA CATEGORY in your query.
7. (Optional) When Lightning Knowledge is enabled, to filter the record types queried by the Step, enter
the Record Type's API name into the Record Type Filter field. For multiple Record Types, enter a
comma-separated list with no spaces, such as FAQ,INFO.
See Also
The Vlocity OmniScript Knowledge Base component renders Knowledge base articles side-by-side with an
OmniScript or as a standalone component. When opening Knowledge Base articles from an OmniScript,
OmniScript passes specific information into the component to search the Knowledge base and render
articles.
1. In your OmniScript's Setup panel, expand Knowledge options, and select Enable Knowledge.
2. Select Lightning Knowledge, and configure the remaining fields using the instructions in Setup
OmniScript to Work with Salesforce Knowledge.
3. Confirm Display Outside OmniScript is enabled.
4. (Optional) Configure Knowledge Options on the Step level. See Configure Knowledge for Individual
Steps in the OmniScript.
5. Deploy the OmniScript by clicking the Activate Version.
6. Open the Lightning App Builder and create a new page with a layout containing at least two regions.
See Lightning App Builder.
7. From the Lightning page, drag the deployed LWC OmniScript component into the page. See Add an
LWC OmniScript to a Community or Lightning Page.
8. From the Components section, drag the Vlocity OmniScript Knowledge Base component to where
you want it displayed.
9. In the omniscriptKey field, enter the name of the LWC OmniScript component using the syntax
type_SubType_Language.
10. (Optional) In the layout field, enter newport to render the Knowledge base article with the Newport
Design System styling.
11. Save the Lightning page and test the OmniScript on the Lightning page to preview the behavior.
See Also
Property Definition
Enable Knowledge Integrate Salescorce Knowledge with OmniScript. You must enable this property in the Properties panel for
each Step that displays the Knowledge component and in the Setup panel.
Setup panel
These properties are unique to the Knowledge Options section in the Setup panel.
Property Description
Display Outside OmniScript Enables launching Knowledge base articles outside of an OmniScript using the Vlocity
OmniScript Knowledge Base component in a Community or Lightning page.
Use Lightning Knowledge Integrates Lightning Knowledge with OmniScript. Lightning Knowledge must be enabled in
your org.
Article/Record Type API Name The Article Type API name for Classic Knowledge or the Record Type API name when Use
Lightning Knowledge is enabled.
Field API Name The API name of the field to search in, such as Title. For multiple fields, enter a comma-
separated list with no spaces, such as Title, namespace__richText__c,Summary.
Lightning Knowledge Object API If Use Lightning Knowledge is enabled, enter the Lightning Knowledge object's API name,
Name such as namespace__Knowledge__kav.
Label The text displayed above the Knowledge component, such as Suggested Articles.
Properties panel
These properties are unique to the Knowledge Options section in the Properties panel when you select a
Step.
Property Description
Language Select the language to display the articles.
Public Status The type of article to display. Enter Online, Archived or Draft.
Keyword The text to search for. This can be literal text, such as Service Disconnect. Or enter
merge fields for variable data. For example, enter %RouterType% to use the input value of a
Text element whose Name is RouterType.
Data Category Criteria Filter Knowledge articles by their data category in a SOQL query. For example, enter
Troubleshooting__c AT (Router__c) to show articles from the sub-category Router
under the parent category Troubleshooting. The WITH DATA CATEGORY clause is not
required in the query.
Record Type Filter If Use Lightning Knowledge is enabled, enter the Record Type's API name to filter the
record types queried by the Step. For multiple Record Types, enter a comma-separated list
with no spaces, such as FAQ,INFO.
See Also
Create a Custom Lightning Web Component for OmniScript. For information on configuring OmniScript
elements, see OmniScript Element Reference.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
LWC Description
OmniScript Atomic Element The base component for OmniScript Input elements.
OmniScript Base Action The base component for OmniScript Action elements.
OmniScript Base Element The base component for LWC OmniScript.
OmniScript Group Element The base component for OmniScript Group elements.
• Line Break
• Text Block
• Formula
• Messaging
General ReadMes
LWC Description
OmniScript Knowledge Base LWC for the OmniScript Knowledge component. The knowledge component enables users to
ReadMe search for Lightning Knowledge articles.
OmniScript Modal LWC for the modal that displays in OmniScript.
OmniScript Step Chart LWC for the OmniScript Step Chart. See Customize the Step Chart Component.
OmniScript Step Chart Items LWC for the OmniScript Step Chart Items. The Step Chart Items component controls the
functionality of the OmniScript Step Chart.
• Block
• Edit Block
• Radio Group
• Step
• Type Ahead Block
• Places Type Ahead
• Type Ahead Action
• Type Ahead Block
• Checkbox
• Currency
• Custom LWC
• Date
• Date/Time
• Email
• File
• Image
• Lookup
• Multi-select
• Number
• Password
• Radio
• Range
• Select
• Telephone
• Text
• Text Area
• Time
• URL
Mixin ReadMes
LWC Description
OmniScript Base Mixin Enables custom LWCs that do not override an OmniScript element's LWC to interact with OmniScript
through the Custom LWC element. See Extend the OmniScriptBaseMixin Component.
OmniScript Options Mixin Provides options logic for any LWC in OmniScript.
OmniScript Validation Provides validation options to any LWC in OmniScript.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptActionBlock ⇐ OmniscriptBaseAction
Extends: OmniscriptBaseAction
• ns/omniscriptActionBlock ⇐ OmniscriptBaseAction
• .processAction(element) ⇒ Promise
• .handleResponseError(resp, element) ⇒ Object ⎮ Void
• .handleError(element, error) ⇒ Promise
• .sendDataToDebugConsole(params, resp, label, [element]) ⇒ void
omniscriptActionBlock.processAction(element) ⇒ Promise
Overwrites inherited processAction. Handles asynchronous processing for the Action Block. Requests are
independent of each other.
Param Type
element Object
Param Type
resp Object
element Object
Param Type
element Object
error Object
Param Type
params Object
resp Object
label String
[element] Object
ns/omniscriptActionBlock ⇐ OmniscriptBaseAction
Extends: OmniscriptBaseAction
• ns/omniscriptActionBlock ⇐ OmniscriptBaseAction
• .processAction(element) ⇒ Promise
• .handleResponseError(resp, element) ⇒ Object ⎮ Void
• .handleError(element, error) ⇒ Promise
omniscriptActionBlock.processAction(element) ⇒ Promise
Overwrites inherited processAction. Handles asynchronous processing for the Action Block. Requests are
independent of each other.
Param Type
element Object
Param Type
resp Object
element Object
Param Type
element Object
error Object
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Table 3. Properties
Name Scope Description
get defaultValue private Overwrite the one omniscriptBaseElement to support merge fields for Default Values
Table 4. Methods
Signature Scope Return Description
Value
prepareIMaskProperties(mask) private void Method to process mask property to be compatible with third party
javascript library iMask format (we use iMask in LWC)
findThousandsSeparator(mask) private String Helper method for mask handling
Usage
This component derives from omniscriptBaseElement and implements hasValidation mixin. It serves as the
base component for all OmniScript input LWCs.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This is the base component for LWC OmniScript input elements, for example, Text, Checkbox, etc. It
derives from omniscriptBaseComponent and implements hasValidation mixin.
Methods
Usage
This component derives from omniscriptBaseElement and implements hasValidation mixin. It serves as the
base component for all OmniScript input LWCs.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This is the base component for LWC OmniScript input elements, for example, Text, Checkbox, etc. It
derives from omniscriptBaseComponent and implements hasValidation mixin.
Methods
Usage
This component derives from omniscriptBaseElement and implements hasValidation mixin. It serves as the
base component for all OmniScript input LWCs.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Properties
The following are a list of properties that are declared inside of the OmniScript Base Action.
Methods
The following are a list of methods that are declared inside of the OmniScript Base Action.
HTML Markup
Newport and Lightning HTML markups are provided for this component.
Usage
This component derives from the OmniscriptGroupElement. It serves as a base component for all
OmniScript Action LWCs.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The OmniScript Base Action component is the base component for all OmniScript Action components. The
OmniScript Base Action provides common functionality that is shared amongst all actions in the OmniScript
actions framework.
Properties
The following are a list of properties that are declared inside of the OmniScript Base Action.
Methods
The following are a list of methods that are declared inside of the OmniScript Base Action.
HTML Markup
Newport and Lightning HTML markups are provided for this component.
Usage
This component derives from the OmniscriptGroupElement. It serves as a base component for all
OmniScript Action LWCs.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The OmniScript Base Action component is the base component for all OmniScript actions components. The
OmniScript Base Action provides common functionality that is shared amongst all actions in the OmniScript
actions framework.
Properties
The following are a list of properties that are declared inside of the OmniScript Base Action.
Methods
The following are a list of methods that are declared inside of the OmniScript Base Action.
HTML Markup
Newport and Lightning HTML markups are provided for this component.
Usage
The OmniScript Base Action provides the OmniScript Actions framework a skeleton of the primary
functionality that are common amongst all actions. All OmniScript Action LWCs derive from this component,
for example, OmniScript HTTP Action, due to the LWC inheritance model, knowledge of this component will
help better customize custom LWCs that are derived from OmniScript OOTB Action LWCs.
This component derives from the OmniscriptGroupElement. It serves as a base component for all
OmniScript Action LWCs.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Table 5. Properties
Name Scope Description
elementValue track (private) Reactive private property. The component rerenders when it changes. This is the key property
to display the data entered by the user or coming from the API responses in the input elements
or store the aggregated JSON data for the group elements.
jsonDef api (public) Reactive public property. Set it with JSON Definition of an OmniScript or an OmniScript
element (one OmniScript forms is a component tree).
seedJson api (public) Reactive public property. It is a collection of URL prefill, seed data set up in the designer and
cached JSON from API calls.
layout api (public) Reactive public property. Determines which LWC player to use - lightning or newport.
resume api (public) Reactive public property. Whether the OmniScript is run in new-launch or resume mode.
scriptHeaderDef api (public) Reactive public property. It is used to pass down the script header property to the OmniScript
child components.
jsonData api (public) Reactive public property. It is used to pass down data JSON of the OmniScript to all
OmniScript child components.
jsonDataStr api (public) Reactive public property. It is the stringified data JSON to overcome the LWC performance
issue of JSON.stringify the proxy Object.
runMode api (public) Flag to determine whether the OmniScript (active or inactive) is being run inside the designer
or not.
defaultValue private get defaultValue() - Getter to get default value of the OmniScript element
nullVal private get nullVal() - Getter to overwrite the definition of null value
_jsonPath private get _jsonPath() - Getter to find the JSON path of the Element
Table 6. Methods
Signature Scope Return Description
Value
applyCallResp(json, bApi = false, public void API method to apply API responses back to OmniScript
bValidation = false)
combinedWatch() private void Watch method - gets called initially in renderedCallback and later
when data JSON changes
initCompVariables() private void Method to initialize private component variables
Usage
Majority of the OmniScript LWCs derive from this component, for example, omniscriptText, due to LWC
inheritance model, knowledge of this component will help you better customize your custom LWC derived
from OmniScript OOTB LWCs.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This is the base component for LWC OmniScript. Majority of OmniScript LWCs derive from this component.
It contains all common properties and methods that can be overridable.
Properties
Methods
Usage
Majority of the OmniScript LWCs derive from this component, for example, omniscriptText, due to LWC
inheritance model, knowledge of this component will help you better customize your custom LWC derived
from OmniScript OOTB LWCs.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This is the base component for LWC OmniScript. The majority of OmniScript LWCs derive from this
component. It contains all common properties and methods that can be overridable.
Properties
Methods
Usage
The majority of OmniScript LWCs derive from this component, for example, omniscriptText, due to LWC
inheritance model, knowledge of this component will help you better customize your custom LWC derived
from OmniScript OOTB LWCs.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Table 7. Properties
Name Scope Description
omniJsonDef api (public ) Reactive public property. Set it with JSON definition of an OmniScript or an OmniScript
element (one OmniScript forms is a component tree).
omniSeedJson api (public ) Reactive public property. It is a collection of URL prefill, seed data set up in the designer
and cached JSON from API calls.
omniResume api (public ) Reactive public property. Whether the OmniScript is run in new-launch or resume mode.
omniScriptHeaderDef api (public ) Reactive public property. It is used to pass down the script header property to the
OmniScript child components.
omniJsonData api (public ) Reactive public property. It is used to pass down data JSON of the OmniScript to all
OmniScript child components.
omniJsonDataStr api (public ) Reactive public property. It is used to pass down a stringified data JSON of the
OmniScript to all OmniScript child components.
omniCustomState api (public ) Reactive public property. It is used to save data from the custom component. It is
separate from the data JSON.
dataLayout public Determines which LWC player to use - lightning or newport.
showValidation track (private) Flag that determines whether the component passes validation.
Table 8. Methods
Signature Scope Return Description
Value
omniUpdateDataJson(input, private void Updates Custom LWC's node inside of Data JSON
aggregateOverride = false) with the passed in object
omniApplyCallResp(response, usePubsub private void Updates OmniScript's Data JSON with the passed in
= false) object.
omniSaveState(input, key, usePubsub = private void Saves data in OmniScript mapped to a specified key
false) or defaults to the id of the custom lwc.
omniSaveForLater(auto = false) private void Notifies the OmniscriptHeader that the current
instance needs to be saved.
omniGetSaveState(key) private Object Retrieves data in OmniScript for a specific custom
LWC.
omniGetMergeField(mergeFieldString) private Any Replaces all valid merge field strings with values from
OmniScript's Data JSON
omniNextStep() private void Navigates OmniScript to the next step
omniPrevStep() private void Navigates OmniScript to the previous step
omniNavigateTo(element) private void Given the step name or step index, navigate the
OmniScript to any step before the current step or to
the immediate next step
omniValidate(showMessage = true) private void Triggers validation for component. Calls parent's
reportValidity and calls omniscriptBaseMixin's
reportValidity. By default, showValidation will be set
causing error messages to be displayed. Setting to
false will prevent error messages from getting
displayed when calling omniValidate
Usage
Below is an example showing how to include omniscriptBaseMixin in a customLWC
Validation
...
@api checkValidity() {
return (this.selection.length < 3);
}
selectItem(item) {
this.selection = [...this.selection, item];
// When properties change that affect validity, update the
// validity state by calling
this.omniValidate();
}
...
The definition for checkValidity should return true if the component is valid, and false if invalid.
Validation will be performed when your component first renders, otherwise call omniValidate when
properties change that affect your components validity.
selectItem(item) {
this.selection = [...this.selection, item];
// error messages will be hidden until next button is pressed or other
omniValidate() is called
this.omniValidate(false);
}
As a general rule of thumb, try not to display validation messages before the user is finished entering data.
<p class="validation-message"
if:true={showValidation}>Please select at least 3 items.</p>
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This is the base mixin for LWC OmniScript.
Properties
Methods
Usage
Below is an example showing how to include omniscriptBaseMixin in a customLWC
Validation
...
@api checkValidity() {
return (this.selection.length < 3);
}
selectItem(item) {
this.selection = [...this.selection, item];
// When properties change that affect validity, update the
// validity state by calling
this.omniValidate();
}
...
The definition for checkValidity should return true if the component is valid, and false if invalid.
Validation will be performed when your component first renders, otherwise call omniValidate when
properties change that affect your components validity.
selectItem(item) {
this.selection = [...this.selection, item];
// error messages will be hidden until next button is pressed or other
omniValidate() is called
this.omniValidate(false);
}
As a general rule of thumb, try not to display validation messages before the user is finished entering data.
<p class="validation-message"
if:true={showValidation}>Please select at least 3 items.</p>
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This is the base mixin for LWC OmniScript.
Properties
Methods
Signature Scope Return Description
Value
omniUpdateDataJson(input, private void Updates OmniScript's Data JSON with the passed in
aggregateOverride = false) object
omniSaveState(input, key) private void Saves data in OmniScript mapped to a specified key or
defaults to the id of the custom lwc. It is separate from
the data JSON.
omniGetSaveState(key) private Object Retrieves data in OmniScript for a specific custom LWC.
omniGetMergeField(mergeFieldString) private Any Replaces all valid merge field strings with values from
OmniScript's Data JSON
checkValidity() api Boolean Default is true. Returning false prevents navigating to
(public) the next step. Overriding this function allows control
over navigating to the next step.
reportValidity() api Boolean Sets showValidation to true when checkValidity returns
(public) false
omniValidate(showMessage=true) private void Triggers validation for component. Calls parent's
reportValidity and calls omniscriptBaseMixin's
reportValidity. By default, showValidation will be set
causing error messages to be displayed. Setting to false
will prevent error messages from getting displayed
when calling omniValidate
Usage
Below is an example showing how to include omniscriptBaseMixin in a customLWC
Validation
Define your logic in checkValidity, and assign the result to this.isValid.
To integrate with the OmniScript Validation Framework, define an override method for checkValidity()
on your component.
...
@api checkValidity() {
return (this.selection.length < 3);
}
selectItem(item) {
this.selection = [...this.selection, item];
// When properties change that affect validity, update the
// validity state by calling
this.omniValidate();
}
...
The definition for checkValidity should return true if the component is valid, and false if invalid.
Validation will be performed when your component first renders, otherwise call omniValidate when
properties change that affect your components validity.
selectItem(item) {
this.selection = [...this.selection, item];
// error messages will be hidden until next button is pressed or other
omniValidate() is called
this.omniValidate(false);
}
As a general rule of thumb, try not to display validation messages before the user is finished entering data.
<p class="validation-message"
if:true={showValidation}>Please select at least 3 items.</p>
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptBlock ⇐ OmniscriptGroupElement
Extends: OmniscriptGroupElement
• ns/omniscriptBlock ⇐ OmniscriptGroupElement
• .expandContent : Boolean
• .blockClasses : String
• .activeSections : String
• .sldsBlockClasses : String
• .showErrorMessage : Boolean
• .blockLabel : String
• .toggleContent() ⇒ Void
• .initCompVariables() ⇒ Void
• .updateBlockClasses() ⇒ Void
• .render() ⇒ Template
omniscriptBlock.expandContent : Boolean
Flag that identifies if the block is expanded.
omniscriptBlock.blockClasses : String
Classes applied to the block.
omniscriptBlock.activeSections : String
Indicates active block.
omniscriptBlock.sldsBlockClasses : String
Lightning classes applied to the block.
omniscriptBlock.showErrorMessage : Boolean
Flag to show error message.
omniscriptBlock.blockLabel : String
Gets block label.
omniscriptBlock.toggleContent() ⇒ Void
Handles when block is toggled.
omniscriptBlock.initCompVariables() ⇒ Void
Overwrites inherited initCompVariables.
omniscriptBlock.updateBlockClasses() ⇒ Void
Updates block classes.
omniscriptBlock.render() ⇒ Template
Overwrites native render.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
ns/omniscriptBlock ⇐ OmniscriptGroupElement
Extends: OmniscriptGroupElement
• ns/omniscriptBlock ⇐ OmniscriptGroupElement
• .expandContent : Boolean
• .blockClasses : String
• .activeSections : String
• .sldsBlockClasses : String
• .showErrorMessage : Boolean
• .blockLabel : String
• .toggleContent() ⇒ Void
• .initCompVariables() ⇒ Void
• .updateBlockClasses() ⇒ Void
• .render() ⇒ Template
omniscriptBlock.expandContent : Boolean
Flag that identifies if the block is expanded.
omniscriptBlock.blockClasses : String
Classes applied to the block.
omniscriptBlock.activeSections : String
Indicates active block.
omniscriptBlock.sldsBlockClasses : String
Lightning classes applied to the block.
omniscriptBlock.showErrorMessage : Boolean
Flag to show error message.
Scope: private
omniscriptBlock.blockLabel : String
Gets block label.
Scope: private
omniscriptBlock.toggleContent() ⇒ Void
Handles when block is toggled.
Scope: private
omniscriptBlock.initCompVariables() ⇒ Void
Overwrites inherited initCompVariables.
Scope: private
omniscriptBlock.updateBlockClasses() ⇒ Void
Updates block classes.
Scope: private
omniscriptBlock.render() ⇒ Template
Overwrites native render.
Scope: private
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptCalculationAction
This component is used to perform Calculation Action.
module.exports ⇐ OmniscriptRemoteAction ⏏
Default exported class OmniscriptCalculationAction.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Vlocity Insurance and Health Summer '20 and Vlocity CME Fall '20
c/omniscriptCancelAction ⇐ OmniscriptNavigateAction
Element that extends the OmniscriptNavigateAction and performs navigation away from the omniscript. In
the designer a cancel action is defined by adding a Navigate Action element to the root level of the
script, and giving it the name 'CANCEL'.
Extends: OmniscriptNavigateAction
• c/omniscriptCancelAction ⇐ OmniscriptNavigateAction
• instance
• .CANCEL_RESOLVED : string
• .DEFAULT_CANCEL_RESOLVED : string
• .CANCEL_ABORTED : string
• .CANCEL_DISABLED : string
• .cancel() ⇒ Promise.<any>
• .execute()
• static
• [.cancelPrompt(comp, [message], [header])](#markdown-header-
omniscriptcancelactioncancelpromptcomp-message-header-promiseany) ⇒ Promise.<any>
omniscriptCancelAction.CANCEL_RESOLVED : string
Constant value returned when cancel succeeds.
omniscriptCancelAction.DEFAULT_CANCEL_RESOLVED : string
Constant value returned when cancel default (inline) succeeds.
omniscriptCancelAction.CANCEL_ABORTED : string
Constant value thrown when cancel is aborted.
omniscriptCancelAction.CANCEL_DISABLED : string
Constant value thrown when cancel is disabled.
omniscriptCancelAction.cancel() ⇒ Promise.<any>
Execute the configured navigate action. Fired by omniscriptHeader.
omniscriptCancelAction.execute()
Override default execute so the cancel action isn't immediately fired.
c/omniscriptCancelAction ⇐ OmniscriptNavigateAction
Element that extends the OmniscriptNavigateAction and performs navigation away from the omniscript. In
the designer a cancel action is defined by adding a Navigate Action element to the root level of the
script, and giving it the name 'CANCEL'.
Extends: OmniscriptNavigateAction
• c/omniscriptCancelAction ⇐ OmniscriptNavigateAction
• instance
• .CANCEL_RESOLVED : string
• .CANCEL_ABORTED : string
• .CANCEL_DISABLED : string
• .cancel() ⇒ Promise.<any>
• .execute()
• static
• [.cancelPrompt(comp, [message], [header])](#markdown-header-
omniscriptcancelactioncancelpromptcomp-message-header-promiseany) ⇒ Promise.<any>
omniscriptCancelAction.CANCEL_RESOLVED : string
Constant value returned when cancel succeeds.
omniscriptCancelAction.CANCEL_ABORTED : string
Constant value thrown when cancel is aborted.
omniscriptCancelAction.CANCEL_DISABLED : string
Constant value thrown when cancel is disabled.
omniscriptCancelAction.cancel() ⇒ Promise.<any>
Execute the configured navigate action. Fired by omniscriptHeader.
omniscriptCancelAction.execute()
Override default execute so the cancel action isn't immediately fired.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Table 9. Properties
Name Scope Description
_needMoreValidation private Bypass second validation for checkbox
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-checkbox
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-checkbox>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Checkbox",
"rootIndex": 0,
"response": false,
"propSetMap": {
"label": "Checkbox1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"checkLabel": "Checkbox1",
"helpText": "",
"help": false,
"defaultValue": false,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"controlWidth": 12
},
"name": "Checkbox1",
"level": 1,
"JSONPath": "Step1:Checkbox1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bCheckbox": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Checkbox1": "Step1:Checkbox1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Checkbox1": "" }
}
seedJson --- designer seed JSON + checkbox parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a checkbox element. This component extends from
OmniscriptAtomicElement.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-checkbox
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-checkbox>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Checkbox",
"rootIndex": 0,
"response": false,
"propSetMap": {
"label": "Checkbox1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"checkLabel": "Checkbox1",
"helpText": "",
"help": false,
"defaultValue": false,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"controlWidth": 12
},
"name": "Checkbox1",
"level": 1,
"JSONPath": "Step1:Checkbox1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bCheckbox": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Checkbox1": "Step1:Checkbox1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Checkbox1": "" }
}
seedJson --- designer seed JSON + checkbox parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a checkbox element, This component extends from
OmniscriptAtomicElement.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-checkbox
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-checkbox>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Checkbox",
"rootIndex": 0,
"response": false,
"propSetMap": {
"label": "Checkbox1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"checkLabel": "Checkbox1",
"helpText": "",
"help": false,
"defaultValue": false,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"controlWidth": 12
},
"name": "Checkbox1",
"level": 1,
"JSONPath": "Step1:Checkbox1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bCheckbox": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Checkbox1": "Step1:Checkbox1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Checkbox1": "" }
}
seedJson --- designer seed JSON + checkbox parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Usage
<c-omniscript-currency json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-currency>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Currency",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Currency1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"hideGroupSep": false,
"allowNegative": false,
"max": null,
"min": null,
"mask": null,
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Currency1",
"level": 1,
"JSONPath": "Step1:Currency1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bCurrency": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Currency1": "Step1:Currency1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Currency1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Currency Element. OmniscriptCurrency extends from
OmniscriptAtomicElement. This component supports all salesforce supported currency formats.
Properties
Methods
Usage
<c-omniscript-currency json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-currency>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Currency",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Currency1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Currency1": "Step1:Currency1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Currency1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Currency Element. OmniscriptCurrency is extended from
OmniscriptAtomicElement. This component supports all salesforce supported currency formats.
Methods
Signature Scope Return Value Description
initCompVariables() private void Overwrites inherited initCompVariables.
handleBlur(evt) private void Event handler for blur events.
validateData(data) private Object Evaluates if currency is valid.
render() private template Overwrites native LWC render
Usage
<c-omniscript-currency json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-currency>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Currency",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Currency1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"hideGroupSep": false,
"allowNegative": false,
"max": null,
"min": null,
"mask": null,
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Currency1",
"level": 1,
"JSONPath": "Step1:Currency1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bCurrency": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Currency1": "Step1:Currency1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Currency1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-custom-lwc
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-custom-lwc>
Attributes
jsonDef -- json definition of the OmniScript Element
seedJson --- designer seed JSON + text parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to wrap a Custom LWC, It derives from omniscriptBaseComponent and
implements hasValidation mixin.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-custom-lwc
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-custom-lwc>
Attributes
jsonDef -- json definition of the OmniScript Element
seedJson --- designer seed JSON + text parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to wrap a Custom LWC, It derives from omniscriptBaseComponent and
implements hasValidation mixin.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-custom-lwc
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-custom-lwc>
Attributes
jsonDef -- json definition of the OmniScript Element
seedJson --- designer seed JSON + text parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Methods
The following are a list of methods that are declared inside of the Omniscript Data Raptor Extract Action.
Data Raptor Extract Action is inherited from Omniscript Base Action for additional support regarding action
invocation and processing. Reference the Omniscript Base Action README for additional information
regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-dr-extract-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
json-data-str={jsonDataStr}
run-mode={runMode}
script-header-def={scriptHeaderDef}>
</c-omniscript-dr-extract-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "DataRaptor Extract Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "DataRaptorExtractAction1",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Step",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"responseJSONNode": "",
"responseJSONPath": "",
"remoteTimeout": 30000,
"dataRaptor Input Parameters": [],
"bundle": "",
"controlWidth": 12
},
"name": "DataRaptorExtractAction1",
"level": 1,
"JSONPath": "Step1:DataRaptorExtractAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDataRaptorExtractAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"DataRaptorExtractAction1": "Step1:DataRaptorExtractAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"DataRaptorExtractAction1": ""
}
}
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The OmniScript DataRaptor Extract Action component provides functionality for DataRaptor extract
integration. This README will provide high-level information regarding the different properties and methods
utilized by the OmniScript DataRaptor Extract Action LWC component.
Methods
The following are a list of methods that are declared inside of the Omniscript Data Raptor Extract Action.
Data Raptor Extract Action is inherited from Omniscript Base Action for additional support regarding action
invocation and processing. Reference the Omniscript Base Action README for additional information
regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-dr-extract-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
json-data-str={jsonDataStr}
run-mode={runMode}
script-header-def={scriptHeaderDef}>
</c-omniscript-dr-extract-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "DataRaptor Extract Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "DataRaptorExtractAction1",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Step",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"responseJSONNode": "",
"responseJSONPath": "",
"remoteTimeout": 30000,
"dataRaptor Input Parameters": [],
"bundle": "",
"controlWidth": 12
},
"name": "DataRaptorExtractAction1",
"level": 1,
"JSONPath": "Step1:DataRaptorExtractAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDataRaptorExtractAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"DataRaptorExtractAction1": "Step1:DataRaptorExtractAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"DataRaptorExtractAction1": ""
}
}
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Omniscript DataRaptor Extract Action component provides functionality for DataRaptor extract
integration. This README will provide high-level information regarding the different properties and methods
utilized by the Omniscript DataRaptor Extract Action LWC component.
Methods
The following are a list of methods that are declared inside of the Omniscript DataRaptor Extract Action.
DataRaptor Extract Action is inherited from Omniscript Base Action for additional support regarding action
invocation and processing. Reference the Omniscript Base Action README for additional information
regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-dr-extract-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-dr-extract-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "DataRaptor Extract Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "DataRaptorExtractAction1",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Step",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"responseJSONNode": "",
"responseJSONPath": "",
"remoteTimeout": 30000,
"dataRaptor Input Parameters": [],
"bundle": "",
"controlWidth": 12
},
"name": "DataRaptorExtractAction1",
"level": 1,
"JSONPath": "Step1:DataRaptorExtractAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDataRaptorExtractAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"DataRaptorExtractAction1": "Step1:DataRaptorExtractAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"DataRaptorExtractAction1": ""
}
}
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Methods
The following are a list of methods that are declared inside of the Omniscript Data Raptor Post Action. Data
Raptor Post Action is inherited from Omniscript Base Action for additional support regarding action
invocation and processing. Reference the Omniscript Base Action README for additional information
regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-dr-post-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
layout={layout}
resume={resume}
run-mode={runMode}
script-header-def={scriptHeaderDef}>
</c-omniscript-dr-post-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "DataRaptor Post Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "DataRaptorPostAction1",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Submit",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"remoteTimeout": 30000,
"bundle": "",
"controlWidth": 12
},
"name": "DataRaptorPostAction1",
"level": 1,
"JSONPath": "Step1:DataRaptorPostAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDataRaptorPostAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"DataRaptorPostAction1": "Step1:DataRaptorPostAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"DataRaptorPostAction1": ""
}
}
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The OmniScript DataRaptor Post Action component provides functionality for DataRaptor post integration.
This README will provide high-level information regarding the different properties and methods utilized by
the OmniScript DataRaptor Post Action LWC component.
Methods
The following are a list of methods that are declared inside of the OmniScript DataRaptor Post Action. Data
Raptor Post Action is inherited from Omniscript Base Action for additional support regarding action
invocation and processing. Reference the Omniscript Base Action README for additional information
regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-dr-post-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
layout={layout}
resume={resume}
run-mode={runMode}
script-header-def={scriptHeaderDef}>
</c-omniscript-dr-post-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "DataRaptor Post Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "DataRaptorPostAction1",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Submit",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"remoteTimeout": 30000,
"bundle": "",
"controlWidth": 12
},
"name": "DataRaptorPostAction1",
"level": 1,
"JSONPath": "Step1:DataRaptorPostAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDataRaptorPostAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"DataRaptorPostAction1": "Step1:DataRaptorPostAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"DataRaptorPostAction1": ""
}
}
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Omniscript DataRaptor Post Action component provides functionality for DataRaptor post integration.
This README will provide high-level information regarding the different properties and methods utilized by
the Omniscript DataRaptor Post Action LWC component.
Methods
The following are a list of methods that are declared inside of the Omniscript DataRaptor Post Action.
DataRaptor Post Action is inherited from Omniscript Base Action for additional support regarding action
invocation and processing. Reference the Omniscript Base Action README for additional information
regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-dr-post-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-dr-post-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "DataRaptor Post Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "DataRaptorPostAction1",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Submit",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"remoteTimeout": 30000,
"bundle": "",
"controlWidth": 12
},
"name": "DataRaptorPostAction1",
"level": 1,
"JSONPath": "Step1:DataRaptorPostAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDataRaptorPostAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"DataRaptorPostAction1": "Step1:DataRaptorPostAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"DataRaptorPostAction1": ""
}
}
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Methods
The following are a list of methods that are declared inside of the Omniscript Data Raptor Transform Action.
Data Raptor Transform Action is inherited from Omniscript Base Action for additional support regarding
action invocation and processing. Reference the Omniscript Base Action README for additional
information regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-dr-transform-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
layout={layout}
run-mode={runMode}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-dr-transform-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"response": null,
"level": 1,
"indexInParent": 0,
"eleArray": [{
"type": "DataRaptor Transform Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "DataRaptorTransformAction1",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Submit",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"remoteTimeout": 30000,
"bundle": "",
"controlWidth": 12
},
"name": "DataRaptorTransformAction1",
"level": 1,
"JSONPath": "Step1:DataRaptorTransformAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDataRaptorTransformAction": true,
"lwcId": "lwc000"
}],
"bHasAttachment": false
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"DataRaptorTransformAction1": "Step1:DataRaptorTransformAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"DataRaptorTransformAction1": ""
}
}
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The OmniScript DataRaptor Transform Action component provides functionality for DataRaptor transform
integration. This README will provide high-level information regarding the different properties and methods
utilized by the OmniScript DataRaptor Transform Action LWC component.
Methods
The following are a list of methods that are declared inside of the Omniscript Data Raptor Transform Action.
Data Raptor Transform Action is inherited from Omniscript Base Action for additional support regarding
action invocation and processing. Reference the Omniscript Base Action README for additional
information regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-dr-transform-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
layout={layout}
run-mode={runMode}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-dr-transform-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"response": null,
"level": 1,
"indexInParent": 0,
"eleArray": [{
"type": "DataRaptor Transform Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "DataRaptorTransformAction1",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Submit",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"remoteTimeout": 30000,
"bundle": "",
"controlWidth": 12
},
"name": "DataRaptorTransformAction1",
"level": 1,
"JSONPath": "Step1:DataRaptorTransformAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDataRaptorTransformAction": true,
"lwcId": "lwc000"
}],
"bHasAttachment": false
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"DataRaptorTransformAction1": "Step1:DataRaptorTransformAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"DataRaptorTransformAction1": ""
}
}
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Omniscript DataRaptor Transform Action component provides functionality for DataRaptor transform
integration. This README provides high-level information regarding the different properties and methods
utilized by the Omniscript DataRaptor Transform Action LWC component.
Methods
The following are a list of methods that are declared inside of the Omniscript DataRaptor Transform Action.
DataRaptor Transform Action is inherited from Omniscript Base Action for additional support regarding
action invocation and processing. Reference the Omniscript Base Action README for additional
information regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-dr-transform-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-dr-transform-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
"response": null,
"level": 1,
"indexInParent": 0,
"eleArray": [{
"type": "DataRaptor Transform Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "DataRaptorTransformAction1",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Submit",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"remoteTimeout": 30000,
"bundle": "",
"controlWidth": 12
},
"name": "DataRaptorTransformAction1",
"level": 1,
"JSONPath": "Step1:DataRaptorTransformAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDataRaptorTransformAction": true,
"lwcId": "lwc000"
}],
"bHasAttachment": false
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"DataRaptorTransformAction1": "Step1:DataRaptorTransformAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"DataRaptorTransformAction1": ""
}
}
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptDrTurboAction
This component is used to perform DataRaptor Turbo Action.
module.exports ⏏
DataRaptor Turbo Action for Omniscript
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-date
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={jsonDef.propSetMap.seedDataJSON}
>
</c-omniscript-date>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Date",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Date1",
"maxDate": "",
"minDate": "",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"dateFormat": "MM-dd-yyyy",
"modelDateFormat": "yyyy-MM-dd",
"dateType": "string",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Date1",
"level": 1,
"JSONPath": "Step1:Date1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDate": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Date1": "Step1:Date1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Date1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Date element. It extends from OmniscriptAtomicElement.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-date
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={jsonDef.propSetMap.seedDataJSON}
>
</c-omniscript-date>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Date",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Date1",
"maxDate": "",
"minDate": "",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"dateFormat": "MM-dd-yyyy",
"modelDateFormat": "yyyy-MM-dd",
"dateType": "string",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Date1",
"level": 1,
"JSONPath": "Step1:Date1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDate": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Date1": "Step1:Date1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Date1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Date element. It extends from OmniscriptAtomicElement.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-date
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={jsonDef.propSetMap.seedDataJSON}
>
</c-omniscript-date>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Date",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Date1",
"maxDate": "",
"minDate": "",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"dateFormat": "MM-dd-yyyy",
"modelDateFormat": "yyyy-MM-dd",
"dateType": "string",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Date1",
"level": 1,
"JSONPath": "Step1:Date1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDate": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Date1": "Step1:Date1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Date1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
When the Time input is blank and a user enters a Date input, the default time populated in the Time input
will be 12:00 PM.
Once a Time input is entered, the previously stored Time input value will persist even when the Date input
is modified.
Selecting the Today button will populate the current date and time.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-date-time
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}
>
</c-omniscript-date-time>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Date/Time (Local)",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Date/Time1",
"maxDate": "",
"minDate": "",
"timezone": "Local",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Date/Time1": "Step1:Date/Time1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Date/Time1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Date/Time element. It extends from OmniscriptAtomicElement.
When the Time input is blank and a user enters a Date input, the default time populated in the Time input
will be 12:00 PM.
Once a Time input is entered, the previously stored Time input value will persist even when the Date input
is modified.
Selecting the Today button will populate the current date and time.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-date-time
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}
>
</c-omniscript-date-time>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Date/Time (Local)",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Date/Time1",
"maxDate": "",
"minDate": "",
"timezone": "Local",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"timeFormat": "hh:mm a",
"dateFormat": "MM-dd-yyyy",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Date/Time1",
"level": 1,
"JSONPath": "Step1:Date/Time1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDateTime": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Date/Time1": "Step1:Date/Time1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Date/Time1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Date/Time element. It extends from OmniscriptAtomicElement.
When the Time input is blank and a user enters a Date input, the default time populated in the Time input
will be 12:00 PM.
Once a Time input is entered, the previously stored Time input value will persist even when the Date input
is modified.
Selecting the Today button will populate the current date and time.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-date-time
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}
>
</c-omniscript-date-time>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Date/Time (Local)",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Date/Time1",
"maxDate": "",
"minDate": "",
"timezone": "Local",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"timeFormat": "hh:mm a",
"dateFormat": "MM-dd-yyyy",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Date/Time1",
"level": 1,
"JSONPath": "Step1:Date/Time1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bDateTime": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Date/Time1": "Step1:Date/Time1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Date/Time1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptDeleteAction
This component is used to perform Delete Action in omniscript.
• ns/omniscriptDeleteAction
• module.exports ⇐ OmniscriptBaseAction ⏏
• .connectedCallback() ⇒ Void
• .execute()
module.exports ⇐ OmniscriptBaseAction ⏏
Default exported class OmniscriptDeleteAction.
omniscriptDeleteAction.connectedCallback() ⇒ Void
Overwrites inherited connectedCallback. Instantiates specific action utility class from action framework.
omniscriptDeleteAction.execute()
Processes the logic for executing an action. This method is called from onclick attribute in component's
HTML markup and in Header component.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptDisclosure
This component is used to render a Disclosure Element, it extends OmniscriptCheckbox.
• ns/omniscriptDisclosure
• module.exports ⇐ OmniscriptCheckbox ⏏
• .render() ⇒ Template
module.exports ⇐ OmniscriptCheckbox ⏏
Default exported class OmniscriptDisclosure
omniscriptDisclosure.render() ⇒ Template
Overwrites native render.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptDocusignEnvelopeAction
This component is used to send the Docusign Envelope docs on mail.
• ns/omniscriptDocusignEnvelopeAction
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/
omniscriptDocusignEnvelopeAction/#markdown-header-moduleexports-omniscriptbaseaction ⇐
OmniscriptBaseAction ⏏
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/
omniscriptDocusignEnvelopeAction/#markdown-header-
omniscriptdocusignenvelopeactionconnectedcallback-void ⇒ Void
module.exports ⇐ OmniscriptBaseAction ⏏
Default exported class OmniscriptDocusignEnvelopeAction.
omniscriptDocusignEnvelopeAction.connectedCallback() ⇒ Void
Overwrites inherited connectedCallback. Instantiates specific action utility class from action framework.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
ns/omniscriptDocusignEnvelopeAction
This component is used to send the Docusign Envelope docs on mail.
• ns/omniscriptDocusignEnvelopeAction
• module.exports ⇐ OmniscriptBaseAction ⏏
• .connectedCallback() ⇒ Void
module.exports ⇐ OmniscriptBaseAction ⏏
Default exported class OmniscriptDocusignEnvelopeAction.
Extends: OmniscriptBaseAction
omniscriptDocusignEnvelopeAction.connectedCallback() ⇒ Void
Overwrites inherited connectedCallback. Instantiates specific action utility class from action framework.
Scope: private
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
• ns/omniscriptDocusignSignatureAction
• ._docusignModal : Boolean
• ._headerClasses : String
• ._footerClasses : String
• ._modalContainerClass : String
• ._envelopeId : String
• ._envelopeIdArray : Array.<Object>
• ._pdfData : String
• .showViewPdfBtn : Boolean
• .disableViewPdfBtn : Boolean
• .viewPDF() ⇒ Void
• .closeModal() ⇒ Void
ns/omniscriptDocusignSignatureAction._docusignModal : Boolean
ns/omniscriptDocusignSignatureAction._headerClasses : String
ns/omniscriptDocusignSignatureAction._footerClasses : String
ns/omniscriptDocusignSignatureAction._modalContainerClass : String
ns/omniscriptDocusignSignatureAction._envelopeId : String
ns/omniscriptDocusignSignatureAction._envelopeIdArray : Array.<Object>
ns/omniscriptDocusignSignatureAction._pdfData : String
• PDF blob data which we get from DocuSign after successful signature completion.
ns/omniscriptDocusignSignatureAction.showViewPdfBtn : Boolean
ns/omniscriptDocusignSignatureAction.disableViewPdfBtn : Boolean
• Disable View PDF button on modal after clicking on View PDF button and PDF is displayed.
ns/omniscriptDocusignSignatureAction.viewPDF() ⇒ Void
View the pdf after successful signature completion in DocuSign Signing Ceremony.
ns/omniscriptDocusignSignatureAction.closeModal() ⇒ Void
Close the DocuSign Signing Ceremony modal.
Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20
ns/omniscriptDocusignSignatureAction
• ns/omniscriptDocusignSignatureAction
• ._docusignModal : Boolean
• ._headerClasses : String
• ._footerClasses : String
• ._modalContainerClass : String
• ._envelopeId : String
• ._envelopeIdArray : Array
• ._pdfData : String
• ._omniDocuSignModalTitle : String
• ._omniDocuSignModalViewPdf : String
• ._omniDocuSignModalClose : String
• .showViewPdfBtn : Boolean
• .disableViewPdfBtn : Boolean
• .viewPDF() ⇒ void
• .closeModal() ⇒ void
ns/omniscriptDocusignSignatureAction._docusignModal : Boolean
Scope: private
ns/omniscriptDocusignSignatureAction._headerClasses : String
Scope: private
ns/omniscriptDocusignSignatureAction._footerClasses : String
Scope: private
ns/omniscriptDocusignSignatureAction._modalContainerClass : String
Scope: private
ns/omniscriptDocusignSignatureAction._envelopeId : String
Scope: private
ns/omniscriptDocusignSignatureAction._envelopeIdArray : Array
Scope: private
ns/omniscriptDocusignSignatureAction._pdfData : String
• PDF blob data which we get from DocuSign after successful signature completion.
Scope: private
ns/omniscriptDocusignSignatureAction._omniDocuSignModalTitle : String
Scope: private
ns/omniscriptDocusignSignatureAction._omniDocuSignModalViewPdf : String
Scope: private
ns/omniscriptDocusignSignatureAction._omniDocuSignModalClose : String
Scope: private
ns/omniscriptDocusignSignatureAction.showViewPdfBtn : Boolean
ns/omniscriptDocusignSignatureAction.disableViewPdfBtn : Boolean
• Disable View PDF button on modal after clicking on View PDF button and PDF is displayed.
ns/omniscriptDocusignSignatureAction.viewPDF() ⇒ void
View the pdf after successful signature completion in DocuSign Signing Ceremony.
Scope: private
ns/omniscriptDocusignSignatureAction.closeModal() ⇒ void
Close the DocuSign Signing Ceremony modal.
Scope: private
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
• ns/omniscriptEditBlock
• .mode : String
• ._isEditing : Boolean
• ._bShowActionMenu : Boolean
• ._showCheckbox : Boolean
• ._maxDisplayCount : Number
• .canRemove ⇒ Boolean
• .isEditing ⇒ Boolean
• .isEditing ⇒ void
• .sumElement ⇒ String
• .canRepeat ⇒ Boolean
• .showAdd ⇒ Boolean
• .showAsterisk ⇒ Boolean
• .svgMapIcon ⇒ String
• .visualClass ⇒ String
• .editClass ⇒ String
• .handleAdd(evt, seed) ⇒ void
• .handleRemoveDom() ⇒ void
• .handleRemove() ⇒ void
• .remove(evt) ⇒ void
• .cancel() ⇒ void
• .handleCheckbox(evt) ⇒ void
• .updateSiblings(data) ⇒ void
• .updateCheckbox(sending) ⇒ void
• .edit() ⇒ void
• .save() ⇒ void
• .editModeNotify() ⇒ void
• .toggleActionMenu(evt) ⇒ void
• .hideActionMenu(evt) ⇒ void
• .createActionMenu() ⇒ void
• .propToMultiLang(properties) ⇒ void
• .stateRefresh() ⇒ void
• .createDisplayColumns() ⇒ void
• .updateDisplayColumns() ⇒ void
• .createTableLabelColumns() ⇒ void
• .isEmpty() ⇒ Boolean
ns/omniscriptEditBlock.mode : String
• Controls which template to load (Table, FS, Inline, Cards, LongCards). Empty string results in Table
ns/omniscriptEditBlock._isEditing : Boolean
ns/omniscriptEditBlock._bShowActionMenu : Boolean
ns/omniscriptEditBlock._showCheckbox : Boolean
ns/omniscriptEditBlock._maxDisplayCount : Number
ns/omniscriptEditBlock.canRemove ⇒ Boolean
Indicates if deleting an Edit Block is allowed
ns/omniscriptEditBlock.isEditing ⇒ Boolean
Indicates if edit mode is enabled
ns/omniscriptEditBlock.isEditing ⇒ void
Sets the value for edit mode
ns/omniscriptEditBlock.sumElement ⇒ String
Returns the value for the sumElement
ns/omniscriptEditBlock.canRepeat ⇒ Boolean
Indicates if adding new Edit Blocks is enabled
ns/omniscriptEditBlock.showAdd ⇒ Boolean
Indicates if the add button is visible
ns/omniscriptEditBlock.showAsterisk ⇒ Boolean
Indicates if there are any invalid elements in the Edit Block
ns/omniscriptEditBlock.svgMapIcon ⇒ String
Returns a string containing the sprite and icon for an svg icon
ns/omniscriptEditBlock.visualClass ⇒ String
Returns the class string for elements displaying non-editable text.
ns/omniscriptEditBlock.editClass ⇒ String
Returns the class string for elements displaying the input fields
ns/omniscriptEditBlock.handleRemoveDom() ⇒ void
Deletes current Edit Block.
ns/omniscriptEditBlock.handleRemove() ⇒ void
Call any action overriding delete; otherwise handleRemoveDom will be called.
ns/omniscriptEditBlock.remove(evt) ⇒ void
Displays remove confirmation modal and then calls handleRemove.
ns/omniscriptEditBlock.cancel() ⇒ void
Disables edit mode, ignores new data, and restores the previous data.
ns/omniscriptEditBlock.handleCheckbox(evt) ⇒ void
Updates all Edit Blocks' checkbox if select mode is enabled
ns/omniscriptEditBlock.updateSiblings(data) ⇒ void
Notifies other siblings in current Edit Block that something has been updated
Param Type
data Object
ns/omniscriptEditBlock.updateCheckbox(sending) ⇒ void
Controls the selection of the Edit Block given a checkbox element specified inside of the Edit Block The
selection controls either : 1. affects the background color (table) 2. toggles the visibility of the checkbox
(cards, longcards)
ns/omniscriptEditBlock.edit() ⇒ void
Sets the editing mode to true
ns/omniscriptEditBlock.save() ⇒ void
Saves any changes to Edit Block, calls overridden actions for (new, edit and delete)
ns/omniscriptEditBlock.editModeNotify() ⇒ void
Sends an event to the header to prevent omniscript from navigating to prev/next steps
ns/omniscriptEditBlock.toggleActionMenu(evt) ⇒ void
Toggles the visibility the action menu
ns/omniscriptEditBlock.hideActionMenu(evt) ⇒ void
Hides the action menu
ns/omniscriptEditBlock.createActionMenu() ⇒ void
Creates and configures the data for the action menu
ns/omniscriptEditBlock.propToMultiLang(properties) ⇒ void
Overriding omniscriptBaseElement's propToMultiLang to include translations of custom labels inside of
global actions, and actions for edit block's new, edit and delete
Param Type
properties Object
ns/omniscriptEditBlock.stateRefresh() ⇒ void
Indicates if data json has been updated
ns/omniscriptEditBlock.createDisplayColumns() ⇒ void
Creates and configures the data to be displayed for every template
ns/omniscriptEditBlock.updateDisplayColumns() ⇒ void
Updates the display values for all of the elements
ns/omniscriptEditBlock.createTableLabelColumns() ⇒ void
Creates and configures the labels for the columns in FS and Table
ns/omniscriptEditBlock.isEmpty() ⇒ Boolean
Indicates if there any Edit Blocks created
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
ns/omniscriptEditBlock
• ns/omniscriptEditBlock
• .mode : String
• ._isEditing : Boolean
• ._bShowActionMenu : Boolean
• ._showCheckbox : Boolean
• ._maxDisplayCount : Number
• .canRemove ⇒ Boolean
• .isEditing ⇒ Boolean
• .isEditing ⇒ void
• .sumElement ⇒ String
• .canRepeat ⇒ Boolean
• .showAdd ⇒ Boolean
• .showAsterisk ⇒ Boolean
• .svgMapIcon ⇒ String
• .visualClass ⇒ String
• .editClass ⇒ String
• .handleAdd(evt, seed) ⇒ void
• .handleRemoveDom() ⇒ void
• .handleRemove() ⇒ void
• .remove(evt) ⇒ void
• .cancel() ⇒ void
• .handleCheckbox(evt) ⇒ void
• .updateSiblings(data) ⇒ void
• .updateCheckbox(sending) ⇒ void
• .runAction(action, bGlobal) ⇒ Promise
• .displayErrorModal(msg) ⇒ void
• .edit() ⇒ void
• .save() ⇒ void
• .editModeNotify() ⇒ void
• .toggleActionMenu(evt) ⇒ void
• .hideActionMenu(evt) ⇒ void
• .createActionMenu() ⇒ void
• .createGlobalActionList() ⇒ void
• .stateRefresh() ⇒ void
• .createDisplayColumns() ⇒ void
• .updateDisplayColumns() ⇒ void
• .createTableLabelColumns() ⇒ void
• .isEmpty() ⇒ Boolean
ns/omniscriptEditBlock.mode : String
• Controls which template to load (Table, FS, Inline, Cards, LongCards). Empty string results in Table
ns/omniscriptEditBlock._isEditing : Boolean
ns/omniscriptEditBlock._bShowActionMenu : Boolean
ns/omniscriptEditBlock._showCheckbox : Boolean
ns/omniscriptEditBlock._maxDisplayCount : Number
Scope: private
ns/omniscriptEditBlock.canRemove ⇒ Boolean
Indicates if deleting an Edit Block is allowed
Scope: private
ns/omniscriptEditBlock.isEditing ⇒ Boolean
Indicates if edit mode is enabled
Scope: private
ns/omniscriptEditBlock.isEditing ⇒ void
Sets the value for edit mode
Scope: private
ns/omniscriptEditBlock.sumElement ⇒ String
Returns the value for the sumElement
Scope: private
ns/omniscriptEditBlock.canRepeat ⇒ Boolean
Indicates if adding new Edit Blocks is enabled
Scope: private
ns/omniscriptEditBlock.showAdd ⇒ Boolean
Indicates if the add button is visible
Scope: private
ns/omniscriptEditBlock.showAsterisk ⇒ Boolean
Indicates if there are any invalid elements in the Edit Block
Scope: private
ns/omniscriptEditBlock.svgMapIcon ⇒ String
Returns a string containing the sprite and icon for an svg icon
Scope: private
ns/omniscriptEditBlock.visualClass ⇒ String
Returns the class string for elements displaying non-editable text.
Scope: private
ns/omniscriptEditBlock.editClass ⇒ String
Returns the class string for elements displaying the input fields
Scope: private
Scope: public
ns/omniscriptEditBlock.handleRemoveDom() ⇒ void
Deletes current Edit Block.
Scope: private
ns/omniscriptEditBlock.handleRemove() ⇒ void
Call any action overriding delete; otherwise handleRemoveDom will be called.
Scope: private
ns/omniscriptEditBlock.remove(evt) ⇒ void
Displays remove confirmation modal and then calls handleRemove.
Scope: private
ns/omniscriptEditBlock.cancel() ⇒ void
Disables edit mode, ignores new data, and restores the previous data.
Scope: private
ns/omniscriptEditBlock.handleCheckbox(evt) ⇒ void
Updates all Edit Blocks' checkbox if select mode is enabled
Scope: private
ns/omniscriptEditBlock.updateSiblings(data) ⇒ void
Notifies other siblings in current Edit Block that something has been updated
Scope: private
Param Type
data Object
ns/omniscriptEditBlock.updateCheckbox(sending) ⇒ void
Controls the selection of the Edit Block given a checkbox element specified inside of the Edit Block The
selection controls either : 1. affects the background color (table) 2. toggles the visibility of the checkbox
(cards, longcards)
Scope: private
Scope: private
ns/omniscriptEditBlock.displayErrorModal(msg) ⇒ void
Opens up a modal to display the error message
Scope: private
ns/omniscriptEditBlock.edit() ⇒ void
Sets the editing mode to true
Scope: private
ns/omniscriptEditBlock.save() ⇒ void
Saves any changes to Edit Block, calls overridden actions for (new, edit and delete)
Scope: private
ns/omniscriptEditBlock.editModeNotify() ⇒ void
Sends an event to the header to prevent omniscript from navigating to prev/next steps
Scope: private
ns/omniscriptEditBlock.toggleActionMenu(evt) ⇒ void
Toggles the visibility the action menu
Scope: private
ns/omniscriptEditBlock.hideActionMenu(evt) ⇒ void
Hides the action menu
Scope: private
ns/omniscriptEditBlock.createActionMenu() ⇒ void
Creates and configures the data for the action menu
Scope: private
ns/omniscriptEditBlock.createGlobalActionList() ⇒ void
Creates and configures the data for global actions
Scope: private
ns/omniscriptEditBlock.stateRefresh() ⇒ void
Indicates if data json has been updated
Scope: private
ns/omniscriptEditBlock.createDisplayColumns() ⇒ void
Creates and configures the data to be displayed for every template
Scope: private
ns/omniscriptEditBlock.updateDisplayColumns() ⇒ void
Updates the display values for all of the elements
Scope: private
ns/omniscriptEditBlock.createTableLabelColumns() ⇒ void
Creates and configures the labels for the columns in FS and Table
Scope: private
ns/omniscriptEditBlock.isEmpty() ⇒ Boolean
Indicates if there any Edit Blocks created
Scope: public
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
• ns/omniscriptEditBlockLabel
• ._gActions : Object
• .isBtnLoading : Boolean
• .initCompVariables()
ns/omniscriptEditBlockLabel._gActions : Object
Contains the global actions for edit block
ns/omniscriptEditBlockLabel.isBtnLoading : Boolean
Button spinner flag.
ns/omniscriptEditBlockLabel.initCompVariables()
Initializes private component variables
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/OmniscriptEditBlockNew
This component is used to render a OmniscriptEditBlockNew
• ns/OmniscriptEditBlockNew
• module.exports ⇐ LightningElement ⏏
• .handleAdd()
• .initCompVariables()
module.exports ⇐ LightningElement ⏏
Default exported class OmniscriptEditBlockNew
omniscriptEditBlockNew.handleAdd()
Triggers adding a new edit block for Cards and LongCards
omniscriptEditBlockNew.initCompVariables()
Initializes private component variables
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-email
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-email>
Attributes
jsonDef --- json definition of the OmniScript Element
Example ---
{
"type": "Email",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Email1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"ptrnErrText": "",
"pattern": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Email1",
"level": 1,
"JSONPath": "Step1:Email1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bEmail": true,
"lwcId": "lwc000"
}
Example ---
{
"labelMap": {
"Email1": "Step1:Email1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": false,
"acUiElements": {
"Step1": "",
"Email1": ""
}
}
seedJson --- designer seed JSON + email parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render an Email element. This component extends from
OmniscriptAtomicElement.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-email
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-email>
Attributes
jsonDef --- json definition of the OmniScript Element
Example ---
{
"type": "Email",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Email1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"ptrnErrText": "",
"pattern": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Email1",
"level": 1,
"JSONPath": "Step1:Email1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bEmail": true,
"lwcId": "lwc000"
}
Example ---
{
"labelMap": {
"Email1": "Step1:Email1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": false,
"acUiElements": {
"Step1": "",
"Email1": ""
}
}
seedJson --- designer seed JSON + email parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render an Email element, This component extends from
OmniscriptAtomicElement.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-email
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-email>
Attributes
jsonDef --- json definition of the OmniScript Element
Example ---
{
"type": "Email",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Email1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"ptrnErrText": "",
"pattern": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Email1",
"level": 1,
"JSONPath": "Step1:Email1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bEmail": true,
"lwcId": "lwc000"
}
Example ---
{
"labelMap": {
"Email1": "Step1:Email1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": false,
"acUiElements": {
"Step1": "",
"Email1": ""
}
}
seedJson --- designer seed JSON + email parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/OmniscriptEmailAction
This component is used to perform the email action in omniscript.
• ns/OmniscriptEmailAction
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptEmailAction/
#markdown-header-moduleexports-omniscriptbaseaction ⇐ OmniscriptBaseAction ⏏
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptEmailAction/
#markdown-header-omniscriptemailactionconnectedcallback-void ⇒ Void
module.exports ⇐ OmniscriptBaseAction ⏏
Default exported class OmniscriptEmailAction.
omniscriptEmailAction.connectedCallback() ⇒ Void
Overwrites inherited connectedCallback. Instantiates specific action utility class from action framework.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
ns/OmniscriptEmailAction
This component is used to perform the email action in omniscript.
• ns/OmniscriptEmailAction
• module.exports ⇐ OmniscriptBaseAction ⏏
• .connectedCallback() ⇒ Void
module.exports ⇐ OmniscriptBaseAction ⏏
Default exported class OmniscriptEmailAction.
Extends: OmniscriptBaseAction
omniscriptEmailAction.connectedCallback() ⇒ Void
Overwrites inherited connectedCallback. Instantiates specific action utility class from action framework.
Scope: private
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptFile ⇐ OmniscriptAtomicElement
Extends: OmniscriptAtomicElement
• ns/omniscriptFile ⇐ OmniscriptAtomicElement
• ._value : Array
• .isPageLoading : Boolean
• ._showValidation : Boolean
• ._containerClasses : String
• ._theme : String
• .connectedCallback() ⇒ void
• .initCompVariables() ⇒ void
• .handleUploadFinished(event) ⇒ void
• .deleteFile(evt) ⇒ void
• .notifyUploadChange([removedId]) ⇒ void
• .setContainerClasses() ⇒ void
• .notifyError(error) ⇒ void
• .checkValidity() ⇒ Boolean
• .reportValidity() ⇒ Boolean
• .render() ⇒ Template
omniscriptFile._value : Array
omniscriptFile.isPageLoading : Boolean
omniscriptFile._showValidation : Boolean
omniscriptFile._containerClasses : String
omniscriptFile._theme : String
omniscriptFile.connectedCallback() ⇒ void
Overwrites inherited connectedCallback.
omniscriptFile.initCompVariables() ⇒ void
Overwrites inherited initCompVariables. This method is executed once during connectedCallback.
omniscriptFile.handleUploadFinished(event) ⇒ void
An event listener that is triggered after file have been uploaded.
Param Type
event Event
omniscriptFile.deleteFile(evt) ⇒ void
Deletes a file from the values and notify the change. Also, tries to delete to remove the file from content
document
Param Type
evt Event
omniscriptFile.notifyUploadChange([removedId]) ⇒ void
Notifies the component that a file was uploaded or removed
omniscriptFile.setContainerClasses() ⇒ void
Sets the container CSS styling
omniscriptFile.notifyError(error) ⇒ void
Dispatches an error modal.
Param Type
error string
omniscriptFile.checkValidity() ⇒ Boolean
Interface for native DOM checkValidity(). Performs custom validation as well as native Constraint Validation
API calls. Returns a boolean, but doesn't trigger display of validation messages.
omniscriptFile.reportValidity() ⇒ Boolean
Interface for native DOM reportValidity(). Performs custom validation as well as native Constraint Validation
API calls. Returns a boolean, and triggers the display of validation messages.
omniscriptFile.render() ⇒ Template
Overwrites native LWC render
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
ns/omniscriptFile ⇐ OmniscriptAtomicElement
Extends: OmniscriptAtomicElement
• ns/omniscriptFile ⇐ OmniscriptAtomicElement
• ._value : Array
• ._isPageLoading : Boolean
• ._showValidation : Boolean
• ._containerClasses : String
• ._actionUtil : String
• ._theme : String
• .connectedCallback() ⇒ void
• .initCompVariables() ⇒ void
• .handleUploadFinished(event) ⇒ void
• .deleteFile(evt) ⇒ void
• .notifyUploadChange([removedId]) ⇒ void
• .setContainerClasses() ⇒ void
• .notifyError(error) ⇒ void
• .checkValidity() ⇒ Boolean
• .reportValidity() ⇒ Boolean
• .render() ⇒ void
omniscriptFile._value : Array
omniscriptFile._isPageLoading : Boolean
omniscriptFile._showValidation : Boolean
omniscriptFile._containerClasses : String
omniscriptFile._actionUtil : String
Scope: private
omniscriptFile._theme : String
Scope: private
omniscriptFile.connectedCallback() ⇒ void
Overwrites inherited connectedCallback.
Scope: private
omniscriptFile.initCompVariables() ⇒ void
Overwrites inherited initCompVariables. This method is executed once during connectedCallback.
Scope: private
omniscriptFile.handleUploadFinished(event) ⇒ void
An event listener that is triggered after file have been uploaded.
Scope: private
Param Type
event Event
omniscriptFile.deleteFile(evt) ⇒ void
Deletes a file from the values and notify the change. Also, tries to delete to remove the file from content
document
Scope: private
Param Type
evt Event
omniscriptFile.notifyUploadChange([removedId]) ⇒ void
Notifies the component that a file was uploaded or removed
Scope: private
omniscriptFile.setContainerClasses() ⇒ void
Sets the container CSS styling
Scope: private
omniscriptFile.notifyError(error) ⇒ void
Dispatches an error modal.
Scope: private
Param Type
error string
omniscriptFile.checkValidity() ⇒ Boolean
Interface for native DOM checkValidity(). Performs custom validation as well as native Constraint Validation
API calls. Returns a boolean, but doesn't trigger display of validation messages.
Scope: private
omniscriptFile.reportValidity() ⇒ Boolean
Interface for native DOM reportValidity(). Performs custom validation as well as native Constraint Validation
API calls. Returns a boolean, and triggers the display of validation messages.
Scope: private
omniscriptFile.render() ⇒ void
Overwrites native LWC render
Scope: private
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
For support formula's please see the Expression Engine README.md in via_core.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-formula json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-formula>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Formula",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Formula1",
"disOnTplt": false,
"HTMLTemplateId": "",
"dateFormat": "MM-dd-yyyy",
"hideGroupSep": false,
"dataType": null,
"mask": null,
"show": null,
"hide": false,
"expression": "",
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Formula1",
"level": 1,
"JSONPath": "Step1:Formula1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bFormula": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"URL1": "Step1:Formula1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Formula1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
Renders an Omniscript formula element.
For support formula's please see the Expression Engine README.md in via_core.
Properties
Name Scope Description
renderedValue track (private) Rendered formula value.
Methods
Signature Scope Return Value Description
initCompVariables() private void Overwrite inherited method that gets called during component creation.
stateRefresh() private void Overwrites inherited method that gets triggered when data json changes.
validateData(data) private Object Overwrites inherited method that prevents Formula from being set.
connectedCallback() private void Overwrites native LWC lifecycle method.
render() private template Overwrites native LWC lifecycle method.
setRenderedValue private void Set renderedValue (formatted) to refresh the UI.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-formula json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-formula>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Formula",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Formula1",
"disOnTplt": false,
"HTMLTemplateId": "",
"dateFormat": "MM-dd-yyyy",
"hideGroupSep": false,
"dataType": null,
"mask": null,
"show": null,
"hide": false,
"expression": "",
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Formula1",
"level": 1,
"JSONPath": "Step1:Formula1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bFormula": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"URL1": "Step1:Formula1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Formula1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
Renders an Omniscript formula element.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-formula json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-formula>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Formula",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Formula1",
"disOnTplt": false,
"HTMLTemplateId": "",
"dateFormat": "MM-dd-yyyy",
"hideGroupSep": false,
"dataType": null,
"mask": null,
"show": null,
"hide": false,
"expression": "",
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Formula1",
"level": 1,
"JSONPath": "Step1:Formula1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bFormula": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"URL1": "Step1:Formula1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Formula1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The group element is an abstract component containing common functionality for the group elements. Step,
Block, Edit Block, and Typeahead Block.
Properties
Methods
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This is the base component for LWC OmniScript group elements, for example, Header, Step, Block, etc. It
derives from omniscriptBaseComponent.
Methods
Usage
This component derives from omniscriptBaseElement. It serves as the base component for all OmniScript
group LWCs.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component provides OmniScript functionality. It extends from
AggregatesValidation(OmniscriptGroupElement).
Properties
Methods
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component provides OmniScript functionality. It extends from
AggregatesValidation(OmniscriptGroupElement).
Properties
Methods
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Methods
The following are a list of methods that are declared inside of the Omniscript HTTP Action. HTTP Action is
inherited from Omniscript Base Action for additional support regarding action invocation and processing.
Reference the Omniscript Base Action README for additional information regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-http-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
layout={layout}
resume={resume}
run-mode={runMode}
script-header-def={scriptHeaderDef}>
</c-omniscript-http-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Rest Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "HTTPAction1",
"svgIcon": "",
"svgSprite": "",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"namedCredential": "",
"restOptions": {
"URIEncode": false,
"sendBody": true,
"withCredentials": false,
"timeout": 0,
"cache": false,
"params": {},
"headers": {}
},
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"type": "Apex",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Step",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"extraPayload": {},
"xmlPostTransformBundle": "",
"xmlPreTransformBundle": "",
"postTransformBundle": "",
"preTransformBundle": "",
"restMethod": "",
"restPath": "",
"controlWidth": 12
},
"name": "HTTPAction1",
"level": 1,
"JSONPath": "Step1:HTTPAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bHttpAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"HTTPAction1": "Step1:HTTPAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"HTTPAction1": ""
}
}
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Omniscript HTTP Action component provides functionality for REST calls. This README will provide
high-level information regarding the different properties and methods utilized by the Omniscript HTTP
Action LWC component.
Methods
The following are a list of methods that are declared inside of the Omniscript HTTP Action. HTTP Action is
inherited from Omniscript Base Action for additional support regarding action invocation and processing.
Reference the Omniscript Base Action README for additional information regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-http-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
layout={layout}
resume={resume}
run-mode={runMode}
script-header-def={scriptHeaderDef}>
</c-omniscript-http-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Rest Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "HTTPAction1",
"svgIcon": "",
"svgSprite": "",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"namedCredential": "",
"restOptions": {
"URIEncode": false,
"sendBody": true,
"withCredentials": false,
"timeout": 0,
"cache": false,
"params": {},
"headers": {}
},
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"type": "Apex",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Step",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"extraPayload": {},
"xmlPostTransformBundle": "",
"xmlPreTransformBundle": "",
"postTransformBundle": "",
"preTransformBundle": "",
"restMethod": "",
"restPath": "",
"controlWidth": 12
},
"name": "HTTPAction1",
"level": 1,
"JSONPath": "Step1:HTTPAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bHttpAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"HTTPAction1": "Step1:HTTPAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"HTTPAction1": ""
}
}
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Omniscript HTTP Action component provides functionality for REST calls. This README will provide
high-level information regarding the different properties and methods utilized by the Omniscript HTTP
Action LWC component.
Methods
The following are a list of methods that are declared inside of the Omniscript HTTP Action. HTTP Action is
inherited from Omniscript Base Action for additional support regarding action invocation and processing.
Reference the Omniscript Base Action README for additional information regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-http-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-http-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Rest Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "HTTPAction1",
"svgIcon": "",
"svgSprite": "",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"namedCredential": "",
"restOptions": {
"URIEncode": false,
"sendBody": true,
"withCredentials": false,
"timeout": 0,
"cache": false,
"params": {},
"headers": {}
},
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"type": "Apex",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Step",
"failureAbortMessage": "Are you sure?",
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"HTTPAction1": "Step1:HTTPAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"HTTPAction1": ""
}
}
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptImage ⇐ OmniscriptFile
Extends: OmniscriptFile
• ns/omniscriptImage ⇐ OmniscriptFile
• .multiple : Boolean
• .accepts : String
• ._parentContainerClasses : String
• ._baseUrl : String
• .disabled : Boolean
• .images : Array
• .initCompVariables() ⇒ void
• .render() ⇒ Template
omniscriptImage.multiple : Boolean
Flag used to track if multiple files can be uploaded
omniscriptImage.accepts : String
A list of file extensions that can be uploaded
omniscriptImage._parentContainerClasses : String
The class of the parent container
omniscriptImage._baseUrl : String
The base URL used to load image preview
omniscriptImage.disabled : Boolean
Property that keeps track if the component is disabled
omniscriptImage.images : Array
A list of uploaded images
omniscriptImage.initCompVariables() ⇒ void
Overwrites inherited initCompVariables. This method is executed once during connectedCallback.
omniscriptImage.render() ⇒ Template
Overwrites native LWC renderedCallback
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
ns/omniscriptImage ⇐ OmniscriptFile
Extends: OmniscriptFile
• ns/omniscriptImage ⇐ OmniscriptFile
• module.exports ⏏
•
• .multiple : Boolean
• .accepts : String
• ._parentContainerClasses : String
• ._baseUrl : String
• .disabled : Boolean
• .images : Array
• .initCompVariables() ⇒ void
• .render() ⇒ void
module.exports ⏏
Kind: Exported class
Scope: private
new module.exports()
Overwrites inherited constructor.
module.exports.multiple : Boolean
Flag used to track if multiple files can be uploaded
module.exports.accepts : String
A list of file extensions that can be uploaded
module.exports._parentContainerClasses : String
The class of the parent container
module.exports._baseUrl : String
The base URL used to load image preview
module.exports.disabled : Boolean
Property that keeps track if the component is disabled
module.exports.images : Array
A list of uploaded images
module.exports.initCompVariables() ⇒ void
Overwrites inherited initCompVariables. This method is executed once during connectedCallback.
Scope: private
module.exports.render() ⇒ void
Overwrites native LWC renderedCallback
Scope: private
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Methods
The following are a list of methods that are declared inside of the Omniscript Integration Procedure Action.
Integration Procedure Action is inherited from Omniscript Base Action for additional support regarding
action invocation and processing. Reference the Omniscript Base Action README for additional
information regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-ip-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
layout={layout}
resume={resume}
run-mode={runMode}
script-header-def={scriptHeaderDef}>
</c-omniscript-ip-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Integration Procedure Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "IntegrationProcedureAction1",
"svgIcon": "",
"svgSprite": "",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Step",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"extraPayload": {},
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteTimeout": 30000,
"remoteOptions": {
"chainable": false,
"useFuture": false,
"postTransformBundle": "",
"preTransformBundle": ""
},
"useContinuation": false,
"integrationProcedureKey": "test_Chainable",
"controlWidth": 12
},
"name": "IntegrationProcedureAction1",
"level": 1,
"JSONPath": "Step1:IntegrationProcedureAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bIntegrationProcedureAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"IntegrationProcedureAction1": "Step1:IntegrationProcedureAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"IntegrationProcedureAction1": ""
}
}
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Omniscript Integration Procedure Action component provides functionality for integration procedure
integration. This README will provide high-level information regarding the different properties and methods
utilized by the Omniscript Integration Procedure Action LWC component.
Methods
The following are a list of methods that are declared inside of the Omniscript Integration Procedure Action.
Integration Procedure Action is inherited from Omniscript Base Action for additional support regarding
action invocation and processing. Reference the Omniscript Base Action README for additional
information regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-ip-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
layout={layout}
resume={resume}
run-mode={runMode}
script-header-def={scriptHeaderDef}>
</c-omniscript-ip-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Integration Procedure Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "IntegrationProcedureAction1",
"svgIcon": "",
"svgSprite": "",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Step",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"extraPayload": {},
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteTimeout": 30000,
"remoteOptions": {
"chainable": false,
"useFuture": false,
"postTransformBundle": "",
"preTransformBundle": ""
},
"useContinuation": false,
"integrationProcedureKey": "test_Chainable",
"controlWidth": 12
},
"name": "IntegrationProcedureAction1",
"level": 1,
"JSONPath": "Step1:IntegrationProcedureAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bIntegrationProcedureAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"IntegrationProcedureAction1": "Step1:IntegrationProcedureAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"IntegrationProcedureAction1": ""
}
}
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The OmniScript Integration Procedure Action component provides functionality for integration procedure
integration. This README will provide high-level information regarding the different properties and methods
utilized by the OmniScript Integration Procedure Action LWC component.
Methods
The following are a list of methods that are declared inside of the OmniScript Integration Procedure Action.
Integration Procedure Action is inherited from OmniScript Base Action for additional support regarding
action invocation and processing. Reference the Omniscript Base Action README for additional
information regarding the inherited class.
HTML Markup
HTML markup is inherited from the OmniScript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-ip-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-ip-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Integration Procedure Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": {
"default": null,
"custom": []
},
"label": "IntegrationProcedureAction1",
"svgIcon": "",
"svgSprite": "",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Step",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"extraPayload": {},
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteTimeout": 30000,
"remoteOptions": {
"chainable": false,
"useFuture": false,
"postTransformBundle": "",
"preTransformBundle": ""
},
"useContinuation": false,
"integrationProcedureKey": "test_Chainable",
"controlWidth": 12
},
"name": "IntegrationProcedureAction1",
"level": 1,
"JSONPath": "Step1:IntegrationProcedureAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bIntegrationProcedureAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"IntegrationProcedureAction1": "Step1:IntegrationProcedureAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"IntegrationProcedureAction1": ""
}
}
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
• ns/omniscriptKnowledgeBase
• .layout : String
• .runMode : String
• .knowledgeOptions : Object
• .inputSearchKeyword : String
• .kbLabel : String
• .articlesResults : Array.<Object>
• .articleBodyResults : Object
• .canShowKbOnStep : Boolean
• .isToggled : Boolean
• ._kbModal : Boolean
• ._article : Object
• ._modalContainerClass : String
• ._footerClasses : String
• ._isOpenOmniScript : Boolean
• ._isConfiguredOnOmniScript : Boolean
• .displayLabel : String
• ._omniNewportClass : String
• ._isStepChartTop : Boolean
• ._themeKB : String
• .omniKey : String
• .omniscriptKey : String
• .renderTemplate : Boolean
• ._actionUtilClass : OmniscriptActionCommonUtil
• ._debugLabel : String
• ._articleParams : Object
• ._knowledgeBaseOptions : Object
• ._openInOmniEnable : Boolean
• ._customLabelsUtil : Object
• .classToggleWidth ⇒ String
• .connectedCallback() ⇒ Void
• .handleKnowledgeOptions(data) ⇒ Void
• .searchKnowledgeArticle(event) ⇒ Void
• .kbInvokeAction(params) ⇒ Promise
• .render() ⇒ Template
• .toggleKb(evt, isToggled) ⇒ Void
• .openModal(evt) ⇒ Void
• .closeModal() ⇒ Void
• .openInOmniscript(evt) ⇒ Void
• .getArticleBody() ⇒ Void
• .handleKbArticleOptions(data) ⇒ Void
• .kbArticleInvokeAction(params) ⇒ Promise
• .redirectToArticleUrl(evt) ⇒ Void
• .sendDataToDebugConsole(params, resp, label) ⇒ Void
ns/omniscriptKnowledgeBase.layout : String
Stores theme layout.
ns/omniscriptKnowledgeBase.runMode : String
Flag to determine where component is run.
ns/omniscriptKnowledgeBase.knowledgeOptions : Object
Contains detailed options which used to make remote call and setting up label of KB.
ns/omniscriptKnowledgeBase.inputSearchKeyword : String
Set user input value for getting related articles of KB.
ns/omniscriptKnowledgeBase.kbLabel : String
Set KB Label of KB.
ns/omniscriptKnowledgeBase.articlesResults : Array.<Object>
Holding set of articles based on specific user keyword.
ns/omniscriptKnowledgeBase.articleBodyResults : Object
Contains details of an article ie: article body, title and link.
ns/omniscriptKnowledgeBase.canShowKbOnStep : Boolean
Setting up true/false: whether can show on step or not.
ns/omniscriptKnowledgeBase.isToggled : Boolean
Toggled KB container for Newport(hide/show container based on user convenience), Default is always
false.
ns/omniscriptKnowledgeBase._kbModal : Boolean
Open Modal of an article via template(hide/show modal using this property), Default is always false.
ns/omniscriptKnowledgeBase._article : Object
Contains an article details.
ns/omniscriptKnowledgeBase._modalContainerClass : String
ns/omniscriptKnowledgeBase._footerClasses : String
ns/omniscriptKnowledgeBase._isOpenOmniScript : Boolean
ns/omniscriptKnowledgeBase._isConfiguredOnOmniScript : Boolean
ns/omniscriptKnowledgeBase.displayLabel : String
Setting KB Label from options of KB if doesn't exist.
ns/omniscriptKnowledgeBase._omniNewportClass : String
Setting newport root block class: 'via-nds' if configured on omniscript.
ns/omniscriptKnowledgeBase._isStepChartTop : Boolean
ns/omniscriptKnowledgeBase._themeKB : String
• Setting up theme.
ns/omniscriptKnowledgeBase.omniKey : String
ns/omniscriptKnowledgeBase.omniscriptKey : String
Setting up OmniScript key.
ns/omniscriptKnowledgeBase.renderTemplate : Boolean
Checks whether template needs to render or not.
ns/omniscriptKnowledgeBase._actionUtilClass : OmniscriptActionCommonUtil
ns/omniscriptKnowledgeBase._debugLabel : String
ns/omniscriptKnowledgeBase._articleParams : Object
ns/omniscriptKnowledgeBase._knowledgeBaseOptions : Object
ns/omniscriptKnowledgeBase._openInOmniEnable : Boolean
ns/omniscriptKnowledgeBase._customLabelsUtil : Object
ns/omniscriptKnowledgeBase.classToggleWidth ⇒ String
Toggles class for newport
ns/omniscriptKnowledgeBase.connectedCallback() ⇒ Void
Overwrites native connectedCallback.
ns/omniscriptKnowledgeBase.handleKnowledgeOptions(data) ⇒ Void
handleKnowledgeOptions - for setting up KB Label, kbOptions, inputsearchkeyword, articles and making
remote call based on options
ns/omniscriptKnowledgeBase.searchKnowledgeArticle(event) ⇒ Void
Gets updated articles based on input keyword via template.
ns/omniscriptKnowledgeBase.kbInvokeAction(params) ⇒ Promise
Makes remote call based on options
ns/omniscriptKnowledgeBase.render() ⇒ Template
Overwrites native render.
ns/omniscriptKnowledgeBase.openModal(evt) ⇒ Void
Opens modal for an article detail view via template
Param Type
evt Event
ns/omniscriptKnowledgeBase.closeModal() ⇒ Void
Closes the modal of an opened article detail view via template.
ns/omniscriptKnowledgeBase.openInOmniscript(evt) ⇒ Void
Opens an article detail view inside omniscript via template
Param Type
evt Event
ns/omniscriptKnowledgeBase.getArticleBody() ⇒ Void
Gets detailed info object of an article.
ns/omniscriptKnowledgeBase.handleKbArticleOptions(data) ⇒ Void
Callback function of pubsub event for getting article body options
ns/omniscriptKnowledgeBase.kbArticleInvokeAction(params) ⇒ Promise
Makes remote call based on article options
ns/omniscriptKnowledgeBase.redirectToArticleUrl(evt) ⇒ Void
For redirecting article on new tab with detailed view via template
Param Type
evt Event
Param Type
params Object
resp Object
label String
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
ns/omniscriptKnowledgeBase
• ns/omniscriptKnowledgeBase
• .layout : String
• .runMode : String
• .knowledgeOptions : Object
• .inputSearchKeyword : String
• .kbLabel : String
• .articlesResults : Array
• .articleBodyResults : Object
• .canShowKbOnStep : Boolean
• .isToggled : Boolean
• ._kbModal : Boolean
• ._article : Object
• ._modalContainerClass : String
• ._footerClasses : String
• ._omnipostMessage : String
• ._isOpenOmniScript : Boolean
• ._isConfiguredOnOmniScript : Boolean
• .displayLabel : String
• ._omniNewportClass : String
• ._isStepChartTop : Boolean
• ._themeKB : String
• .omniKey : String
• .omniscriptKey : String
• .renderTemplate : Boolean
• ._articleParams : Object
• ._knowledgeBaseOptions : Object
• ._openInOmniEnable : Boolean
• ._customLabelsUtil : Object
• .classToggleWidth ⇒ String
• .connectedCallback() ⇒ Void
• .handleKnowledgeOptions(data) ⇒ Void
• .searchKnowledgeArticle(event) ⇒ Void
• .kbInvokeAction(params) ⇒ Promise
• .render() ⇒ Template
• .toggleKb(evt, isToggled) ⇒ Void
• .openModal(evt) ⇒ Void
• .closeModal() ⇒ Void
• .openInOmniscript(evt) ⇒ Void
• .getArticleBody() ⇒ Void
• .handleKbArticleOptions(data) ⇒ Void
• .kbArticleInvokeAction(params) ⇒ Promise
• .redirectToArticleUrl(evt) ⇒ Void
ns/omniscriptKnowledgeBase.layout : String
Stores theme layout.
ns/omniscriptKnowledgeBase.runMode : String
Flag to determine where component is run.
ns/omniscriptKnowledgeBase.knowledgeOptions : Object
Contains detailed options which used to make remote call and setting up label of KB.
ns/omniscriptKnowledgeBase.inputSearchKeyword : String
Set user input value for getting related articles of KB.
ns/omniscriptKnowledgeBase.kbLabel : String
Set KB Label of KB.
Scope: public
ns/omniscriptKnowledgeBase.articlesResults : Array
Holding set of articles based on specific user keyword.
ns/omniscriptKnowledgeBase.articleBodyResults : Object
Contains details of an article ie: article body, title and link.
ns/omniscriptKnowledgeBase.canShowKbOnStep : Boolean
Setting up true/false: whether can show on step or not.
ns/omniscriptKnowledgeBase.isToggled : Boolean
Toggled KB container for Newport(hide/show container based on user convenience), Default is always
false.
ns/omniscriptKnowledgeBase._kbModal : Boolean
Open Modal of an article via template(hide/show modal using this property), Default is always false.
ns/omniscriptKnowledgeBase._article : Object
Contains an article details.
ns/omniscriptKnowledgeBase._modalContainerClass : String
Scope: private
ns/omniscriptKnowledgeBase._footerClasses : String
Scope: private
ns/omniscriptKnowledgeBase._omnipostMessage : String
Scope: private
ns/omniscriptKnowledgeBase._isOpenOmniScript : Boolean
Scope: private
ns/omniscriptKnowledgeBase._isConfiguredOnOmniScript : Boolean
Scope: private
ns/omniscriptKnowledgeBase.displayLabel : String
Setting KB Label from options of KB if doesn't exist.
ns/omniscriptKnowledgeBase._omniNewportClass : String
Setting newport root block class: 'via-nds' if configured on omniscript.
ns/omniscriptKnowledgeBase._isStepChartTop : Boolean
Scope: private
ns/omniscriptKnowledgeBase._themeKB : String
• Setting up theme.
Scope: private
ns/omniscriptKnowledgeBase.omniKey : String
Scope: private
ns/omniscriptKnowledgeBase.omniscriptKey : String
Setting up OmniScript key.
ns/omniscriptKnowledgeBase.renderTemplate : Boolean
Checks whether template needs to render or not.
ns/omniscriptKnowledgeBase._articleParams : Object
Scope: private
ns/omniscriptKnowledgeBase._knowledgeBaseOptions : Object
Scope: private
ns/omniscriptKnowledgeBase._openInOmniEnable : Boolean
Scope: private
ns/omniscriptKnowledgeBase._customLabelsUtil : Object
Scope: private
ns/omniscriptKnowledgeBase.classToggleWidth ⇒ String
Toggles class for newport
Scope: private
ns/omniscriptKnowledgeBase.connectedCallback() ⇒ Void
Overwrites native connectedCallback.
Scope: private
ns/omniscriptKnowledgeBase.handleKnowledgeOptions(data) ⇒ Void
handleKnowledgeOptions - for setting up KB Label, kbOptions, inputsearchkeyword, articles and making
remote call based on options
Scope: private
ns/omniscriptKnowledgeBase.searchKnowledgeArticle(event) ⇒ Void
Gets updated articles based on input keyword via template.
Scope: private
ns/omniscriptKnowledgeBase.kbInvokeAction(params) ⇒ Promise
Makes remote call based on options
Scope: private
ns/omniscriptKnowledgeBase.render() ⇒ Template
Overwrites native render.
Scope: private
Scope: private
ns/omniscriptKnowledgeBase.openModal(evt) ⇒ Void
Opens modal for an article detail view via template
Scope: private
Param Type
evt Event
ns/omniscriptKnowledgeBase.closeModal() ⇒ Void
Closes the modal of an opened article detail view via template.
Scope: private
ns/omniscriptKnowledgeBase.openInOmniscript(evt) ⇒ Void
Opens an article detail view inside omniscript via template
Scope: private
Param Type
evt Event
ns/omniscriptKnowledgeBase.getArticleBody() ⇒ Void
Gets detailed info object of an article.
Scope: private
ns/omniscriptKnowledgeBase.handleKbArticleOptions(data) ⇒ Void
Callback function of pubsub event for getting article body options
Scope: private
ns/omniscriptKnowledgeBase.kbArticleInvokeAction(params) ⇒ Promise
Makes remote call based on article options
Scope: private
ns/omniscriptKnowledgeBase.redirectToArticleUrl(evt) ⇒ Void
For redirecting article on new tab with detailed view via template
Scope: private
Param Type
evt Event
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-line-break json-def={jsonDef}
data-omni-key={jsonDef.name}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-line-break>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Line Break",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"label": "LineBreak1",
"HTMLTemplateId": "",
"show": null,
"padding": 0
},
"name": "LineBreak1",
"level": 1,
"JSONPath": "Step1:LineBreak1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bLineBreak": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"LineBreak1": "Step1:LineBreak1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"LineBreak1": ""
}
}
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Line Break, OmniscriptLineBreak is extended from
OmniscriptAtomicElement hence contain all method from OmniscriptAtomicElement
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-line-break json-def={jsonDef}
data-omni-key={jsonDef.name}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-line-break>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Line Break",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"label": "LineBreak1",
"HTMLTemplateId": "",
"show": null,
"padding": 0
},
"name": "LineBreak1",
"level": 1,
"JSONPath": "Step1:LineBreak1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bLineBreak": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"LineBreak1": "Step1:LineBreak1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"LineBreak1": ""
}
}
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Line Break, OmniscriptLineBreak is extended from
OmniscriptAtomicElement hence contain all method from OmniscriptAtomicElement
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-line-break json-def={jsonDef}
data-omni-key={jsonDef.name}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-line-break>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Line Break",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"label": "LineBreak1",
"HTMLTemplateId": "",
"show": null,
"padding": 0
},
"name": "LineBreak1",
"level": 1,
"JSONPath": "Step1:LineBreak1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bLineBreak": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"LineBreak1": "Step1:LineBreak1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"LineBreak1": ""
}
}
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-lookup
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-lookup>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Lookup",
"rootIndex": 0,
"response": null,
"propSetMap": {
"errorMessage": {
"default": null,
"custom": []
},
"label": "Lookup1 - sObject",
"clearValue": false,
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"placeholder": "",
"dataSource": {
"mapItems": {
"phase2MapItems": [
{
"DomainObjectCreationOrder__c": 1,
"DomainObjectAPIName__c": "JSON",
"InterfaceFieldAPIName__c": "lwc:Id",
"DomainObjectFieldAPIName__c": "name"
},
{
"DomainObjectCreationOrder__c": 1,
"DomainObjectAPIName__c": "JSON",
"InterfaceFieldAPIName__c": "lwc:insNameSpace__SubType__c",
"DomainObjectFieldAPIName__c": "value"
}
],
"phase1MapItems": [
{
"FilterOperator__c": "LIKE",
"InterfaceFieldAPIName__c": "insNameSpace__Type__c",
"FilterValue__c": "'lwc'",
"DomainObjectFieldAPIName__c": "lwc",
"InterfaceObjectName__c": "insNameSpace__OmniScript__c",
"InterfaceObjectLookupOrder__c": 1
}
],
"inputParameters": []
},
"type": "SObject"
},
"helpText": "asdf",
"help": true,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Lookup1",
"level": 1,
"JSONPath": "Step1:Lookup1",
"indexInParent": 1,
"index": 0,
"children": [],
"bHasAttachment": false,
"bLookup": true,
"lwcId": "lwc010"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Lookup element, it extends from OmniscriptAtomicElement.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-lookup
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-lookup>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Lookup",
"rootIndex": 0,
"response": null,
"propSetMap": {
"errorMessage": {
"default": null,
"custom": []
},
"label": "Lookup1 - sObject",
"clearValue": false,
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"placeholder": "",
"dataSource": {
"mapItems": {
"phase2MapItems": [
{
"DomainObjectCreationOrder__c": 1,
"DomainObjectAPIName__c": "JSON",
"InterfaceFieldAPIName__c": "lwc:Id",
"DomainObjectFieldAPIName__c": "name"
},
{
"DomainObjectCreationOrder__c": 1,
"DomainObjectAPIName__c": "JSON",
"InterfaceFieldAPIName__c": "lwc:insNameSpace__SubType__c",
"DomainObjectFieldAPIName__c": "value"
}
],
"phase1MapItems": [
{
"FilterOperator__c": "LIKE",
"InterfaceFieldAPIName__c": "insNameSpace__Type__c",
"FilterValue__c": "'lwc'",
"DomainObjectFieldAPIName__c": "lwc",
"InterfaceObjectName__c": "insNameSpace__OmniScript__c",
"InterfaceObjectLookupOrder__c": 1
}
],
"inputParameters": []
},
"type": "SObject"
},
"helpText": "asdf",
"help": true,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Lookup1",
"level": 1,
"JSONPath": "Step1:Lookup1",
"indexInParent": 1,
"index": 0,
"children": [],
"bHasAttachment": false,
"bLookup": true,
"lwcId": "lwc010"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Lookup element, it extends from OmniscriptAtomicElement.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-lookup
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-lookup>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Lookup",
"rootIndex": 0,
"response": null,
"propSetMap": {
"errorMessage": {
"default": null,
"custom": []
},
"label": "Lookup1 - sObject",
"clearValue": false,
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"placeholder": "",
"dataSource": {
"mapItems": {
"phase2MapItems": [
{
"DomainObjectCreationOrder__c": 1,
"DomainObjectAPIName__c": "JSON",
"InterfaceFieldAPIName__c": "lwc:Id",
"DomainObjectFieldAPIName__c": "name"
},
{
"DomainObjectCreationOrder__c": 1,
"DomainObjectAPIName__c": "JSON",
"InterfaceFieldAPIName__c": "lwc:insNameSpace__SubType__c",
"DomainObjectFieldAPIName__c": "value"
}
],
"phase1MapItems": [
{
"FilterOperator__c": "LIKE",
"InterfaceFieldAPIName__c": "insNameSpace__Type__c",
"FilterValue__c": "'lwc'",
"DomainObjectFieldAPIName__c": "lwc",
"InterfaceObjectName__c": "insNameSpace__OmniScript__c",
"InterfaceObjectLookupOrder__c": 1
}
],
"inputParameters": []
},
"type": "SObject"
},
"helpText": "asdf",
"help": true,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Lookup1",
"level": 1,
"JSONPath": "Step1:Lookup1",
"indexInParent": 1,
"index": 0,
"children": [],
"bHasAttachment": false,
"bLookup": true,
"lwcId": "lwc010"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
seedJson --- designer seed JSON + url parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptMatrixAction
This component is used to perform Matrix Action.
• ns/omniscriptMatrixAction
• module.exports ⇐ OmniscriptBaseAction ⏏
• .connectedCallback() ⇒ Void
module.exports ⇐ OmniscriptBaseAction ⏏
Default exported class OmniscriptMatrixAction.
omniscriptMatrixAction.connectedCallback() ⇒ Void
Overwrites inherited connectedCallback. Instantiates specific action utility class from action framework.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptMessaging ⇐ OmniscriptAtomicElement
Extends: OmniscriptAtomicElement
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptMessaging/
#markdown-header-nsomniscriptmessaging-omniscriptatomicelement ⇐ OmniscriptAtomicElement
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptMessaging/
#markdown-header-omniscriptmessagingmessagetext-string : String
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptMessaging/
#markdown-header-omniscriptmessagingmessagetype-string : String
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptMessaging/
#markdown-header-omniscriptmessaginginitcompvariables-void ⇒ void
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptMessaging/
#markdown-header-omniscriptmessagingevaluatevalidity-boolean ⇒ Boolean
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptMessaging/
#markdown-header-omniscriptmessagingremovetabindexevent-void ⇒ void
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptMessaging/
#markdown-header-omniscriptmessagingcheckvalidity-boolean ⇒ Boolean
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptMessaging/
#markdown-header-omniscriptmessagingreportvalidity-boolean ⇒ Boolean
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptMessaging/
#markdown-header-omniscriptmessagingfocus-void ⇒ void
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptMessaging/
#markdown-header-omniscriptmessagingstaterefresh-void ⇒ void
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptMessaging/
#markdown-header-omniscriptmessagingrender-void ⇒ void
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptMessaging/
#markdown-header-omniscriptmessagingrenderedcallback-void ⇒ void
omniscriptMessaging.messageText : String
Data store for text of message.
omniscriptMessaging.messageType : String
Data store for type of message.
omniscriptMessaging.initCompVariables() ⇒ void
Overwrites inherited initCompVariables. This method is executed once during connectedCallback.
omniscriptMessaging.evaluateValidity() ⇒ Boolean
Special function to determine if component is valid.
omniscriptMessaging.removeTabIndex(event) ⇒ void
removes the tabindex element from the event target
omniscriptMessaging.checkValidity() ⇒ Boolean
checkValidity should return a Boolean value true, if the input is valid, false if invalid.
omniscriptMessaging.reportValidity() ⇒ Boolean
reportValidity should return the value of checkValidity, and trigger the display of any validation messages as
well.
omniscriptMessaging.focus() ⇒ void
focuses the input. Overrides from htmlElement. Focuses if from requirement, but only temporarily.
omniscriptMessaging.stateRefresh() ⇒ void
Overwrites inherited method that gets triggered when data json changes.
omniscriptMessaging.render() ⇒ void
Overwrites native LWC render
omniscriptMessaging.renderedCallback() ⇒ void
Overwrites native LWC renderedCallback
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
ns/omniscriptMessaging ⇐ OmniscriptAtomicElement
Extends: OmniscriptAtomicElement
• ns/omniscriptMessaging ⇐ OmniscriptAtomicElement
• .messageText : String
• .messageType : String
• .initCompVariables() ⇒ void
• .evaluateValidity() ⇒ Boolean
• .removeTabIndex(event) ⇒ void
• .checkValidity() ⇒ Boolean
• .reportValidity() ⇒ Boolean
• .focus() ⇒ void
• .stateRefresh() ⇒ void
• .render() ⇒ void
• .renderedCallback() ⇒ void
omniscriptMessaging.messageText : String
Data store for text of message.
omniscriptMessaging.messageType : String
Data store for type of message.
omniscriptMessaging.initCompVariables() ⇒ void
Overwrites inherited initCompVariables. This method is executed once during connectedCallback.
Scope: private
omniscriptMessaging.evaluateValidity() ⇒ Boolean
Special function to determine if component is valid.
Scope: private
omniscriptMessaging.removeTabIndex(event) ⇒ void
removes the tabindex element from the event target
Scope: private
omniscriptMessaging.checkValidity() ⇒ Boolean
checkValidity should return a Boolean value true, if the input is valid, false if invalid.
Scope: public
omniscriptMessaging.reportValidity() ⇒ Boolean
reportValidity should return the value of checkValidity, and trigger the display of any validation messages as
well.
Scope: public
omniscriptMessaging.focus() ⇒ void
focuses the input. Overrides from htmlElement. Focuses if from requirement, but only temporarily.
Scope: public
omniscriptMessaging.stateRefresh() ⇒ void
Overwrites inherited method that gets triggered when data json changes.
Scope: private
omniscriptMessaging.render() ⇒ void
Overwrites native LWC render
Scope: private
omniscriptMessaging.renderedCallback() ⇒ void
Overwrites native LWC renderedCallback
Scope: private
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Properties
The following are a list of properties that are declared inside of the Omniscript Modal.
Methods
The following are a list of methods that are declared inside of the Omniscript Modal.
HTML Markup
The Omniscript Modal has a single template that supports both lightning and newport themes depending on
the layout.
Usage
<c-omniscript-modal data-omni-key='omnimodal'
type={type}
layout={layout}
triggered-on-step={triggeredOnStep}
hide-footer={hideFooter}
hide-header={hideHeader}>
</c-omniscript-modal>
Attributes
type --- string attribute which identifies the type of modal: success or error
triggeredOnStep --- boolean attribute which identifies if the modal is triggered on step (true) or in between
steps (false).
hideFooter --- boolean attribute which identifies if the modal footer is to be be hidden
hideFooter --- boolean attribute which identifies if the modal header is to be be hidden
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Omniscript Modal component provides functionality for the modal displayed for Omniscript. This
README will provide high-level information regarding the different properties and methods utilized by the
Omniscript Modal LWC component.
Properties
The following are a list of properties that are declared inside of the Omniscript Modal.
Methods
The following are a list of methods that are declared inside of the Omniscript Modal.
HTML Markup
The Omniscript Modal has a single template that supports both lightning and newport themes depending on
the layout.
Usage
<c-omniscript-modal data-omni-key='omnimodal'
type={type}
layout={layout}
hide-footer={hideFooter}
hide-header={hideHeader}>
</c-omniscript-modal>
Attributes
type --- string attribute which identifies the type of modal: success or error
hideFooter --- boolean attribute which identifies if the modal footer is to be be hidden
hideFooter --- boolean attribute which identifies if the modal header is to be be hidden
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Omniscript Modal component provides functionality for the modal displayed for Omniscript. This
README will provide high-level information regarding the different properties and methods utilized by the
Omniscript Modal LWC component.
Properties
The following are a list of properties that are declared inside of the Omniscript Modal.
Methods
The following are a list of methods that are declared inside of the Omniscript Modal.
HTML Markup
The Omniscript Modal has a single template that supports both lightning and newport themes depending on
the layout.
Usage
<c-omniscript-modal data-omni-key='omnimodal'
type={type}
layout={layout}
hide-footer={hideFooter}
hide-header={hideHeader}>
</c-omniscript-modal>
Attributes
type --- string attribute which identifies the type of modal: success or error
hideFooter --- boolean attribute which identifies if the modal footer is to be be hidden
hideFooter --- boolean attribute which identifies if the modal header is to be be hidden
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
OmniscriptOptionsMixin mixin class is used for validating prefil data for multiselect options.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-multiselect
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-multiselect>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Multi-select",
"rootIndex": 0,
"response": "omniscript",
"propSetMap": {
"controlWidth": 12,
"required": false,
"repeat": false,
"repeatClone": false,
"repeatLimit": null,
"readOnly": false,
"horizontalMode": "image",
"defaultValue": null,
"help": false,
"helpText": "",
"options": [
{
"imgId": "../servlet/servlet.ImageServer?
id=0151U000001dB1GQAU&&docName=VlocityLogo&&oid=00D1U0000010hNLUAY",
"value": "Omniscript Team",
"name": "omniscript"
},
{
"imgId": "../servlet/servlet.ImageServer?
id=0151U000001dB1IQAU&&docName=VlocityLogoIns&&oid=00D1U0000010hNLUAY",
"value": "Oards Team",
"name": "cards"
},
{
"imgId": "../servlet/servlet.ImageServer?
id=0151U000001dB1JQAU&&docName=VlocityLogoTagline&&oid=00D1U0000010hNLUAY",
"value": "Cpq Team",
"name": "cpq"
}
],
"optionSource": { "source": "", "type": "image" },
"controllingField": { "source": "", "type": "", "element": "" },
"show": null,
"conditionType": "Hide if False",
"accessibleInFutureSteps": false,
"HTMLTemplateId": "",
"hide": false,
"optionWidth": 100,
"optionHeight": 100,
"imageCountInRow": 3,
"enableCaption": true,
"disOnTplt": false,
"label": "Multi-select1",
"documentNames": ["VlocityLogo", "VlocityLogoIns", "VlocityLogoTagline"]
},
"name": "Multi-select1",
"level": 1,
"JSONPath": "Step1:Multi-select1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bMultiselect": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Multi-select1": "Step1:Multi-select1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Multi-select1": "" }
}
seedJson --- designer seed JSON + multiselect parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a multiselect element, This is extends from mixins class
OmniscriptOptionsMixin, OmniscriptAtomicElement.
OmniscriptOptionsMixin mixin class is used for validating prefill data for multiselect options.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-multiselect
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-multiselect>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Multi-select",
"rootIndex": 0,
"response": "omniscript",
"propSetMap": {
"controlWidth": 12,
"required": false,
"repeat": false,
"repeatClone": false,
"repeatLimit": null,
"readOnly": false,
"horizontalMode": "image",
"defaultValue": null,
"help": false,
"helpText": "",
"options": [
{
"imgId": "../servlet/servlet.ImageServer?
id=0151U000001dB1GQAU&&docName=VlocityLogo&&oid=00D1U0000010hNLUAY",
"value": "Omniscript Team",
"name": "omniscript"
},
{
"imgId": "../servlet/servlet.ImageServer?
id=0151U000001dB1IQAU&&docName=VlocityLogoIns&&oid=00D1U0000010hNLUAY",
"value": "Oards Team",
"name": "cards"
},
{
"imgId": "../servlet/servlet.ImageServer?
id=0151U000001dB1JQAU&&docName=VlocityLogoTagline&&oid=00D1U0000010hNLUAY",
"value": "Cpq Team",
"name": "cpq"
}
],
"optionSource": { "source": "", "type": "image" },
"controllingField": { "source": "", "type": "", "element": "" },
"show": null,
"conditionType": "Hide if False",
"accessibleInFutureSteps": false,
"HTMLTemplateId": "",
"hide": false,
"optionWidth": 100,
"optionHeight": 100,
"imageCountInRow": 3,
"enableCaption": true,
"disOnTplt": false,
"label": "Multi-select1",
"documentNames": ["VlocityLogo", "VlocityLogoIns", "VlocityLogoTagline"]
},
"name": "Multi-select1",
"level": 1,
"JSONPath": "Step1:Multi-select1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bMultiselect": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Multi-select1": "Step1:Multi-select1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Multi-select1": "" }
}
seedJson --- designer seed JSON + multiselect parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a MultiSelect element. This component extends from the mixin classes
OmniscriptOptionsMixin, OmniscriptAtomicElement.
OmniscriptOptionsMixin mixin class is used for validating prefill data for multiselect options.
Methods
Signature Scope Return Value Description
initCompVariables() private void Overwrite
handleChange(evt) private void Change handle
checkOptions(options, data) private Object Overwrite
updatePropOptions(newOptions) private void Update options
seedOptions() private Boolean Determines if seed data is to be returned.
render() private template Overwrites native LWC render
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-multiselect
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-multiselect>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Multi-select",
"rootIndex": 0,
"response": "omniscript",
"propSetMap": {
"controlWidth": 12,
"required": false,
"repeat": false,
"repeatClone": false,
"repeatLimit": null,
"readOnly": false,
"horizontalMode": "image",
"defaultValue": null,
"help": false,
"helpText": "",
"options": [
{
"imgId": "../servlet/servlet.ImageServer?
id=0151U000001dB1GQAU&&docName=VlocityLogo&&oid=00D1U0000010hNLUAY",
"value": "Omniscript Team",
"name": "omniscript"
},
{
"imgId": "../servlet/servlet.ImageServer?
id=0151U000001dB1IQAU&&docName=VlocityLogoIns&&oid=00D1U0000010hNLUAY",
"value": "Oards Team",
"name": "cards"
},
{
"imgId": "../servlet/servlet.ImageServer?
id=0151U000001dB1JQAU&&docName=VlocityLogoTagline&&oid=00D1U0000010hNLUAY",
"value": "Cpq Team",
"name": "cpq"
}
],
"optionSource": { "source": "", "type": "image" },
"controllingField": { "source": "", "type": "", "element": "" },
"show": null,
"conditionType": "Hide if False",
"accessibleInFutureSteps": false,
"HTMLTemplateId": "",
"hide": false,
"optionWidth": 100,
"optionHeight": 100,
"imageCountInRow": 3,
"enableCaption": true,
"disOnTplt": false,
"label": "Multi-select1",
"documentNames": ["VlocityLogo", "VlocityLogoIns", "VlocityLogoTagline"]
},
"name": "Multi-select1",
"level": 1,
"JSONPath": "Step1:Multi-select1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bMultiselect": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Multi-select1": "Step1:Multi-select1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Multi-select1": "" }
}
seedJson --- designer seed JSON + multiselect parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
User Guide
Methods
The following are a list of methods that are declared inside of the Omniscript Navigate Action. Navigate
Action is inherited from Omniscript Base Action for additional support regarding action invocation and
processing. Reference the Omniscript Base Action README for additional information regarding the
inherited class.
Markup
The OmniScript Navigate Action contains a single template that supports both lightning and newport
players.
Usage
<c-omniscript-navigate-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-navigate-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
dataOmniKey --- element unique identifier = name value in element's JSON definition
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The OmniScript Navigate Action exposes the functionality found in via_component's navigate-action
and can be used to navigate to various Salesforce experiences including: components, knowledge articles,
records, record-relationships, objects, named pages, navigation items (tabs, flexipages) as well as opening
links external to Salesforce. OmniScript Navigate Action extends OmniscriptBaseAction
Properties
Methods
The following are a list of methods that are declared inside of the Omniscript Navigate Action. Navigate
Action is inherited from Omniscript Base Action for additional support regarding action invocation and
processing. Reference the Omniscript Base Action README for additional information regarding the
inherited class.
Markup
The OmniScript Navigate Action contains a single template that supports both lightning and newport
players.
Usage
<c-omniscript-navigate-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-navigate-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
dataOmniKey --- element unique identifier = name value in element's JSON definition
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The OmniScript Navigate Action exposes the functionality found in via_component's navigate-action
and can be used to navigate to various Salesforce experiences including: components, knowledge articles,
records, record-relationships, objects, named pages, navigation items (tabs, flexipages) as well as opening
links external to Salesforce. OmniScript Navigate Action extends OmniscriptBaseAction
Properties
Methods
The following are a list of methods that are declared inside of the Omniscript Navigate Action. Navigate
Action is inherited from Omniscript Base Action for additional support regarding action invocation and
processing. Reference the Omniscript Base Action README for additional information regarding the
inherited class.
Markup
The OmniScript Navigate Action contains a single template that supports both lightning and newport
players.
Usage
<c-omniscript-navigate-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-navigate-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
dataOmniKey --- element unique identifier = name value in element's JSON definition
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-number
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-number>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Number",
"rootIndex": 0,
"response": 12345,
"propSetMap": {
"label": "Number1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"mask": "##,##.##",
"ptrnErrText": "",
"pattern": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Number1",
"level": 1,
"JSONPath": "Step1:Number1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bNumber": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Number1": "Step1:Number1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Number1": "" }
}
seedJson --- designer seed JSON + number parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Number Element, OmniscriptNumber is extended from
OmniscriptAtomicElement. Supported masking format example ##,##.##
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-number
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-number>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Number",
"rootIndex": 0,
"response": 12345,
"propSetMap": {
"label": "Number1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"mask": "##,##.##",
"ptrnErrText": "",
"pattern": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Number1",
"level": 1,
"JSONPath": "Step1:Number1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bNumber": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Number1": "Step1:Number1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Number1": "" }
}
seedJson --- designer seed JSON + number parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Number Element, OmniscriptNumber is extended from
OmniscriptAtomicElement. Supported masking format example ##,##.##
Methods
Signature Scope Return Value Description
initCompVariables() private void Overwrite
handleBlur(evt) private void Event handler for blur events.
validateData(data) private Object Evaluates if number is valid.
render() private template Overwrites native LWC render
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-number
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-number>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Number",
"rootIndex": 0,
"response": 12345,
"propSetMap": {
"label": "Number1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"mask": "##,##.##",
"ptrnErrText": "",
"pattern": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Number1",
"level": 1,
"JSONPath": "Step1:Number1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bNumber": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Number1": "Step1:Number1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Number1": "" }
}
seedJson --- designer seed JSON + number parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
The Omniscript Options Mixin does not have a dedicated template. It will utilize the Lower Order component
that the Mixin is wrapped.
Usage
In order to utilize this Omniscript Options Mixin, import the Mixin and wrap the extended component with
this Mixin.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This Mixin provides options logic integration for any component that is wrapped with this mixin component.
Properties
Methods
HTML Markup
The Omniscript Options Mixin does not have a dedicated template. It will utilize the Lower Order component
that the Mixin is wrapped.
Usage
In order to utilize this Omniscript Options Mixin, import the Mixin and wrap the extended component with
this Mixin.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This Mixin provides options logic integration for any component that is wrapped with this mixin component.
Properties
Methods
HTML Markup
The Omniscript Options Mixin does not have a dedicated template. It will utilize the Lower Order component
that the Mixin is wrapped.
Usage
In order to utilize this Omniscript Options Mixin, import the Mixin and wrap the extended component with
this Mixin.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptPassword ⇐ OmniscriptText
This component is used to render a Password Element.
Extends: OmniscriptText
omniscriptPassword.setElementFormattedValue() ⇒ void
Sets the formatted value parameter for inter-component communication of the display value. Overrides
from OmiscriptAtomicElement
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
ns/omniscriptPassword ⇐ OmniscriptText
Extends: OmniscriptText
omniscriptPassword.setElementFormattedValue() ⇒ void
Sets the formatted value parameter for inter-component communication of the display value. Overrides
from OmiscriptAtomicElement
Scope: private
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Vlocity Insurance and Health Summer '20 and Vlocity CME Fall '20
ns/omniscriptPlacesTypeahead ⇐ OmniscriptTypeahead
The omniscriptPlacesTypeahead component extends the functionality of the omniscriptTypeahead, and
utilizes the google places api autocomplete endpoint as it's options source.
Extends: OmniscriptTypeahead
• ns/omniscriptPlacesTypeahead ⇐ OmniscriptTypeahead
• .mapClasses : string
• .selectedPlace : Array.<Place>
• .zoomLevel : number
• ._placesService : GooglePlacesService
• ._sessionToken : string
• ._googleAttribution : string
• ._mapComp : LightningElement
• ._renderMap : boolean
• .getCoordinates() ⇒ Promise.<any>
• .handleTypeahead(evt) ⇒ void
• .getOptions() ⇒ Promise.<any>
• .handleResponse(data) ⇒ Promise.<any>
• .setOptions(data) ⇒ void
• .handleSelect(evt) ⇒ Promise.<any>
• .applySelection(placeDetailsResult) ⇒ Promise.<any>
• .transformResult(placeDetailsResult) ⇒ Promise.<any>
• .hideMap() ⇒ void
• .showMap() ⇒ void
• .sendDataToDebugConsole(params, resp, label) ⇒ void
omniscriptPlacesTypeahead.mapClasses : string
Css classes applied to the lightning-map element. Used to toggle visibility.
omniscriptPlacesTypeahead.selectedPlace : Array.<Place>
An array containing the selected place. This is an array because the lightning-map is expecting an array of
items for it's map-markers attribute.
omniscriptPlacesTypeahead.zoomLevel : number
Passed in to the lightning-map element's zoom-level attribute.
omniscriptPlacesTypeahead._placesService : GooglePlacesService
A reference to to a GooglePlacesService instance. Instantiated in this.initCompVariables.
omniscriptPlacesTypeahead._sessionToken : string
This is a hash generated by the google places service, and is used to track billing information on the
Google API side.
omniscriptPlacesTypeahead._googleAttribution : string
A reference to the required attribution image.
omniscriptPlacesTypeahead._mapComp : LightningElement
A reference to the lightning-map lwc. Cached in the initial renderedCallback.
omniscriptPlacesTypeahead._renderMap : boolean
Whether or not to render the dom containing the lightning-map element.
omniscriptPlacesTypeahead.getCoordinates() ⇒ Promise.<any>
If the coordinates have not yet been set, returns the pending promise, otherwise will resolve the cached
value.
omniscriptPlacesTypeahead.handleTypeahead(evt) ⇒ void
A throttled callback bound from OmniscriptTypeahead.initCompVariables.
Param Type
evt KeyboardEvent
omniscriptPlacesTypeahead.getOptions() ⇒ Promise.<any>
Defines the promise chain used to get/set typeahead options.
omniscriptPlacesTypeahead.handleResponse(data) ⇒ Promise.<any>
Link in the promise storing _sessionToken and trimming back the result.
omniscriptPlacesTypeahead.setOptions(data) ⇒ void
Link in the promise chain that sets results from GooglePlaces.placeAutocomplete.predictions, and formats
them for use in the c-typeahead component.
omniscriptPlacesTypeahead.handleSelect(evt) ⇒ Promise.<any>
Called when a selection is made from the base typeahead component. Bound in template.
Param Type
evt CustomEvent
omniscriptPlacesTypeahead.applySelection(placeDetailsResult) ⇒ Promise.<any>
Takes the selected place from the 'select' event, stores the details in this.selected place, then shows the
map, and calculates the correct zoom.
Param Type
placeDetailsResult *
omniscriptPlacesTypeahead.transformResult(placeDetailsResult) ⇒ Promise.<any>
This step in the promise chain takes the placeDetailsResult and maps the address component to the
structure specified in the os designer.
Param Type
placeDetailsResult *
omniscriptPlacesTypeahead.hideMap() ⇒ void
Hides the lightning-map component by adding the theme-appropriate 'hide' class.
omniscriptPlacesTypeahead.showMap() ⇒ void
Shows the lightning-map component by removing the theme-appropriate 'hide' class.
Param Type
params Object
resp Object
label string
PLACE_DETAIL_FIELDS : string
Comma separated list of fields to be returned by the googlePlacesApi place details endpoint. For a
complete list of fields see: {@link:https://developers.google.com/places/web-service/details#fields}
ns/omniscriptPlacesTypeahead ⇐ OmniscriptTypeahead
The omniscriptPlacesTypeahead component extends the functionality of the omniscriptTypeahead, and
utilizes the google places api autocomplete endpoint as it's options source.
Extends: OmniscriptTypeahead
• ns/omniscriptPlacesTypeahead ⇐ OmniscriptTypeahead
• .mapClasses : string
• .selectedPlace : Array.<Place>
• .zoomLevel : number
• ._placesService : GooglePlacesService
• ._sessionToken : string
• ._googleAttribution : URL
• ._mapComp : LightningElement
• .getCoordinates() ⇒ Promise.<any>
• .handleTypeahead(evt) ⇒ void
• .getOptions() ⇒ Promise.<any>
• .handleResponse(data) ⇒ Promise.<any>
• .setOptions(data) ⇒ void
• .handleSelect(evt) ⇒ Promise.<any>
• .applySelection(placeDetailsResult) ⇒ Promise.<any>
• .transformResult(placeDetailsResult) ⇒ Promise.<any>
• .hideMap() ⇒ void
• .showMap() ⇒ void
omniscriptPlacesTypeahead.mapClasses : string
Css classes applied to the lightning-map element. Used to toggle visibility.
omniscriptPlacesTypeahead.selectedPlace : Array.<Place>
An array containing the selected place. This is an array because the lightning-map is expecting an array of
items for it's map-markers attribute.
omniscriptPlacesTypeahead.zoomLevel : number
Passed in to the lightning-map element's zoom-level attribute.
omniscriptPlacesTypeahead._placesService : GooglePlacesService
A reference to to a GooglePlacesService instance. Instantiated in this.initCompVariables.
omniscriptPlacesTypeahead._sessionToken : string
This is a hash generated by the google places service, and is used to track billing information on the
Google API side.
omniscriptPlacesTypeahead._googleAttribution : URL
A reference to the required attribution image.
omniscriptPlacesTypeahead._mapComp : LightningElement
A reference to the lightning-map lwc. Cached in the initial renderedCallback.
omniscriptPlacesTypeahead.getCoordinates() ⇒ Promise.<any>
If the coordinates have not yet been set, returns the pending promise, otherwise will resolve the cached
value.
omniscriptPlacesTypeahead.handleTypeahead(evt) ⇒ void
A throttled callback bound from OmniscriptTypeahead.initCompVariables.
Param Type
evt KeyboardEvent
omniscriptPlacesTypeahead.getOptions() ⇒ Promise.<any>
Defines the promise chain used to get/set typeahead options.
omniscriptPlacesTypeahead.handleResponse(data) ⇒ Promise.<any>
Link in the promise storing _sessionToken and trimming back the result.
omniscriptPlacesTypeahead.setOptions(data) ⇒ void
Link in the promise chain that sets results from GooglePlaces.placeAutocomplete.predictions, and formats
them for use in the c-typeahead component.
omniscriptPlacesTypeahead.handleSelect(evt) ⇒ Promise.<any>
Called when a selection is made from the base typeahead component. Bound in template.
Param Type
evt CustomEvent
omniscriptPlacesTypeahead.applySelection(placeDetailsResult) ⇒ Promise.<any>
Takes the selected place from the 'select' event, stores the details in this.selected place, then shows the
map, and calculates the correct zoom.
Param Type
placeDetailsResult *
omniscriptPlacesTypeahead.transformResult(placeDetailsResult) ⇒ Promise.<any>
This step in the promise chain takes the placeDetailsResult and maps the address component to the
structure specified in the os designer.
Param Type
placeDetailsResult *
omniscriptPlacesTypeahead.hideMap() ⇒ void
Hides the lightning-map component by adding the theme-appropriate 'hide' class.
omniscriptPlacesTypeahead.showMap() ⇒ void
Shows the lightning-map component by removing the theme-appropriate 'hide' class.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
ns/omniscriptPlacesTypeahead ⇐ OmniscriptTypeahead
The omniscriptPlacesTypeahead component extends the functionality of the omniscriptTypeahead, and
utilizes the google places api autocomplete endpoint as it's options source.
Extends: OmniscriptTypeahead
• ns/omniscriptPlacesTypeahead ⇐ OmniscriptTypeahead
• .mapClasses : string
• .selectedPlace : Array.
• .zoomLevel : number
• ._placesService : GooglePlacesService
• ._sessionToken : string
• ._googleAttribution : URL
• ._mapComp : LightningElement
• .handleFocus() ⇒ void
• .getCoordinates() ⇒ Promise.
• .handleTypeahead(evt) ⇒ void
• .getOptions() ⇒ Promise.
• .handleResponse(data) ⇒ Promise.
• .setOptions(data) ⇒ void
• .handleSelect(evt) ⇒ Promise.
• .applySelection(placeDetailsResult) ⇒ Promise.
• .transformResult(placeDetailsResult) ⇒ Promise.
• .hideMap() ⇒ void
• .showMap() ⇒ void
ns/omniscriptPlacesTypeahead.mapClasses : string
ns/omniscriptPlacesTypeahead.selectedPlace : Array.
• An array containing the selected place. This is an array because the lightning-map is expecting an array
of items for it's map-markers attribute.
ns/omniscriptPlacesTypeahead.zoomLevel : number
ns/omniscriptPlacesTypeahead._placesService : GooglePlacesService
Scope: private
ns/omniscriptPlacesTypeahead._sessionToken : string
• This is a hash generated by the google places service, and is used to track billing information on the
Google API side.
Scope: private
ns/omniscriptPlacesTypeahead._googleAttribution : URL
Scope: private
ns/omniscriptPlacesTypeahead._mapComp : LightningElement
Scope: private
ns/omniscriptPlacesTypeahead.handleFocus() ⇒ void
A handler for the focus event, bound in initCompVariables lifecycle hook.
ns/omniscriptPlacesTypeahead.getCoordinates() ⇒ Promise.
If the coordinates have not yet been set, returns the pending promise, otherwise will resolve the cached
value.
Scope: private
ns/omniscriptPlacesTypeahead.handleTypeahead(evt) ⇒ void
A throttled callback bound from
Scope: private
Param Type
evt KeyboardEvent
ns/omniscriptPlacesTypeahead.getOptions() ⇒ Promise.
Defines the promise chain used to get/set typeahead options.
Scope: private
ns/omniscriptPlacesTypeahead.handleResponse(data) ⇒ Promise.
Link in the promise storing _sessionToken and trimming back the result.
Scope: private
ns/omniscriptPlacesTypeahead.setOptions(data) ⇒ void
Link in the promise chain that sets results from GooglePlaces.placeAutocomplete.predictions, and formats
them for use in the c-typeahead component.
Scope: private
ns/omniscriptPlacesTypeahead.handleSelect(evt) ⇒ Promise.
Called when a selection is made from the base typeahead component. Bound in template.
Scope: private
Param Type
evt CustomEvent
ns/omniscriptPlacesTypeahead.applySelection(placeDetailsResult) ⇒ Promise.
Takes the selected place from the 'select' event, stores the details in this.selected place, then shows the
map, and calculates the correct zoom.
Param Type
placeDetailsResult *
ns/omniscriptPlacesTypeahead.transformResult(placeDetailsResult) ⇒ Promise.
This step in the promise chain takes the placeDetailsResult and maps the address component to the
structure specified in the os designer.
Scope: private
Param Type
placeDetailsResult *
ns/omniscriptPlacesTypeahead.hideMap() ⇒ void
Hides the lightning-map component by adding the theme-appropriate 'hide' class.
Scope: private
ns/omniscriptPlacesTypeahead.showMap() ⇒ void
Shows the lightning-map component by removing the theme-appropriate 'hide' class.
Scope: private
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
OmniscriptOptionsMixin mixin class is used for validating prefill data for radio.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-radio
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-radio>
Usage
jsonDef** -- json definition of the OmniScript Element
Example ---
{
"type": "Radio",
"rootIndex": 0,
"response": "Omniscript",
"propSetMap": {
"controlWidth": 12,
"required": false,
"repeat": false,
"repeatClone": false,
"repeatLimit": null,
"readOnly": false,
"horizontalMode": "image",
"defaultValue": null,
"help": false,
"helpText": "",
"options": [
{
"name": "Omniscript",
"value": "Omniscript Team",
"imgId": "../servlet/servlet.ImageServer?
id=0151H000006K9XJQA0&&docName=VlocityCommunicationsLogo&&oid=00D1H000000Mk0NUA
S"
},
{
"name": "Cards",
"value": "Cards Team",
"imgId": "../servlet/servlet.ImageServer?
id=0151H000006K9XRQA0&&docName=VlocityPublicSectorLogo&&oid=00D1H000000Mk0NUAS"
},
{
"name": "Cpq",
"value": "Cpq Team",
"imgId": "../servlet/servlet.ImageServer?
id=0151H000006K9XNQA0&&docName=VlocityLogo&&oid=00D1H000000Mk0NUAS"
}
],
"optionSource": { "type": "image", "source": "" },
"controllingField": { "element": "", "type": "", "source": "" },
"show": null,
"conditionType": "Hide if False",
"accessibleInFutureSteps": false,
"HTMLTemplateId": "",
"hide": false,
"optionWidth": 100,
"optionHeight": 100,
"imageCountInRow": 3,
"enableCaption": true,
"disOnTplt": false,
"label": "Radio1",
"documentNames": [
"VlocityCommunicationsLogo",
"VlocityPublicSectorLogo",
"VlocityLogo"
]
},
"name": "Radio1",
"level": 1,
"JSONPath": "Step1:Radio1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bRadio": true,
"lwcId": "lwc000",
}
Example ---
{
"labelMap": { "Radio1": "Step1:Radio1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Radio1": "" }
}
seedJson --- designer seed JSON + radio parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Radio element. This component extends from the mixin class
OmniscriptOptionsMixin and OmniscriptAtomicElement.
OmniscriptOptionsMixin mixin class is used for validating prefill data for radio.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-radio
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-radio>
Usage
jsonDef** -- json definition of the OmniScript Element
Example ---
{
"type": "Radio",
"rootIndex": 0,
"response": "Omniscript",
"propSetMap": {
"controlWidth": 12,
"required": false,
"repeat": false,
"repeatClone": false,
"repeatLimit": null,
"readOnly": false,
"horizontalMode": "image",
"defaultValue": null,
"help": false,
"helpText": "",
"options": [
{
"name": "Omniscript",
"value": "Omniscript Team",
"imgId": "../servlet/servlet.ImageServer?
id=0151H000006K9XJQA0&&docName=VlocityCommunicationsLogo&&oid=00D1H000000Mk0NUA
S"
},
{
"name": "Cards",
"value": "Cards Team",
"imgId": "../servlet/servlet.ImageServer?
id=0151H000006K9XRQA0&&docName=VlocityPublicSectorLogo&&oid=00D1H000000Mk0NUAS"
},
{
"name": "Cpq",
"value": "Cpq Team",
"imgId": "../servlet/servlet.ImageServer?
id=0151H000006K9XNQA0&&docName=VlocityLogo&&oid=00D1H000000Mk0NUAS"
}
],
"optionSource": { "type": "image", "source": "" },
"controllingField": { "element": "", "type": "", "source": "" },
"show": null,
"conditionType": "Hide if False",
"accessibleInFutureSteps": false,
"HTMLTemplateId": "",
"hide": false,
"optionWidth": 100,
"optionHeight": 100,
"imageCountInRow": 3,
"enableCaption": true,
"disOnTplt": false,
"label": "Radio1",
"documentNames": [
"VlocityCommunicationsLogo",
"VlocityPublicSectorLogo",
"VlocityLogo"
]
},
"name": "Radio1",
"level": 1,
"JSONPath": "Step1:Radio1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bRadio": true,
"lwcId": "lwc000",
}
Example ---
{
"labelMap": { "Radio1": "Step1:Radio1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Radio1": "" }
}
seedJson --- designer seed JSON + radio parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Radio element, This component extends from mixin classes
OmniscriptOptionsMixin and OmniscriptAtomicElement.
OmniscriptOptionsMixin mixin class is used for validating prefill data for radio.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-radio
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-radio>
Usage
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Radio",
"rootIndex": 0,
"response": "Omniscript",
"propSetMap": {
"controlWidth": 12,
"required": false,
"repeat": false,
"repeatClone": false,
"repeatLimit": null,
"readOnly": false,
"horizontalMode": "image",
"defaultValue": null,
"help": false,
"helpText": "",
"options": [
{
"name": "Omniscript",
"value": "Omniscript Team",
"imgId": "../servlet/servlet.ImageServer?
id=0151H000006K9XJQA0&&docName=VlocityCommunicationsLogo&&oid=00D1H000000Mk0NUA
S"
},
{
"name": "Cards",
"value": "Cards Team",
"imgId": "../servlet/servlet.ImageServer?
id=0151H000006K9XRQA0&&docName=VlocityPublicSectorLogo&&oid=00D1H000000Mk0NUAS"
},
{
"name": "Cpq",
"value": "Cpq Team",
"imgId": "../servlet/servlet.ImageServer?
id=0151H000006K9XNQA0&&docName=VlocityLogo&&oid=00D1H000000Mk0NUAS"
}
],
"optionSource": { "type": "image", "source": "" },
"controllingField": { "element": "", "type": "", "source": "" },
"show": null,
"conditionType": "Hide if False",
"accessibleInFutureSteps": false,
"HTMLTemplateId": "",
"hide": false,
"optionWidth": 100,
"optionHeight": 100,
"imageCountInRow": 3,
"enableCaption": true,
"disOnTplt": false,
"label": "Radio1",
"documentNames": [
"VlocityCommunicationsLogo",
"VlocityPublicSectorLogo",
"VlocityLogo"
]
},
"name": "Radio1",
"level": 1,
"JSONPath": "Step1:Radio1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bRadio": true,
"lwcId": "lwc000",
}
Example ---
{
"labelMap": { "Radio1": "Step1:Radio1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Radio1": "" }
}
seedJson --- designer seed JSON + radio parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-radio-group
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-radio-group>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Radio Group",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "RadioGroup1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"controllingField": {
"source": "",
"type": "",
"element": ""
},
"optionSource": {
"source": "",
"type": ""
},
"options": [
{
"setAll": true,
"value": "rlabl1",
"name": "rval1"
},
{
"value": "rlabl2",
"name": "rval2"
},
{
"setAll": true,
"value": "rlabl3",
"name": "rval3"
}
],
"radioLabels": [
{
"value": "rdisplaylabel1",
"name": "rdisplay1",
"id": "RadioGroup1-0"
},
{
"value": "rdisplaylabel2",
"name": "rdisplay2",
"id": "RadioGroup1-1"
}
],
"radioLabelsWidth": 6,
"helpText": "",
"help": false,
"readOnly": false,
"required": true,
"controlWidth": 12
},
"name": "RadioGroup1",
"level": 1,
"JSONPath": "Step2:RadioGroup1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bRadioGroup": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a RadioGroup element, it extends from OmniscriptAtomicElement.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-radio-group
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-radio-group>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Radio Group",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "RadioGroup1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"controllingField": {
"source": "",
"type": "",
"element": ""
},
"optionSource": {
"source": "",
"type": ""
},
"options": [
{
"setAll": true,
"value": "rlabl1",
"name": "rval1"
},
{
"value": "rlabl2",
"name": "rval2"
},
{
"setAll": true,
"value": "rlabl3",
"name": "rval3"
}
],
"radioLabels": [
{
"value": "rdisplaylabel1",
"name": "rdisplay1",
"id": "RadioGroup1-0"
},
{
"value": "rdisplaylabel2",
"name": "rdisplay2",
"id": "RadioGroup1-1"
}
],
"radioLabelsWidth": 6,
"helpText": "",
"help": false,
"readOnly": false,
"required": true,
"controlWidth": 12
},
"name": "RadioGroup1",
"level": 1,
"JSONPath": "Step2:RadioGroup1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bRadioGroup": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a RadioGroup element, it extends from OmniscriptAtomicElement.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-radio-group
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-radio-group>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Radio Group",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "RadioGroup1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"controllingField": {
"source": "",
"type": "",
"element": ""
},
"optionSource": {
"source": "",
"type": ""
},
"options": [
{
"setAll": true,
"value": "rlabl1",
"name": "rval1"
},
{
"value": "rlabl2",
"name": "rval2"
},
{
"setAll": true,
"value": "rlabl3",
"name": "rval3"
}
],
"radioLabels": [
{
"value": "rdisplaylabel1",
"name": "rdisplay1",
"id": "RadioGroup1-0"
},
{
"value": "rdisplaylabel2",
"name": "rdisplay2",
"id": "RadioGroup1-1"
}
],
"radioLabelsWidth": 6,
"helpText": "",
"help": false,
"readOnly": false,
"required": true,
"controlWidth": 12
},
"name": "RadioGroup1",
"level": 1,
"JSONPath": "Step2:RadioGroup1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bRadioGroup": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
seedJson --- designer seed JSON + url parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-range
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-range>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Range",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Range1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"mask": null,
"step": 1,
"rangeHigh": 10,
"rangeLow": 5,
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"controlWidth": 12
},
"name": "Range1",
"level": 1,
"JSONPath": "Step1:Range1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bRange": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Range1": "Step1:Range1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Range1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Range element. It extends from OmniscriptAtomicElement.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-range
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-range>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Range",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Range1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"mask": null,
"step": 1,
"rangeHigh": 10,
"rangeLow": 5,
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"controlWidth": 12
},
"name": "Range1",
"level": 1,
"JSONPath": "Step1:Range1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bRange": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Range1": "Step1:Range1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Range1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Range element. It extends from OmniscriptAtomicElement.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-range
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-range>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Range",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Range1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"mask": null,
"step": 1,
"rangeHigh": 10,
"rangeLow": 5,
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"controlWidth": 12
},
"name": "Range1",
"level": 1,
"JSONPath": "Step1:Range1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bRange": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Range1": "Step1:Range1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Range1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
The Omniscript Remote Action component provides functionality for invoking Apex classes. This README
will provide high-level information regarding the different properties and methods utilized by the Omniscript
Remote Action LWC component.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Methods
The following are a list of methods that are declared inside of the Omniscript Remote Action. Remote
Action is inherited from Omniscript Base Action for additional support regarding action invocation and
processing. Reference the Omniscript Base Action README for additional information regarding the
inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-remote-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
layout={layout}
run-mode={runMode}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-remote-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Remote Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": { "default": null, "custom": [] },
"label": "RemoteAction1",
"svgIcon": "",
"svgSprite": "",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Step",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"extraPayload": {},
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteTimeout": 30000,
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteMethod": "SampleMethod",
"remoteClass": "SampleClass",
"controlWidth": 12
},
"name": "RemoteAction1",
"level": 1,
"JSONPath": "Step1:RemoteAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bRemoteAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"RemoteAction1": "Step1:RemoteAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"RemoteAction1": ""
}
}
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Omniscript Remote Action component provides functionality for invoking Apex classes. This README
will provide high-level information regarding the different properties and methods utilized by the Omniscript
Remote Action LWC component.
Methods
The following are a list of methods that are declared inside of the Omniscript Remote Action. Remote
Action is inherited from Omniscript Base Action for additional support regarding action invocation and
processing. Reference the Omniscript Base Action README for additional information regarding the
inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-remote-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
layout={layout}
run-mode={runMode}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-remote-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Remote Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": { "default": null, "custom": [] },
"label": "RemoteAction1",
"svgIcon": "",
"svgSprite": "",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Step",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"extraPayload": {},
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteTimeout": 30000,
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteMethod": "SampleMethod",
"remoteClass": "SampleClass",
"controlWidth": 12
},
"name": "RemoteAction1",
"level": 1,
"JSONPath": "Step1:RemoteAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bRemoteAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"RemoteAction1": "Step1:RemoteAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"RemoteAction1": ""
}
}
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Omniscript Remote Action component provides functionality for invoking Apex classes. This ReadMe
will provide high-level information regarding the different properties and methods utilized by the OmniScript
Remote Action LWC component.
Methods
The following are a list of methods that are declared inside of the OmniScript Remote Action. Remote
Action is inherited from OmniScript Base Action for additional support regarding action invocation and
processing. Reference the Omniscript Base Action README for additional information regarding the
inherited class.
HTML Markup
HTML markup is inherited from the OmniScript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-remote-action json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-remote-action>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Remote Action",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"enableDefaultAbort": false,
"errorMessage": { "default": null, "custom": [] },
"label": "RemoteAction1",
"svgIcon": "",
"svgSprite": "",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"redirectPreviousWidth": 3,
"redirectPreviousLabel": "Previous",
"redirectNextWidth": 3,
"redirectNextLabel": "Next",
"redirectTemplateUrl": "vlcAcknowledge.html",
"redirectPageName": "",
"validationRequired": "Step",
"failureAbortMessage": "Are you sure?",
"failureGoBackLabel": "Go Back",
"failureAbortLabel": "Abort",
"failureNextLabel": "Continue",
"postMessage": "Done",
"inProgressMessage": "In Progress",
"extraPayload": {},
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteTimeout": 30000,
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteMethod": "SampleMethod",
"remoteClass": "SampleClass",
"controlWidth": 12
},
"name": "RemoteAction1",
"level": 1,
"JSONPath": "Step1:RemoteAction1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bRemoteAction": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"RemoteAction1": "Step1:RemoteAction1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"RemoteAction1": ""
}
}
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Vlocity Insurance and Health Summer '20 and Vlocity CME Fall '20
lwcPrep(data, runMode)
A wrapper that calls the LWCPrep method
Param Type
data any
runMode string
allCustomLabels
Object containing all Salesforce custom labels
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptSaveForLaterAcknowledge
This component is used to render Save For Later's acknowledge modal
• ns/omniscriptSaveForLaterAcknowledge
• instance
• ._result : Object
• ._bSflLabels : Object
• .result
• .layout : String
• .resumeLink : String
• .emailLink : String
• .hasResult : Boolean
• .showCopyModal()
• inner
• ~OmniscriptSaveForLaterAcknowledge ⇐ LightningElement
ns/omniscriptSaveForLaterAcknowledge._result : Object
Contains the results for the save for later acknowledge
ns/omniscriptSaveForLaterAcknowledge._bSflLabels : Object
Contains all of the custom labels
ns/omniscriptSaveForLaterAcknowledge.result
Sets the result for the save for later acknowledge
ns/omniscriptSaveForLaterAcknowledge.layout : String
Stores theme layout.
ns/omniscriptSaveForLaterAcknowledge.resumeLink : String
Stores resume link.
ns/omniscriptSaveForLaterAcknowledge.emailLink : String
Stores email link.
ns/omniscriptSaveForLaterAcknowledge.hasResult : Boolean
Flag to determine if there is a result for the save for later acknowledge
ns/omniscriptSaveForLaterAcknowledge.showCopyModal()
Opens modal to display resume link for the save for later acknowledge
ns/omniscriptSaveForLaterAcknowledge~OmniscriptSaveForLaterAcknowledge ⇐
LightningElement
Kind: inner class of ns/omniscriptSaveForLaterAcknowledge Extends: LightningElement
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
OmniscriptOptionsMixin mixin class is used for validating prefill data for select.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-select
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-select>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Select",
"rootIndex": 0,
"response": "Omniscript",
"propSetMap": {
"label": "Select1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"controllingField": { "source": "", "type": "", "element": "" },
"optionSource": { "source": "", "type": "" },
"options": [
{ "value": "Omniscript Team", "name": "Omniscript" },
{ "value": "Cards Team", "name": "Cards" },
{ "value": "Cpq Team", "name": "Cpq" }
],
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Select1",
"level": 1,
"JSONPath": "Step1:Select1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bSelect": true,
"lwcId": "lwc000"
}
Example ---
{
"labelMap": { "Select1": "Step1:Select1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Select1": "" }
}
seedJson --- designer seed JSON + select parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Select element, This component extends from the mixins class
OmniscriptOptionsMixin, OmniscriptAtomicElement.
OmniscriptOptionsMixin mixin class is used for validating prefill data for select.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-select
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-select>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Select",
"rootIndex": 0,
"response": "Omniscript",
"propSetMap": {
"label": "Select1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"controllingField": { "source": "", "type": "", "element": "" },
"optionSource": { "source": "", "type": "" },
"options": [
{ "value": "Omniscript Team", "name": "Omniscript" },
{ "value": "Cards Team", "name": "Cards" },
{ "value": "Cpq Team", "name": "Cpq" }
],
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Select1",
"level": 1,
"JSONPath": "Step1:Select1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bSelect": true,
"lwcId": "lwc000"
}
Example ---
{
"labelMap": { "Select1": "Step1:Select1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Select1": "" }
}
seedJson --- designer seed JSON + select parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Select element, This component extends from mixin classes
OmniscriptOptionsMixin, OmniscriptAtomicElement.
OmniscriptOptionsMixin mixin class is used for validating prefill data for select.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-select
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-select>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Select",
"rootIndex": 0,
"response": "Omniscript",
"propSetMap": {
"label": "Select1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"controllingField": { "source": "", "type": "", "element": "" },
"optionSource": { "source": "", "type": "" },
"options": [
{ "value": "Omniscript Team", "name": "Omniscript" },
{ "value": "Cards Team", "name": "Cards" },
{ "value": "Cpq Team", "name": "Cpq" }
],
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Select1",
"level": 1,
"JSONPath": "Step1:Select1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bSelect": true,
"lwcId": "lwc000"
}
Example ---
{
"labelMap": { "Select1": "Step1:Select1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Select1": "" }
}
seedJson --- designer seed JSON + select parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptSetErrors
This component is used to perform Set Errors.
• ns/omniscriptSetErrors
• module.exports ⇐ OmniscriptBaseAction ⏏
• .connectedCallback() ⇒ Void
module.exports ⇐ OmniscriptBaseAction ⏏
Default exported class OmniscriptSetErrors.
omniscriptSetErrors.connectedCallback() ⇒ Void
Overwrites inherited connectedCallback. Instantiates specific action utility class from action framework.
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Methods
The following are a list of methods that are declared inside of the Omniscript Set Values. Set Values is
inherited from Omniscript Base Action for additional support regarding action invocation and processing.
Reference the Omniscript Base Action README for additional information regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-set-values json-def={jsonDef}
script-header-def={scriptHeaderDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
resume={resume}
run-mode={runMode}
layout={layout}>
</c-omniscript-set-values>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Set Values",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"label": "SetValues1",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"elementValueMap": { "": "" },
"controlWidth": 12
},
"name": "SetValues1",
"level": 1,
"JSONPath": "Step1:SetValues1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bSetValues": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"SetValues1": "Step1:SetValues1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"SetValues1": ""
}
}
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Omniscript Set Values component provides functionality for setting values. This README will provide
high-level information regarding the different properties and methods utilized by the Omniscript Set Values
LWC component.
Methods
The following are a list of methods that are declared inside of the Omniscript Set Values. Set Values is
inherited from Omniscript Base Action for additional support regarding action invocation and processing.
Reference the Omniscript Base Action README for additional information regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-set-values json-def={jsonDef}
script-header-def={scriptHeaderDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
resume={resume}
run-mode={runMode}
layout={layout}>
</c-omniscript-set-values>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Set Values",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"label": "SetValues1",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"elementValueMap": { "": "" },
"controlWidth": 12
},
"name": "SetValues1",
"level": 1,
"JSONPath": "Step1:SetValues1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bSetValues": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"SetValues1": "Step1:SetValues1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"SetValues1": ""
}
}
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Omniscript Set Values component provides functionality for setting values. This README will provide
high-level information regarding the different properties and methods utilized by the Omniscript Set Values
LWC component.
Methods
The following are a list of methods that are declared inside of the Omniscript Set Values. Set Values is
inherited from Omniscript Base Action for additional support regarding action invocation and processing.
Reference the Omniscript Base Action README for additional information regarding the inherited class.
HTML Markup
HTML markup is inherited from the Omniscript Base Action. The templates support both lightning and
newport themes.
Usage
<c-omniscript-set-values json-def={jsonDef}
script-header-def={scriptHeaderDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
resume={resume}
layout={layout}>
</c-omniscript-set-values>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Set Values",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"label": "SetValues1",
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"HTMLTemplateId": "",
"show": null,
"showPersistentComponent": [null, null],
"elementValueMap": { "": "" },
"controlWidth": 12
},
"name": "SetValues1",
"level": 1,
"JSONPath": "Step1:SetValues1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bSetValues": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"SetValues1": "Step1:SetValues1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"SetValues1": ""
}
}
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-step json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
run-mode={runMode}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-step>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Step",
"propSetMap": {
"disOnTplt": false,
"errorMessage": { "default": null, "custom": [] },
"allowSaveForLater": true,
"label": "Step1",
"chartLabel": null,
"instructionKey": "",
"HTMLTemplateId": "",
"conditionType": "Hide if False",
"show": null,
"knowledgeOptions": {
"typeFilter": "",
"remoteTimeout": 30000,
"dataCategoryCriteria": "",
"keyword": "",
"publishStatus": "Online",
"language": "English"
},
"remoteOptions": {},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"showPersistentComponent": [null, null],
"instruction": "",
"completeMessage": "Are you sure you want to complete the script?",
"completeLabel": "Complete",
"saveMessage": "Are you sure you want to save it for later?",
"saveLabel": "Save for later",
"cancelMessage": "Are you sure?",
"cancelLabel": "Cancel",
"nextWidth": 3,
"nextLabel": "Next",
"previousWidth": 3,
"previousLabel": "Previous",
"validationRequired": true,
"uiElements": { "Step1": "", "Text1": "" }
},
"offSet": 0,
"name": "Step1",
"level": 0,
"indexInParent": 0,
"bHasAttachment": false,
"bEmbed": false,
"response": null,
"inheritShowProp": null,
"children": [
{
"response": null,
"level": 1,
"indexInParent": 0,
"eleArray": [
{
"type": "Text",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Text1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"maxLength": 255,
"minLength": 0,
"ptrnErrText": "",
"pattern": "",
"mask": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Text1",
"level": 1,
"JSONPath": "Step1:Text1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bText": true,
"lwcId": "lwc000"
}
],
"bHasAttachment": false
}
],
"bAccordionOpen": true,
"bAccordionActive": true,
"bStep": true,
"JSONPath": "Step1",
"lwcId": "lwc0"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This is the LWC for the OmniScript Step element.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-step json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
json-data-str={jsonDataStr}
run-mode={runMode}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-step>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Step",
"propSetMap": {
"disOnTplt": false,
"errorMessage": { "default": null, "custom": [] },
"allowSaveForLater": true,
"label": "Step1",
"chartLabel": null,
"instructionKey": "",
"HTMLTemplateId": "",
"conditionType": "Hide if False",
"show": null,
"knowledgeOptions": {
"typeFilter": "",
"remoteTimeout": 30000,
"dataCategoryCriteria": "",
"keyword": "",
"publishStatus": "Online",
"language": "English"
},
"remoteOptions": {},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"showPersistentComponent": [null, null],
"instruction": "",
"completeMessage": "Are you sure you want to complete the script?",
"completeLabel": "Complete",
"saveMessage": "Are you sure you want to save it for later?",
"saveLabel": "Save for later",
"cancelMessage": "Are you sure?",
"cancelLabel": "Cancel",
"nextWidth": 3,
"nextLabel": "Next",
"previousWidth": 3,
"previousLabel": "Previous",
"validationRequired": true,
"uiElements": { "Step1": "", "Text1": "" }
},
"offSet": 0,
"name": "Step1",
"level": 0,
"indexInParent": 0,
"bHasAttachment": false,
"bEmbed": false,
"response": null,
"inheritShowProp": null,
"children": [
{
"response": null,
"level": 1,
"indexInParent": 0,
"eleArray": [
{
"type": "Text",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Text1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"maxLength": 255,
"minLength": 0,
"ptrnErrText": "",
"pattern": "",
"mask": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Text1",
"level": 1,
"JSONPath": "Step1:Text1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bText": true,
"lwcId": "lwc000"
}
],
"bHasAttachment": false
}
],
"bAccordionOpen": true,
"bAccordionActive": true,
"bStep": true,
"JSONPath": "Step1",
"lwcId": "lwc0"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
runMode --- flag to determine the location of where the OmniScript is run
Example ---
{
"labelMap": {
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This is the LWC for the OmniScript Step element.
Methods
Signature Scope Return Value Description
renderedCallback() private void Overwrite of native LWC renderedCallBack to show/hide of the Step
render() private template Overwrite of native LWC render to support lightning or newport player
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-step
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-step>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Step",
"propSetMap": {
"disOnTplt": false,
"errorMessage": { "default": null, "custom": [] },
"allowSaveForLater": true,
"label": "Step1",
"chartLabel": null,
"instructionKey": "",
"HTMLTemplateId": "",
"conditionType": "Hide if False",
"show": null,
"knowledgeOptions": {
"typeFilter": "",
"remoteTimeout": 30000,
"dataCategoryCriteria": "",
"keyword": "",
"publishStatus": "Online",
"language": "English"
},
"remoteOptions": {},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"showPersistentComponent": [null, null],
"instruction": "",
"completeMessage": "Are you sure you want to complete the script?",
"completeLabel": "Complete",
"saveMessage": "Are you sure you want to save it for later?",
"saveLabel": "Save for later",
"cancelMessage": "Are you sure?",
"cancelLabel": "Cancel",
"nextWidth": 3,
"nextLabel": "Next",
"previousWidth": 3,
"previousLabel": "Previous",
"validationRequired": true,
"uiElements": { "Step1": "", "Text1": "" }
},
"offSet": 0,
"name": "Step1",
"level": 0,
"indexInParent": 0,
"bHasAttachment": false,
"bEmbed": false,
"response": null,
"inheritShowProp": null,
"children": [
{
"response": null,
"level": 1,
"indexInParent": 0,
"eleArray": [
{
"type": "Text",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Text1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"maxLength": 255,
"minLength": 0,
"ptrnErrText": "",
"pattern": "",
"mask": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Text1",
"level": 1,
"JSONPath": "Step1:Text1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bText": true,
"lwcId": "lwc000"
}
],
"bHasAttachment": false
}
],
"bAccordionOpen": true,
"bAccordionActive": true,
"bStep": true,
"JSONPath": "Step1",
"lwcId": "lwc0"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Properties
The following are a list of properties that are declared inside of the Omniscript Step Chart.
Methods
The following are a list of methods that are declared inside of the Omniscript Step Chart.
HTML Markup
The Omniscript Step Chart templates support both lightning and newport themes. Lightning has a horizontal
step chart (position = top) in addition to left and right positioned vertical step charts.
Usage
Recommended usage of the OmniScript Step Chart is through component extension. Extend the
omniscriptStepChart. OmniScript Step Chart also utilizes a child component called
omniscriptStepChartItems. The Step Chart Items component will also need to be called inside the
extended omniscriptStepChart component. If additional modification are needed to the Step Chart Items, it
is recommended to extend the Step Chart Items component in order to leverage pre-existing functionality.
<c-omniscript-step-chart json-def={jsonDef}
json-data={jsonDef.response}
if:false={jsonDef.propSetMap.hideStepChart}
data-omni-key='omniscriptStepChart'
props={stepChartProps}
layout={layout}>
</c-omniscript-step-chart>
Attributes
jsonDef --- JSON definition of the OmniScript
props --- Reactive public property. It is used to apply specific properties to the step chart that is passed
from the Omniscript Header component. Refer to Properties section for additional information.
Example ---
{
"layout": "",
"position": "",
}
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The Omniscript Step Chart component provides functionality for the step chart. This README will provide
high-level information regarding the different properties and methods utilized by the Omniscript Step Chart
LWC component.
Properties
The following are a list of properties that are declared inside of the Omniscript Step Chart.
Methods
The following are a list of methods that are declared inside of the Omniscript Step Chart.
HTML Markup
The Omniscript Step Chart templates support both lightning and newport themes. Lightning has a horizontal
step chart (position = top) in addition to left and right positioned vertical step charts.
Usage
Recommended usage of the OmniScript Step Chart is through component extension. Extend the
omniscriptStepChart. OmniScript Step Chart also utilizes a child component called
omniscriptStepChartItems. The Step Chart Items component will also need to be called inside the
extended omniscriptStepChart component. If additional modification are needed to the Step Chart Items, it
is recommended to extend the Step Chart Items component in order to leverage pre-existing functionality.
<c-omniscript-step-chart json-def={jsonDef}
json-data={jsonDef.response}
if:false={jsonDef.propSetMap.hideStepChart}
data-omni-key='omniscriptStepChart'
props={stepChartProps}
layout={layout}>
</c-omniscript-step-chart>
Attributes
jsonDef --- JSON definition of the OmniScript
props --- Reactive public property. It is used to apply specific properties to the step chart that is passed
from the Omniscript Header component. Refer to Properties section for additional information.
Example ---
{
"layout": "",
"position": "",
}
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The Omniscript Step Chart component provides functionality for the step chart. This README will provide
high-level information regarding the different properties and methods utilized by the Omniscript Step Chart
LWC component.
Properties
The following are a list of properties that are declared inside of the Omniscript Step Chart.
Methods
The following are a list of methods that are declared inside of the Omniscript Step Chart. The Omniscript
Step Chart is inherited from OmniScript Base Element. Reference the Omniscript Base Element README
for additional information regarding the inherited class.
HTML Markup
The Omniscript Step Chart templates support both lightning and newport themes. Lightning has a horizontal
step chart (position = top) in addition to left and right positioned vertical step charts.
Usage
Recommended usage of the OmniScript Step Chart is through component extension. Extend the
omniscriptStepChart. Methods listed above in the Methods section can be overwritten. This
component extends from the Omniscript Base Element component. Please refer to the Omniscript Base
Element README for additional information regarding inherited methods.
<c-omniscript-step-chart json-def={jsonDef}
json-data={jsonDef.response}
if:false={jsonDef.propSetMap.hideStepChart}
data-omni-key='omniscriptStepChart'
class="slds-col slds-m-top_x-small slds-p-left_large
slds-size_1-of-1"
props={stepChartProps}
layout={layout}>
</c-omniscript-step-chart>
Attributes
jsonDef --- JSON definition of the OmniScript
props --- Reactive public property. It is used to apply specific properties to the step chart that is passed
from the Omniscript Header component. Refer to Properties section for additional information.
Example ---
{
"layout": "",
"position": "",
}
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptStepChartItems ⇐ LightningElement
Extends: LightningElement
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-nsomniscriptstepchartitems-lightningelement ⇐ LightningElement
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemsjsondef-object : Object
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemsjsondata-object : Object
• .scriptHeaderDef : Object
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemsisvertical-boolean : Boolean
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemscurrentindex-integer : Integer
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemstheme-string : String
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemslastexecutedstepindex-integer : Integer
• .stepChartIconUrl : String
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemslaststepindex-integer : Integer
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemscompleted-boolean : Boolean
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemsinprogress-boolean : Boolean
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemspristine-boolean : Boolean
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemsnonpristine-boolean : Boolean
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemssteplabel-string : String
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemsrender-void ⇒ Void
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemshandlestepclickevent-void ⇒ Void
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemsapplylightningstyles-void ⇒ Void
• https://bitbucket.org/vloc/via_oui/src/oui_sprint_ins108/lwcprojects/player/omniscriptStepChartItems/
#markdown-header-omniscriptstepchartitemsrenderedcallback-void ⇒ Void
omniscriptStepChartItems.jsonDef : Object
Gets and sets Omniscript JSON definition.
omniscriptStepChartItems.jsonData : Object
Gets and sets Omniscript data JSON.
omniscriptStepChartItems.scriptHeaderDef : Object
Script header definitions and globally shared variables.
omniscriptStepChartItems.isVertical : Boolean
Identifies step chart is horizontal or vertical.
omniscriptStepChartItems.currentIndex : Integer
Stores current index
omniscriptStepChartItems.theme : String
Stores theme layout. Default = 'slds'.
omniscriptStepChartItems.lastExecutedStepIndex : Integer
Stores last executed step index.
omniscriptStepChartItems.stepChartIconUrl : String
The URL for the icon used on the stepchart items
omniscriptStepChartItems.lastStepIndex : Integer
Stores last step index.
omniscriptStepChartItems.completed : Boolean
Flag for Completed indicator.
omniscriptStepChartItems.inProgress : Boolean
Flag for In Progress indicator.
omniscriptStepChartItems.pristine : Boolean
Flag for Pristine indicator.
omniscriptStepChartItems.nonpristine : Boolean
Flag for Nonpristine indicator.
omniscriptStepChartItems.stepLabel : String
Step label.
omniscriptStepChartItems.render() ⇒ Void
Overwrites native render.
omniscriptStepChartItems.handleStepClick(event) ⇒ Void
Event handler when steps are selected on the step chart.
Param Type
event Event
omniscriptStepChartItems.applyLightningStyles() ⇒ Void
Applies progress indicator styles to the parent template for lightning when stepchart is in Vertical mode.
omniscriptStepChartItems.renderedCallback() ⇒ Void
Overwrites native renderedCallback.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
ns/omniscriptStepChartItems ⇐ LightningElement
Extends: LightningElement
• ns/omniscriptStepChartItems ⇐ LightningElement
• .jsonDef : Object
• .jsonData : Object
• .isVertical : Boolean
• .currentIndex : Integer
• .theme : String
• .lastExecutedStepIndex : Integer
• .lastStepIndex : Integer
• .completed : Boolean
• .inProgress : Boolean
• .pristine : Boolean
• .nonpristine : Boolean
• .stepLabel : String
• .render() ⇒ Void
• .handleStepClick(event) ⇒ Void
• .applyLightningStyles() ⇒ Void
• .renderedCallback() ⇒ Void
omniscriptStepChartItems.jsonDef : Object
Gets and sets Omniscript JSON definition.
omniscriptStepChartItems.jsonData : Object
Gets and sets Omniscript data JSON.
omniscriptStepChartItems.isVertical : Boolean
Identifies step chart is horizontal or vertical.
omniscriptStepChartItems.currentIndex : Integer
Stores current index
omniscriptStepChartItems.theme : String
Stores theme layout. Default = 'slds'.
omniscriptStepChartItems.lastExecutedStepIndex : Integer
Stores last executed step index.
omniscriptStepChartItems.lastStepIndex : Integer
Stores last step index.
omniscriptStepChartItems.completed : Boolean
Flag for Completed indicator.
Scope: private
omniscriptStepChartItems.inProgress : Boolean
Flag for In Progress indicator.
Scope: private
omniscriptStepChartItems.pristine : Boolean
Flag for Pristine indicator.
Scope: private
omniscriptStepChartItems.nonpristine : Boolean
Flag for Nonpristine indicator.
Scope: private
omniscriptStepChartItems.stepLabel : String
Step label.
Scope: private
omniscriptStepChartItems.render() ⇒ Void
Overwrites native render.
Scope: private
omniscriptStepChartItems.handleStepClick(event) ⇒ Void
Event handler when steps are selected on the step chart.
Scope: private
Param Type
event Event
omniscriptStepChartItems.applyLightningStyles() ⇒ Void
Applies progress indicator styles to the parent template for lightning.
Scope: private
omniscriptStepChartItems.renderedCallback() ⇒ Void
Overwrites native renderedCallback.
Scope: private
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-telephone
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-telephone>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Telephone",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Telephone1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"maxLength": 255,
"minLength": 0,
"ptrnErrText": "",
"pattern": "",
"mask": "(999) 999-9999",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Telephone1",
"level": 1,
"JSONPath": "Step1:Telephone1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bTelephone": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Telephone1": "Step1:Telephone1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Telephone1": "" }
}
seedJson --- designer seed JSON + telephone parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Telephone Element, OmniscriptTelephone is extended from
OmniscriptText.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-telephone
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-telephone>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Telephone",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Telephone1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"maxLength": 255,
"minLength": 0,
"ptrnErrText": "",
"pattern": "",
"mask": "(999) 999-9999",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Telephone1",
"level": 1,
"JSONPath": "Step1:Telephone1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bTelephone": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Telephone1": "Step1:Telephone1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Telephone1": "" }
}
seedJson --- designer seed JSON + telephone parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Telephone Element, OmniscriptTelephone is extended from
OmniscriptText.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-telephone
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-telephone>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Telephone",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Telephone1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"maxLength": 255,
"minLength": 0,
"ptrnErrText": "",
"pattern": "",
"mask": "(999) 999-9999",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Telephone1",
"level": 1,
"JSONPath": "Step1:Telephone1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bTelephone": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Telephone1": "Step1:Telephone1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Telephone1": "" }
}
seedJson --- designer seed JSON + telephone parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Text element support masking, Supported masking formats are "(999) 999-9999" and "(AAA) AAA-AAAA".
"9" stands Number and "A" stands for Character.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-text
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-text>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Text",
"rootIndex": 0,
"response": "Hello There!",
"propSetMap": {
"label": "Text1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"maxLength": 255,
"minLength": 0,
"ptrnErrText": "",
"pattern": "",
"mask": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Text1",
"level": 1,
"JSONPath": "Step1:Text1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bText": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Text1": "Step1:Text1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Text1": "" }
}
seedJson --- designer seed JSON + text parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Text Element, OmniscriptText is extended from
OmniscriptAtomicElement.
Text element support masking, Supported masking formats are "(999) 999-9999" and "(AAA) AAA-AAAA".
"9" stands Number and "A" stands for Character.
Properties
Name Scope Description
_placeholder private Use to show placeholder in Text element
_inputType private Use to set type of the input
_commitOnChange private
Methods
Signature Scope Return Value Description
initCompVariables() private void Overwrites inherited initCompVariables
getImaskTextAttributes() private Object This function will determine if we need to set masking on element that
comes from Omniscript script
handleBlur(evt) private void Sets the element value and triggers aggregation
render() private template Overwrites the native LWC render
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-text
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-text>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Text",
"rootIndex": 0,
"response": "Hello There!",
"propSetMap": {
"label": "Text1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"maxLength": 255,
"minLength": 0,
"ptrnErrText": "",
"pattern": "",
"mask": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Text1",
"level": 1,
"JSONPath": "Step1:Text1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bText": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Text1": "Step1:Text1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Text1": "" }
}
seedJson --- designer seed JSON + text parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Text Element, OmniscriptText is extended from
OmniscriptAtomicElement.
Text element support masking, Supported masking formats are "(999) 999-9999" and "(AAA) AAA-AAAA".
"9" stands Number and "A" stands for Character.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-text
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-text>
Attributes
jsonDef -- json definition of the OmniScript Element
Example ---
{
"type": "Text",
"rootIndex": 0,
"response": "Hello There!",
"propSetMap": {
"label": "Text1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"maxLength": 255,
"minLength": 0,
"ptrnErrText": "",
"pattern": "",
"mask": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Text1",
"level": 1,
"JSONPath": "Step1:Text1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bText": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "Text1": "Step1:Text1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "Text1": "" }
}
seedJson --- designer seed JSON + text parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-textarea
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-textarea>
Attributes
jsonDef-- json definition of the OmniScript Element
Example ---
{
"type": "Text Area",
"rootIndex": 0,
"response": "Hello There!",
"propSetMap": {
"label": "TextArea1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"maxLength": 255,
"minLength": 0,
"ptrnErrText": "",
"pattern": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "TextArea1",
"level": 1,
"JSONPath": "Step1:TextArea1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bTextarea": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "TextArea1": "Step1:TextArea1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "TextArea1": "" }
}
seedJson --- designer seed JSON + text area parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Textarea Element, OmniscriptTextarea is extended from
OmniscriptAtomicElement.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-textarea
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-textarea>
Attributes
jsonDef-- json definition of the OmniScript Element
Example ---
{
"type": "Text Area",
"rootIndex": 0,
"response": "Hello There!",
"propSetMap": {
"label": "TextArea1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"maxLength": 255,
"minLength": 0,
"ptrnErrText": "",
"pattern": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "TextArea1",
"level": 1,
"JSONPath": "Step1:TextArea1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bTextarea": true,
"lwcId": "lwc000",
"bInit": true
}
Example ---
{
"labelMap": { "TextArea1": "Step1:TextArea1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "TextArea1": "" }
}
seedJson --- designer seed JSON + text area parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Textarea Element, OmniscriptTextarea is extended from
OmniscriptAtomicElement.
Methods
Signature Scope Return Value Description
handleBlur(evt) private void Event handler for blur events.
render() private template Overwrites native LWC render
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-textarea
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-textarea>
Attributes
jsonDef-- json definition of the OmniScript Element
Example ---
{
Example ---
{
"labelMap": { "TextArea1": "Step1:TextArea1", "Step1": "Step1" },
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": { "custom": [] },
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
},
{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}
]
},
"hasInvalidElements": false,
"acUiElements": { "Step1": "", "TextArea1": "" }
}
seedJson --- designer seed JSON + text area parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-text-block
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-text-block>
Attributes
jsonDef --- json definition of the OmniScript Element
Example ---
{
"type": "Text Block",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"label": "TextBlock1",
"textKey": "",
"HTMLTemplateId": "",
"dataJSON": false,
"show": null,
"text": "",
"controlWidth": 12
},
"name": "TextBlock1",
"level": 1,
"JSONPath": "Step1:TextBlock1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bTextBlock": true,
"lwcId": "lwc000",
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"TextBlock1": "Step1:TextBlock1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"TextBlock1": ""
}
}
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Text Block element. Text Block supports Merge fields (e.g. %Text1%).
OmniscriptTextBlock is extended from omniscriptBaseElement.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-text-block
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-text-block>
Attributes
jsonDef --- json definition of the OmniScript Element
Example ---
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"TextBlock1": "Step1:TextBlock1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"TextBlock1": ""
}
}
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Text Block element. Text Block supports Merge fields (e.g. %Text1%).
OmniscriptTextBlock is extended from omniscriptBaseElement.
Properties
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-text-block
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}>
</c-omniscript-text-block>
Attributes
jsonDef --- json definition of the OmniScript Element
Example ---
{
"type": "Text Block",
"rootIndex": 0,
"response": null,
"propSetMap": {
"disOnTplt": false,
"label": "TextBlock1",
"textKey": "",
"HTMLTemplateId": "",
"dataJSON": false,
"show": null,
"text": "",
"controlWidth": 12
},
"name": "TextBlock1",
"level": 1,
"JSONPath": "Step1:TextBlock1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bTextBlock": true,
"lwcId": "lwc000",
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"TextBlock1": "Step1:TextBlock1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"TextBlock1": ""
}
}
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-time
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-time>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Time",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Time1",
"maxTime": "",
"minTime": "",
"timeFormat": "hh:mm a",
"modelTimeFormat": "HH:mm:ss.sss'Z'",
"timeType": "string",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Time1",
"level": 1,
"JSONPath": "Step1:Time1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bTime": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Time1": "Step1:Time1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Time1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a Time element. It extends from OmniscriptAtomicElement.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-time
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-time>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Time",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Time1",
"maxTime": "",
"minTime": "",
"timeFormat": "hh:mm a",
"modelTimeFormat": "HH:mm:ss.sss'Z'",
"timeType": "string",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Time1",
"level": 1,
"JSONPath": "Step1:Time1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bTime": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Time1": "Step1:Time1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Time1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a Time element. It extends from OmniscriptAtomicElement.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-time
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-time>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "Time",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "Time1",
"maxTime": "",
"minTime": "",
"timeFormat": "hh:mm a",
"modelTimeFormat": "HH:mm:ss.sss'Z'",
"timeType": "string",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "Time1",
"level": 1,
"JSONPath": "Step1:Time1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bTime": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"Time1": "Step1:Time1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"Time1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
trackedCommonTypeToJsonDefMap ⇒ Object
JSON Definition mergefield mappings in accordance with the element's type that are common amongst all
OmniScript elements.
trackedTypeToJsonDefMap ⇒ Object
JSON Definition mergefield mappings in accordance with the element's type. Each map should start from
the trackedCommonTypeToJsonDefMap unless there is a specific reason why the common mergefield map
values are not needed.
Kind: global constantReturns: Object - Returns an object with a nested value that contains the mergefield
syntax
trackedScriptHeaderMap : Object
Script Header mergefield mappings.
trackedDataJsonMap : Object
Data JSON mergefield mappings.
trackedStaticMap : Object
Static Property mergefield mappings.
Param Type
comp *
element Object
scriptHeaderDef Object
jsonData Object
Param Type
additionalData Object
getCommonTrackingData~targetJsonDef
This method is used for all events whether the event is fired from the OmniScript Header or from an
OmniScript element. - When fired from an OmniScript element, the element argument will be populated and
will be used as the targetJsonDef. - When fired from the OmniScript Header, the element will be null/
undefined and the targetJsonDef will be the component's jsonDef (root jsonDef).
Param Type
propSetMap Object
[oaEnabled] Object
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Vlocity Insurance and Health Summer '20 and Vlocity CME Fall '20
ns/omniscriptTypeahead ⇐ OmniscriptAtomicElement
A typeahead allows a user to select an option from a list, but that list can be affected by what the user types
into the input of the Combobox. This can be useful when the list of options is very large, as user input can
start to display options that only match the text they have entered.
Extends: OmniscriptAtomicElement
• ns/omniscriptTypeahead ⇐ OmniscriptAtomicElement
• .options : Array
• ._isEditMode : Boolean
• ._disableFilter : Boolean
• ._useRemoteSource : Boolean
• ._actionDef : object
• .errorMessage : string
• .typeaheadFn : function
• .handleBlur(evt) ⇒ void
• .handleClear() ⇒ void
• .handleTypeahead(evt) ⇒ void
• .handleLookup() ⇒ void
• .getOptionsDataJson() ⇒ Promise.<any>
• .getOptions(action) ⇒ Promise.<any>
• .hitEndPoint(action) ⇒ Promise.<any>
• .sendDataToDebugConsole(params, resp, label) ⇒ void
• .handleResponse(data) ⇒ Promise.<any>
• .dataProcessorHook(data) ⇒ Promise.<any>
• .setOptions(data) ⇒ void
• .handleError([reason]) ⇒ void
• .handleSelect(evt) ⇒ void
• .toggleEditMode([isEditMode]) ⇒ void
omniscriptTypeahead.options : Array
Options passed to base element.
omniscriptTypeahead._isEditMode : Boolean
Controls weather the elements following the typeahead will be visible. Visibility is controlled by css classes
found in: OmniLwcUtils.scss.
omniscriptTypeahead._disableFilter : Boolean
When true the options will not be filtered by the underlying typeahead component. _disableFilter is
always true when lookup mode is enabled, and for places search.
omniscriptTypeahead._useRemoteSource : Boolean
When true, a progress bar will be displayed while fetching options.
omniscriptTypeahead._actionDef : object
Local store of the remote source's JSON definition.
omniscriptTypeahead.errorMessage : string
Set when an error message is returned from a remote response. Displayed on the template. Not a
validation error.
omniscriptTypeahead.typeaheadFn : function
Throttled handler to update jsonData, which source action will depend on. Bound in connected callback.
omniscriptTypeahead.handleBlur(evt) ⇒ void
When the input is blurred, Validation is run and jsonData is updated.
Param Type
evt FocusEvent
omniscriptTypeahead.handleClear() ⇒ void
When the input is cleared, validation must be run.
omniscriptTypeahead.handleTypeahead(evt) ⇒ void
Creates a throttled callback if typeaheadFn is not defined, otherwise calls typeaheadFn. Bound to keyup
event in the this#initCompVariables lifecycle hook.
Param Type
evt KeyboardEvent
omniscriptTypeahead.handleLookup() ⇒ void
Bound to focus event in the this#initCompVariables lifecycle hook.
omniscriptTypeahead.getOptionsDataJson() ⇒ Promise.<any>
Defines the promise chain used to get/filter/set typeahead options when useDataJson is true.
omniscriptTypeahead.getOptions(action) ⇒ Promise.<any>
Defines the promise chain used to get/filter/set typeahead options when useDataJson is false.
omniscriptTypeahead.hitEndPoint(action) ⇒ Promise.<any>
Link in the promise chain responsible for getting data from remote source.
Param Type
params object
resp object
label string
omniscriptTypeahead.handleResponse(data) ⇒ Promise.<any>
Link in the getOptions promise chain responsible for ensuring proper format of the remote response.
omniscriptTypeahead.dataProcessorHook(data) ⇒ Promise.<any>
A hook in the getOptions promise chain to allow components that inherit from omniscriptTypeahead to
define a custom filter.
Example
dataProcessor(data) {
// Matches items by name (case insensitive). **Default behavior**
return data.filter(item =>
item.name.toLowerCase().includes(this.elementValue.toLowerCase()));
// Matches items by name (case sensitive).
omniscriptTypeahead.setOptions(data) ⇒ void
Final link in the getOptions/getOptionsDataJson promise chain. Responsible for setting the options array,
and ensuring that the options items are in a format that is digestible by the base c-typeahead component.
omniscriptTypeahead.handleError([reason]) ⇒ void
Error handler for the getOptions/getOptionsDataJson promise chain.
omniscriptTypeahead.handleSelect(evt) ⇒ void
Kind: instance method of ns/omniscriptTypeaheadScope: private
omniscriptTypeahead.toggleEditMode([isEditMode]) ⇒ void
If a boolean is specifically sent, that value will be set. Otherwise _editMode will be toggled.
ns/omniscriptTypeahead ⇐ OmniscriptAtomicElement
A typeahead allows a user to select an option from a list, but that list can be affected by what the user types
into the input of the Combobox. This can be useful when the list of options is very large, as user input can
start to display options that only match the text they have entered.
Extends: OmniscriptAtomicElement
• ns/omniscriptTypeahead ⇐ OmniscriptAtomicElement
• .options : Array
• ._isEditMode : Boolean
• ._disableFilter : Boolean
• ._useRemoteSource : Boolean
• ._actionDef : object
• .errorMessage : string
• .typeaheadFn : function
• .handleBlur(evt) ⇒ void
• .handleTypeahead(evt) ⇒ void
• .handleLookup() ⇒ void
• .getOptionsDataJson() ⇒ Promise.<any>
• .getOptions(action) ⇒ Promise.<any>
• .hitEndPoint(action) ⇒ Promise.<any>
• .sendDataToDebugConsole(params, resp, label) ⇒ void
• .handleResponse(data) ⇒ Promise.<any>
• .dataProcessorHook(data) ⇒ Promise.<any>
• .setOptions(data) ⇒ void
• .handleError([reason]) ⇒ void
• .handleSelect(evt) ⇒ void
• .toggleEditMode([isEditMode]) ⇒ void
omniscriptTypeahead.options : Array
Options passed to base element.
omniscriptTypeahead._isEditMode : Boolean
Controls weather the elements following the typeahead will be visible. Visibility is controlled by css classes
found in: OmniLwcUtils.scss.
omniscriptTypeahead._disableFilter : Boolean
When true the options will not be filtered by the underlying typeahead component. _disableFilter is
always true when lookup mode is enabled, and for places search.
omniscriptTypeahead._useRemoteSource : Boolean
When true, a progress bar will be displayed while fetching options.
omniscriptTypeahead._actionDef : object
Local store of the remote source's JSON definition.
omniscriptTypeahead.errorMessage : string
Set when an error message is returned from a remote response. Displayed on the template. Not a
validation error.
omniscriptTypeahead.typeaheadFn : function
Throttled handler to update jsonData, which source action will depend on. Bound in connected callback.
omniscriptTypeahead.handleBlur(evt) ⇒ void
When the input is blurred, Validation is run and jsonData is updated.
Param Type
evt FocusEvent
omniscriptTypeahead.handleTypeahead(evt) ⇒ void
Creates a throttled callback if typeaheadFn is not defined, otherwise calls typeaheadFn. Bound to keyup
event in the this#initCompVariables lifecycle hook.
Param Type
evt KeyboardEvent
omniscriptTypeahead.handleLookup() ⇒ void
Bound to focus event in the this#initCompVariables lifecycle hook.
omniscriptTypeahead.getOptionsDataJson() ⇒ Promise.<any>
Defines the promise chain used to get/filter/set typeahead options when useDataJson is true.
omniscriptTypeahead.getOptions(action) ⇒ Promise.<any>
Defines the promise chain used to get/filter/set typeahead options when useDataJson is false.
omniscriptTypeahead.hitEndPoint(action) ⇒ Promise.<any>
Link in the promise chain responsible for getting data from remote source.
Param Type
params object
resp object
label string
omniscriptTypeahead.handleResponse(data) ⇒ Promise.<any>
Link in the getOptions promise chain responsible for ensuring proper format of the remote response.
omniscriptTypeahead.dataProcessorHook(data) ⇒ Promise.<any>
A hook in the getOptions promise chain to allow components that inherit from omniscriptTypeahead to
define a custom filter.
Example
dataProcessor(data) {
// Matches items by name (case insensitive). **Default behavior**
return data.filter(item =>
item.name.toLowerCase().includes(this.elementValue.toLowerCase()));
// Matches items by name (case sensitive).
omniscriptTypeahead.setOptions(data) ⇒ void
Final link in the getOptions/getOptionsDataJson promise chain. Responsible for setting the options array,
and ensuring that the options items are in a format that is digestible by the base c-typeahead component.
omniscriptTypeahead.handleError([reason]) ⇒ void
Error handler for the getOptions/getOptionsDataJson promise chain.
omniscriptTypeahead.handleSelect(evt) ⇒ void
Kind: instance method of ns/omniscriptTypeaheadScope: private
omniscriptTypeahead.toggleEditMode([isEditMode]) ⇒ void
If a boolean is specifically sent, that value will be set. Otherwise _editMode will be toggled.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
ns/omniscriptTypeahead ⇐ OmniscriptAtomicElement
Extends: OmniscriptAtomicElement
• ns/omniscriptTypeahead ⇐ OmniscriptAtomicElement
• .options : Array
• ._isEditMode : Boolean
• ._disableFilter : Boolean
• ._useRemoteSource : Boolean
• ._actionDef : object
• .errorMessage : string
• .typeaheadFn : function
• .handleBlur(evt) ⇒ void
• .handleTypeahead(evt) ⇒ void
• .handleLookup() ⇒ void
• .getOptionsDataJson() ⇒ Promise.
• .getOptions(action) ⇒ Promise.
• .hitEndPoint(action) ⇒ Promise.
• .sendDataToDebugConsole(params, resp, label) ⇒ void
• .handleResponse(data) ⇒ Promise.
• .dataProcessorHook(data) ⇒ Promise.
• .setOptions(data) ⇒ void
• .handleError([reason]) ⇒ void
• .handleSelect(evt) ⇒ void
• .toggleEditMode([isEditMode]) ⇒ void
ns/omniscriptTypeahead.options : Array
Scope: private
ns/omniscriptTypeahead._isEditMode : Boolean
• Controls weather the elements following the typeahead will be visible. Visibility is controlled by CSS
classes found in: OmniLwcUtils.scss.
Scope: private
ns/omniscriptTypeahead._disableFilter : Boolean
• When true the options will not be filtered by the underlying typeahead component._disableFilter is
always true when lookup mode is enabled, and for places search.
Scope: private
ns/omniscriptTypeahead._useRemoteSource : Boolean
Scope: private
ns/omniscriptTypeahead._actionDef : object
Scope: private
ns/omniscriptTypeahead.errorMessage : string
• Set when an error message is returned from a remote response.Displayed on the template. Not a
validation error.
ns/omniscriptTypeahead.typeaheadFn : function
• Throttled handler to update jsonData, which source action willdepend on. Bound in connected callback.
Scope: private.
ns/omniscriptTypeahead.handleBlur(evt) ⇒ void
When the input is blurred, Validation is run and jsonData is updated.
Scope: private
Param Type
evt FocusEvent
ns/omniscriptTypeahead.handleTypeahead(evt) ⇒ void
Creates a throttled callback if typeaheadFn is not defined, otherwise calls typeaheadFn. Bound to keyup
event in the this#initCompVariables lifecycle hook.
Param Type
evt KeyboardEvent
ns/omniscriptTypeahead.handleLookup() ⇒ void
Bound to focus event in the this#initCompVariables lifecycle hook.
Scope: private
ns/omniscriptTypeahead.getOptionsDataJson() ⇒ Promise.
Defines the promise chain used to get/filter/set typeahead options when useDataJson is true.
Scope: private
ns/omniscriptTypeahead.getOptions(action) ⇒ Promise.
Defines the promise chain used to get/filter/set typeahead options when useDataJson is false.
Scope: private
ns/omniscriptTypeahead.hitEndPoint(action) ⇒ Promise.
Link in the promise chain responsible for getting data from remote source.
Scope: private
Scope: private
Param Type
params object
Param Type
resp object
label string
ns/omniscriptTypeahead.handleResponse(data) ⇒ Promise.
Link in the getOptions promise chain responsible for ensuring proper format of the remote response.
Scope: private
ns/omniscriptTypeahead.dataProcessorHook(data) ⇒ Promise.
A hook in the getOptions promise chain to allow components that inherit from omniscriptTypeahead to
define a custom filter.
Scope: private
ns/omniscriptTypeahead.setOptions(data) ⇒ void
Final link in the getOptions/getOptionsDataJson promise chain. Responsible for setting the options array,
and ensuring that the options items are in a format that is digestible by the base c-typeahead component.
Scope: private
ns/omniscriptTypeahead.handleError([reason]) ⇒ void
Error handler for the getOptions/getOptionsDataJson promise chain.
Scope: private
ns/omniscriptTypeahead.handleSelect(evt) ⇒ void
Kind: instance method of ns/omniscriptTypeahead
Scope: private
ns/omniscriptTypeahead.toggleEditMode([isEditMode]) ⇒ void
If a boolean is specifically sent, that value will be set. Otherwise _editMode will be toggled.
Scope: private
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
ns/omniscriptTypeaheadBlock ⇐ OmniscriptBlock
The typeahead block is a wrapper element which contains the typeahead element, and any other children
inputs.
Extends: OmniscriptBlock
• ns/omniscriptTypeaheadBlock ⇐ OmniscriptBlock
• ._typeaheadElement : LightningElement
• .handleSelect(evt) ⇒ void
• .enterEditMode() ⇒ void
• .hideValidation(evt) ⇒ void
• .initCompVariables() ⇒ void
• .applyCtrlWidth() ⇒ void
• .reportValidity() ⇒ boolean
• .nullifyChildren(type) ⇒ void
omniscriptTypeaheadBlock._typeaheadElement : LightningElement
A cached reference to the underlying omniscriptTypeahead/omniscriptPlacesTypeahead.
omniscriptTypeaheadBlock.handleSelect(evt) ⇒ void
Event handler bound via template.
omniscriptTypeaheadBlock.enterEditMode() ⇒ void
Calls toggleEditMode(true), on the child omniscriptTypeahead/omnscriptPlacesTypeahead, and clears
block level validation messages.
omniscriptTypeaheadBlock.hideValidation(evt) ⇒ void
Hides block level validation messages.
Param Type
evt CustomEvent
omniscriptTypeaheadBlock.initCompVariables() ⇒ void
Override for the base lifecycle method initCompvariables. Binds event listeners for 'select' and
'hidevalidation' events.
omniscriptTypeaheadBlock.applyCtrlWidth() ⇒ void
Override for base implementation. Prevents display issues.
omniscriptTypeaheadBlock.reportValidity() ⇒ boolean
Shows block level validation messaging when hidden child elements are invalid. Messaging is hidden when
the typeahead element itself or the typeahead is already in edit mode.
omniscriptTypeaheadBlock.nullifyChildren(type) ⇒ void
Clears the values of any child inputs. Triggered from the OmniscriptTypeaheadBlock.handleSelect.
Param Type
type string
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
ns/omniscriptTypeaheadBlock ⇐ OmniscriptBlock
The typeahead block is a wrapper element that contains the typeahead element, and any other children
inputs.
Extends: OmniscriptBlock
• ns/omniscriptTypeaheadBlock ⇐ OmniscriptBlock
• ._errorMessage : string
• .showValidation : Boolean
• .handleSelect(evt) ⇒ void
• .applyCtrlWidth() ⇒ void
• .nullifyChildren(type) ⇒ void
ns/omniscriptTypeaheadBlock._errorMessage : string
Scope: private
ns/omniscriptTypeaheadBlock.showValidation : Boolean
Scope: private
ns/omniscriptTypeaheadBlock.handleSelect(evt) ⇒ void
Event handler bound via template.
Scope: private
ns/omniscriptTypeaheadBlock.applyCtrlWidth() ⇒ void
Override for base implementation. Prevents display issues.
Scope: private
ns/omniscriptTypeaheadBlock.nullifyChildren(type) ⇒ void
Clears the values of any child inputs. Triggered from the OmniscriptTypeaheadBlock.handleSelect.
Scope: private
Param Type
type string
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-url
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-url>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "URL",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "URL1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"ptrnErrText": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "URL1",
"level": 1,
"JSONPath": "Step1:URL1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bURL": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"URL1": "Step1:URL1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"URL1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This component is used to render a URL element, it extends from OmniscriptAtomicElement.
• http://www.xyz.com
• https://www.xyz.com
• www.xyz.com
• test.xyz.com
Properties
Name Scope Description Description
_messageWhenPatternMismatch private void Use to set the custom error message
_commitOnChange private void
Methods
Signature Scope Return Value Description
initCompVariables() private void Overwrite
handleBlur(evt) private void Blur handler
render() private template Overwrites native LWC render
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-url
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-url>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "URL",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "URL1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"ptrnErrText": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "URL1",
"level": 1,
"JSONPath": "Step1:URL1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bURL": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"URL1": "Step1:URL1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"URL1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This component is used to render a URL element, it extends from OmniscriptAtomicElement.
Methods
HTML Markup
This component has a single template that supports both lightning and newport themes depending on the
layout.
Usage
<c-omniscript-url
json-def={jsonDef}
data-omni-key={jsonDef.name}
json-data={jsonData}
layout={layout}
resume={resume}
script-header-def={scriptHeaderDef}
seed-json={seedDataJSON}>
</c-omniscript-url>
Attributes
jsonDef --- JSON definition of the OmniScript Element
Example ---
{
"type": "URL",
"rootIndex": 0,
"response": null,
"propSetMap": {
"label": "URL1",
"disOnTplt": false,
"hide": false,
"HTMLTemplateId": "",
"debounceValue": 0,
"accessibleInFutureSteps": false,
"conditionType": "Hide if False",
"show": null,
"ptrnErrText": "",
"helpText": "",
"help": false,
"defaultValue": null,
"readOnly": false,
"repeatLimit": null,
"repeatClone": false,
"repeat": false,
"required": false,
"inputWidth": 12,
"showInputWidth": false,
"controlWidth": 12
},
"name": "URL1",
"level": 1,
"JSONPath": "Step1:URL1",
"indexInParent": 0,
"index": 0,
"children": [],
"bHasAttachment": false,
"bURL": true,
"lwcId": "lwc000"
}
dataOmniKey --- element unique identifier = name value in element's JSON definition
Example ---
{
"labelMap": {
"URL1": "Step1:URL1",
"Step1": "Step1"
},
"propSetMap": {
"stepChartPlacement": "right",
"disableUnloadWarn": true,
"errorMessage": {
"custom": []
},
"consoleTabIcon": "custom:custom18",
"consoleTabTitle": null,
"rtpSeed": false,
"showInputWidth": false,
"currencyCode": "",
"autoFocus": false,
"pubsub": false,
"message": {},
"ssm": false,
"wpm": false,
"consoleTabLabel": "New",
"cancelRedirectTemplateUrl": "vlcCancelled.html",
"cancelRedirectPageName": "OmniScriptCancelled",
"cancelSource": "%ContextId%",
"allowCancel": true,
"cancelType": "SObject",
"visualforcePagesAvailableInPreview": {},
"hideStepChart": false,
"timeTracking": false,
"knowledgeArticleTypeQueryFieldsMap": {},
"lkObjName": null,
"bLK": false,
"enableKnowledge": false,
"trackingCustomData": {},
"seedDataJSON": {},
"elementTypeToHTMLTemplateMapping": {},
"autoSaveOnStepNext": false,
"saveURLPatterns": {},
"saveObjectId": "%ContextId%",
"saveContentEncoded": false,
"saveForLaterRedirectTemplateUrl": "vlcSaveForLaterAcknowledge.html",
"saveForLaterRedirectPageName": "sflRedirect",
"saveExpireInDays": null,
"saveNameTemplate": null,
"allowSaveForLater": true,
"persistentComponent": [{
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "ModalProductCtrl",
"modalHTMLTemplateId": "vlcProductConfig.html"
},
"itemsKey": "cartItems",
"id": "vlcCart",
"responseJSONNode": "",
"responseJSONPath": "",
"sendJSONNode": "",
"sendJSONPath": "",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}, {
"modalConfigurationSetting": {
"modalSize": "lg",
"modalController": "",
"modalHTMLTemplateId": ""
},
"itemsKey": "knowledgeItems",
"id": "vlcKnowledge",
"postTransformBundle": "",
"preTransformBundle": "",
"remoteOptions": {
"postTransformBundle": "",
"preTransformBundle": ""
},
"remoteTimeout": 30000,
"remoteMethod": "",
"remoteClass": "",
"label": "",
"render": false
}]
},
"hasInvalidElements": true,
"acUiElements": {
"Step1": "",
"URL1": ""
}
}
seedJson --- designer seed JSON + url parameters + cached API responses
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
HasValidation
The HasValidation mixin class integrates an input element via an override to the extended elements
applyCallResp method. It's here that the child input's validation status is read via checkValidity, and
reportValidity methods of the constraints API.
Usage
When integrating a new input in to the OmniScript validation framework, the first step is to extend the
HasValidation mixin class.
omniscriptAtomicElement.js
prepareIMaskProperties(mask) {
Then add the default selector attribute data-omni-input to the actual child input so that
HasValidation can reference it.
Remove the disabled attribute to allow the validation framework to take control of the read only state.
And pass tabIndex to the child input. This will prevent the input from gaining focus when the component is
in a read only state.
omniscriptText.html
<template>
<slot>
<c-masked-input type="text"
label={jsonDef.propSetMap.label}
onblur={handleBlur}
value={elementValue}
required={jsonDef.propSetMap.required}
- disabled={jsonDef.propSetMap.readOnly}
maxlength={jsonDef.propSetMap.maxLength}
minlength={jsonDef.propSetMap.minLength}
pattern={_patternVal}
imask={imaskTextAttributes}
theme={_theme}
+ tab-index={tabIndex}
field-level-help={_handleHelpText}
placeholder={_placeholder}
+ data-omni-input>
</c-masked-input>
</slot>
</template>
And that's all that was required to integrate the omniscriptText component. As you can see, the actual
integration is very straightforward! Next let's take a look at slightly more complex example.
<template>
<slot>
<c-checkbox-image-group if:true={checkImageMode}
type="checkbox"
name={jsonDef.name}
is-image="true"
value={elementValue}
options={jsonDef.propSetMap.options}
label={jsonDef.propSetMap.label}
enabled-caption={jsonDef.propSetMap.enableCaption}
control-width={jsonDef.propSetMap.optionWidth}
control-height={jsonDef.propSetMap.optionHeight}
image-count-in-
row={jsonDef.propSetMap.imageCountInRow}
onchange={handleChange}
required={jsonDef.propSetMap.required}
disabled={jsonDef.propSetMap.readOnly}
theme={_theme}
+ data-omni-input>
</c-checkbox-image-group>
<c-checkbox-group if:false={checkImageMode}
name={jsonDef.name}
value={elementValue}
options={checkedValue}
label={jsonDef.propSetMap.label}
onchange={handleChange}
required={jsonDef.propSetMap.required}
disabled={jsonDef.propSetMap.readOnly}
theme={_theme}
+ data-omni-input>
</c-checkbox-group>
</slot>
</template>
An important part of integrating with the omniscript validation framework is ensuring that
the underlying input component exposes the checkValidity, reportValidity, and
setCustomValidity methods of the constraints validation API.
AggregatesValidation
The AggregatesValidation mixin class adds functionality to aggregate the validation status of all child
inputs that extend the HasValidation mixin, by listening to theVALIDATION_EVENTS.VALID, and
VALIDATION_EVENTS.INVALID events. A list of the current invalid children are kept track on fin
this.invalidElements.
Currently the the AggregatesValidation mixin is only implemented by OmniscriptHeader, but could be
implemented by any container element. A possible use could be something like an edit-block modal, where
inputs should be valid before closing.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
This library component consists of two mixin classes that can be used to integrate any component into the
omniscript step validation framework. The first and most important is the HasValidation mixin class, the
second is the AggregatesValidation mixin class which can be used on any container element to
manipulate the results of the child inputs.
HasValidation
The HasValidation mixin class integrates an input element via an override to the extended elements
applyCallResp method. It's here that the child input's validation status is read via checkValidity, and
reportValidity methods of the constraints API.
Properties
Methods
Usage
When integrating a new input in to the OmniScript validation framework, the first step is to extend the
HasValidation mixin class.
omniscriptAtomicElement.js
prepareIMaskProperties(mask) {
Then add the default selector attribute data-omni-input to the actual child input so that
HasValidation can reference it.
Remove the disabled attribute to allow the validation framework to take control of the read only state.
And pass tabIndex to the child input. This will prevent the input from gaining focus when the component is
in a read only state.
omniscriptText.html
<template>
<slot>
<c-masked-input type="text"
label={jsonDef.propSetMap.label}
onblur={handleBlur}
value={elementValue}
required={jsonDef.propSetMap.required}
- disabled={jsonDef.propSetMap.readOnly}
maxlength={jsonDef.propSetMap.maxLength}
minlength={jsonDef.propSetMap.minLength}
pattern={_patternVal}
imask={imaskTextAttributes}
theme={_theme}
+ tab-index={tabIndex}
field-level-help={_handleHelpText}
placeholder={_placeholder}
+ data-omni-input>
</c-masked-input>
</slot>
</template>
And that's all that was required to integrate the omniscriptText component. As you can see, the actual
integration is very straightforward! Next let's take a look at slightly more complex example.
<template>
<slot>
<c-checkbox-image-group if:true={checkImageMode}
type="checkbox"
name={jsonDef.name}
is-image="true"
value={elementValue}
options={jsonDef.propSetMap.options}
label={jsonDef.propSetMap.label}
enabled-caption={jsonDef.propSetMap.enableCaption}
control-width={jsonDef.propSetMap.optionWidth}
control-height={jsonDef.propSetMap.optionHeight}
image-count-in-
row={jsonDef.propSetMap.imageCountInRow}
onchange={handleChange}
required={jsonDef.propSetMap.required}
disabled={jsonDef.propSetMap.readOnly}
theme={_theme}
+ data-omni-input>
</c-checkbox-image-group>
<c-checkbox-group if:false={checkImageMode}
name={jsonDef.name}
value={elementValue}
options={checkedValue}
label={jsonDef.propSetMap.label}
onchange={handleChange}
required={jsonDef.propSetMap.required}
disabled={jsonDef.propSetMap.readOnly}
theme={_theme}
+ data-omni-input>
</c-checkbox-group>
</slot>
</template>
An important part of integrating with the omniscript validation framework is ensuring that
the underlying input component exposes the checkValidity, reportValidity, and
setCustomValidity methods of the constraints validation API.
AggregatesValidation
The AggregatesValidation mixin class adds functionality to aggregate the validation status of all child
inputs that extend the HasValidation mixin, by listening to theVALIDATION_EVENTS.VALID, and
VALIDATION_EVENTS.INVALID events. A list of the current invalid children are kept track on fin
this.invalidElements.
Currently the the AggregatesValidation mixin is only implemented by OmniscriptHeader, but could be
implemented by any container element. A possible use could be something like an edit-block modal, where
inputs should be valid before closing.
Properties
Methods
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
This library component consists of two mixin classes that can be used to integrate any component into the
omniscript step validation framework. The first and most important is the HasValidation mixin class, the
second is the AggregatesValidation mixin class which can be used on any container element to
manipulate the results of the child inputs.
HasValidation
The HasValidation mixin class integrates an input element via an override to the extended elements
applyCallResp method. It's here that the child input's validation status is read via checkValidity, and
reportValidity methods of the constraints API.
Properties
Methods
Usage
When integrating a new input into the OmniScript validation framework, the first step is to extend the
HasValidation mixin class.
omniscriptAtomicElement.js
prepareIMaskProperties(mask) {
Then add the default selector attribute data-omni-input to the actual child input so that
HasValidation can reference it.
Remove the disabled attribute to allow the validation framework to take control of the read only state.
And pass tabIndex to the child input. This will prevent the input from gaining focus when the component is
in a read only state.
omniscriptText.html
<template>
<slot>
<c-masked-input type="text"
label={jsonDef.propSetMap.label}
onblur={handleBlur}
value={elementValue}
required={jsonDef.propSetMap.required}
- disabled={jsonDef.propSetMap.readOnly}
maxlength={jsonDef.propSetMap.maxLength}
minlength={jsonDef.propSetMap.minLength}
pattern={_patternVal}
imask={imaskTextAttributes}
theme={_theme}
+ tab-index={tabIndex}
field-level-help={_handleHelpText}
placeholder={_placeholder}
+ data-omni-input>
</c-masked-input>
</slot>
</template>
And that's all that was required to integrate the omniscriptText component. As you can see, the actual
integration is very straightforward! Next let's take a look at slightly more complex example.
<template>
<slot>
<c-checkbox-image-group if:true={checkImageMode}
type="checkbox"
name={jsonDef.name}
is-image="true"
value={elementValue}
options={jsonDef.propSetMap.options}
label={jsonDef.propSetMap.label}
enabled-caption={jsonDef.propSetMap.enableCaption}
control-width={jsonDef.propSetMap.optionWidth}
control-height={jsonDef.propSetMap.optionHeight}
image-count-in-
row={jsonDef.propSetMap.imageCountInRow}
onchange={handleChange}
required={jsonDef.propSetMap.required}
disabled={jsonDef.propSetMap.readOnly}
theme={_theme}
+ data-omni-input>
</c-checkbox-image-group>
<c-checkbox-group if:false={checkImageMode}
name={jsonDef.name}
value={elementValue}
options={checkedValue}
label={jsonDef.propSetMap.label}
onchange={handleChange}
required={jsonDef.propSetMap.required}
disabled={jsonDef.propSetMap.readOnly}
theme={_theme}
+ data-omni-input>
</c-checkbox-group>
</slot>
</template>
An important part of integrating with the omniscript validation framework is ensuring that
the underlying input component exposes the checkValidity, reportValidity, and
setCustomValidity methods of the constraints validation API.
AggregatesValidation
The AggregatesValidation mixin class adds functionality to aggregate the validation status of all child
inputs that extend the HasValidation mixin, by listening to the VALIDATION_EVENTS.VALID, and
VALIDATION_EVENTS.INVALID events. A list of the current invalid children are kept track on fin
this.invalidElements.
Currently the the AggregatesValidation mixin is only implemented by OmniscriptHeader, but could be
implemented by any container element. A possible use could be something like an edit-block modal, where
inputs should be valid before closing.
Properties
Methods
It is possible to switch between the classic and LWC OmniScript designers. The classic OmniScript
designer is built in Angular and provides a limited view of the OmniScript during configuration. The LWC
OmniScript Designer provides in-product help and a user-friendly canvas that enables users to preview the
appearance of an OmniScript while configuring elements. To learn more about the LWC OmniScript
Designer, see LWC OmniScript Designer Overview.
What's Next
Learn how to use the classic designer. See Creating the OmniScript.
See Also
• LWC OmniScript Designer Changes and Enhancements
• LWC OmniScript Designer Considerations
The data is captured in the standard JavaScript Object Notation (JSON) format. OmniScript could be used
for any guided interaction. For example, it could be used to:
• Capture application forms for different services, including government benefits, insurance policies, and
healthcare coverage.
• Capture details for a customer issue, such as troubleshooting a service outage.
• Capture details for service implementation, such as network configuration requirements.
• Guide a customer through a selling process, such as choosing a new insurance plan.
Data collected in OmniScript can be inserted into Salesforce.com object fields via Vlocity DataRaptor,
posted through an external REST API, or stored as an application in the Vlocity Application object.
NOTE
Beginning with Vlocity Insurance and Health Summer '19, OmniScripts enable the use of
Lightning Web Components. For more information, see LWC OmniScripts.
NOTE
There can be only one active OmniScript or Integration Procedure per Type, SubType,
and Language. Make sure each active OmniScript has a unique SubType. For more
information, see Creating an OmniScript Type and SubType.
3. To make this OmniScript available for use in other OmniScripts, click Reusable?.
4. Click Save.
• Script: The script is the master container for all the controls. Scripts can be versioned, ported to different
languages, embedded into parent scripts, exported to other orgs, and activated into production.
• Step: A script can contain one or more Steps. The user navigates through the Steps using Next and
Previous buttons. Logic to enforce field validation or required fields can be optionally enforced for each
Step.
• Inputs: Inputs are HTML controls that form the input content of the script.
• Functions: Functions enable you to evaluate data, provide messaging, and obtain a User's location.
• Groups: Elements can be combined into Groups. For example, street, city, state and postal code input
elements may be combined into an address block. Groups are contained within Steps, and may be
repeated to capture an array of data.
• Actions: Action Elements trigger a variety of user-defined actions including remote or REST to
communicate with external sources and Integration Procedure, DataRaptor Extract, or DataRaptor Post
to move data between the script and Salesforce objects. Action Elements can be launched as a button on
the script or run remotely in between Steps.
• Display: Display elements present information to the user.
• OmniScripts: An entire OmniScript can be embedded into another script, allowing you to reuse smaller
scripts across multiple larger scripts.
Actions outside steps perform actions for the entire script, such as getting, posting, evaluating, and
transforming data. Steps typically include Block, Input, and Display elements, but can also include Actions
as buttons and Functions specific to the step. Learn more about OmniScript Script Structure Definitions.
Each page of an OmniScript is called a Step and can contain Group elements, such as Blocks, Input
elements, such as Checkboxes, Actions, such as Email Actions, and Functions, such as Formulas.
To create a Step:
1. From the Visual Designer, expand the Group section located under the Available Components.
NOTE
The Element Name must be unique and cannot contain the following characters:
You must nest input elements in Steps or Blocks. Action elements render as a button when placed in a Step
or Block, and run remotely if placed between steps. For more details on action elements, see OmniScript
Action Elements Reference. To avoid performance issues, limit the number of elements in each block or
step to less than 50.
1. Drag an element from the Available Components section to the script structure.
2. Edit the element properties. Properties vary depending on the element type. Refer to Common
OmniScript Element Properties Definitions for a list of the most common properties.
NOTE
Each row on an OmniScript can have a total Control Width of 12. For example, three
elements that reside on the same row can each have a Control Width of 4, or two
elements can have a Control Width of 3 and one a Control Width of 6.
Previewing OmniScripts
Preview your OmniScript by clicking Preview to launch your script. When using an LWC OmniScript, click
LWC Preview. From the Preview panel, you can navigate through the steps of the OmniScript, use the
Debug console to view an action's request and response data, change the preview layout, or view the
JSON data. The Preview view defaults to Lightning Universal Page. To change the layout, click the drop-
down menu and select your desired layout from the available list.
NOTE
Before previewing an OmniScript that uses custom Lightning web components, you must
activate the OmniScript. If the OmniScript is not active, custom Lightning web components
won't render in the preview. If you deploy changes to a custom Lightning web component
that is present in an Active OmniScript, the OmniScript will display the changes.
For information on how to test data in an OmniScript, see Test Angular OmniScript Data in the OmniScript
Data Panel.
Test an Angular OmniScript's ContextId functionality by entering a Record ID into the Data panel's
ContextId field. OmniScript automatically generates the ContextId when the OmniScript is on a Record
page. The ContextId can also be set manually using Set Values or dynamically by accessing the Id of the
current user in DataRaptor.
3. Pass the Record ID into the ContextId JSON node by clicking Fetch.
4. (Optional) Clear the data JSON when Fetch is clicked by checking Clear Data on Fetch.
Test an LWC OmniScript's ContextId functionality by entering a recordId into the Data panel's ContextId
field. OmniScript automatically generates the ContextId when the OmniScript is on a Record page. The
ContextId can also be set manually using Set Values or dynamically by accessing the Id of the current user
in DataRaptor. Test additional data in OmniScripts by entering key-pair values into the data JSON.
3. Pass the Record ID into the ContextId JSON node by clicking Update.
NOTE
LWC OmniScripts do not support the Done Action. For information on how to navigate from
an LWC OmniScript, see Navigate Action.
The Done action ends an OmniScript and returns the user to the page from which the script was launched,
or to a specified URL.
The following video demonstrates how to redirect to a Salesforce object created in an OmniScript:
https://player.vimeo.com/video/263032150
The Update Case form pictured below returns the user to the Case after the script is complete. The
ContextId node is merged into the Source field, which tells the Script which Case record to return to:
For more information about how to configure additional properties for the Done Action, refer to the Common
Action Element Properties.
For instructions on how to process user cancellations during an OmniScript, see Configuring the Cancel
Link in an OmniScript.
For details about tracking Done events, see Vlocity Tracking Service.
Activating OmniScripts
To activate a script for production deployment, edit the script and, in the Script Configuration section, click
Activate Version.
You can activate an OmniScript from the OmniScript Designer page. After expanding the desired
OmniScript Type to view the OmniScript, click on the drop-down arrow visible to the right of the active
column, and select Activate.
There can be only one active OmniScript per Type, SubType, and Language. Each active OmniScript must
be assigned a unique SubType.
Inactive scripts can be run only in preview mode. After a script is activated, you cannot change it unless you
deactivate it. To deactivate an OmniScript, click Deactivate Version in the Script Configuration section.
See Also
Version OmniScripts
User Interface
LWC OmniScripts use Lightning Web Components to define the styling for both individual elements and the
OmniScript itself. Angular OmniScripts use templates to determine the look of the OmniScript.
• Customize an Angular UI element by editing the template's CSS. Avoid changing the JavaScript and
HTML whenever possible.
• Store custom templates in a single location such as a static resource or in Vlocity Templates.
• Apply global branding by using the Newport Design System. For more information, see Branding
OmniScripts and Cards Using Vlocity Newport Design System.
• Create custom Lightning web components that extend an OmniScript element's component to apply
styling changes. For more information, see Extend an OmniScript Element's Lightning Web Component
• Apply global branding by using the Newport Design System. For more information, see Branding
OmniScripts and Cards Using Vlocity Newport Design System.
• Reduce the number of fields the user must input information into by prefilling the fields using contextual
data. For more information, see Prefill OmniScript Elements using DataRaptor.
• Avoid confusing the user by breaking processes up into shorter steps that contain a minimal amount of
elements.
• Guide the user by creating contextual help text and logically ordering input fields.
Performance Factors
A set of best practices exists for both Client-side performance and Server-side performance.
• Cut down the payload size of a request by trimming the JSON request. For more information, see
Manipulate JSON with the Send/Response Transformations Properties.
• Reduce server roundtrips by using Integration Procedures whenever multiple actions run between steps.
Run Integration Procedures asynchronously by enabling the fire and forget property.
• Remove unnecessary data by trimming the DataRaptor extract output.
Beginning with Vlocity Insurance and Health Summer '20, multi-language OmniScripts provide beta support
for right-to-left languages. When using RTL languages, some styling may result in functional limitations.
NOTE
Due to a known Salesforce issue, multi-language OmniScripts do not display correctly in
Community Builder.
1. Enable multi-language support for OmniScripts. See Enable Multi-Language OmniScript Support
2. Define custom labels and translations. See Define Custom Label Translations in Multi-Language
OmniScripts.
3. Test your OmniScript translations. See Test a Multi-Language OmniScript.
4. Launch the multi-language OmniScript. See Launch a Multi-Language LWC OmniScript.
5. Deploy multi-language OmniScripts to other orgs using DataPacks. DataPacks do not include custom
labels. You must deploy custom labels manually from your org.
See Also
• Access Custom Labels in an OmniScript Custom Lightning Web Component
• OmniScript Custom Label Reference
NOTE
Beginning with Vlocity Insurance and Health Summer '20, the LWC OmniScript Designer
supports multi-language OmniScripts.
What's Next
Define Custom Label Translations in Multi-Language OmniScripts
See Also
3. In the Edit Your OmniScript Translations modal, click the Settings gear icon and select a language.
4. Choose a custom label or create a new custom label. For information on creating custom labels in
Salesforce, see Creating and Editing Custom Labels.
NOTE
Use naming conventions when creating custom labels in an org with multiple
developers to avoid duplications and improve querying. Example syntax:
jSmithCustomTextLabel.
NOTE
• Custom labels must have values. If the value for a custom label does not exist, the
following error message displays when previewing an OmniScript:
Error: Field $Label.<stepName> does not exist. Check spelling
• For elements that support rich text (text blocks, step instructions, and headline
labels), you can include HTML markup in the text and translations.
6. Click Save.
7. Repeat the translation process for each language that requires translations.
What's Next
View required OmniScript custom label translations and apply translations for each label. See OmniScript
Custom Label Reference.
See Also
Custom Lightning web components that extend the OmniScript Base Mixin component or an OmniScript
element's Lightning web component can access both OmniScript custom labels and Salesforce custom
labels. For information on custom LWCs in OmniScript, see Create a Custom Lightning Web Component for
OmniScript.
"moreCustomLabels" : ["myCustomLabel1","orgCustomLabel2"]
3. In your custom LWC's code, add a line of code to access a map of all the custom labels using the
allCustomLabels attribute. Each component type requires a different attribute name to access the
allCustomLabels attribute.
4. Using dot notation, append the name of the attribute the custom LWC requires to access the label.
See Also
You must use custom labels to add help text in both LWC and Angular multi-language OmniScripts. If a
custom label is not defined for a help text tooltip, an error renders.
Required Versions
Available beginning with Vlocity Insurance and Health Summer '20 and CME Fall '20.
NOTE
Custom labels do not render in design mode. You must preview the OmniScript to
render the custom labels correctly.
See Also
3. Open a window console or JavaScript editor and paste in the locale object.
NOTE
Custom labels accept valid JSON strings only.
6. Choose a custom label that meets your requirements and open it in Salesforce.
9. (Optional) Use the JSON as an example and create custom translations in a JSON string format.
10. Save the custom label and preview your component.
See Also
• Configure options manually: In Salesforce, define a set of custom labels and configure translations for
them. In OmniScript Designer, use the custom labels to specify the options for the Select elements.
• Use a translated Salesforce picklist: In Salesforce, create a picklist and use Translation Workbench to
define translations for it. In OmniScript Designer, define a Select element that is bound to the Salesforce
picklist.
• Use Apex: Create an Apex method that returns a set of options that are translated according to the
language code in effect when the method is called.
The following sections describe these approaches in detail, using the Select element. Use the same
approach to create multi-language Radio and Multi-select elements.
1. In SalesForce, define a set of custom labels and specify the translations for each one.
2. In OmniScript designer, add a Select element configured as follows:
• Options:
• Value: The value to be written to the data JSON if this option is selected
• Label: The name of the Salesforce custom label from which the text for the option is read.
For example, for a list of animals, you might define three custom labels with translations in Salesforce:
In OmniScript Designer, specify the Options for the Select element, for example:
Value Label
1 Animal_Bear
2 Animal_Dog
3 Animal_Cat
1. Create a class and method that returns a map of options translated according to the language code in
effect when the method is called. See the sample code below.
2. Add a Select element to your OmniScript, configured as follows:
NOTE
For dependent Select elements that are populated programmatically (custom), configure a
controlling field by specifying the name of an OmniScript element that contains the value
that determines the options in the dependent Select element. (For example, a list of cities
might depend on a state specified in another element.) For the dependent element, specify
its CONTROLLING FIELD settings as follows:
The Apex method that returns the values that populate the Select element must contain
logic that uses the value of the controlling element and the language code to determine
what values to return to populate the dependent element.
Example Method
For example, if you define a custom object named "Multi_Language_Picklist" and define a picklist field
named "Animal_Type", specify source as follows:
Multi_Language_Picklist__c.Animal_Type__c
1. Click Preview. If the OmniScript contains custom Lightning web components, activate the OmniScript
before previewing.
2. From preview, select a language.
3. View the custom label translations for every OmniScript element to ensure they display correctly.
4. Repeat the testing process for every translated language.
What's Next
Launch a Multi-Language LWC OmniScript
See Also
LWC and Angular OmniScripts use different URL patterns to render multi-language OmniScripts. For
information on launching multi-language angular OmniScripts, see Launching Multi-Language Angular
OmniScripts.
1. From the OmniScript, click How to launch activated script. The HOW TO LAUNCH modal displays.
2. Copy the URL you want to use to launch your script. For information on LWC OmniScript URLs, see
Launch an LWC OmniScript with LWC OmniScript Wrapper.
3. Determine which language code to use in Salesforce. See Supported Languages
4. Edit the URL to add the c__LanguageCode parameter and set the parameter equal to the Salesforce
language code.
https://exampleURL.force.com/AccountCommunity/s/AccountPage?
c__target=c:docLWCTestEnglish&c__layout=lightning&c__LanguageCode=es
NOTE
Resume saved OmniScripts in other languages by using a different language code
parameter.
See Also
• Test a Multi-Language OmniScript
• Access Custom Labels in an OmniScript Custom Lightning Web Component
When launching an OmniScript using a URL, you can specify the language setting in the LanguageCode
parameter. For example:
https://myorg.na78.visual.force.com/apex/myorg__OmniScriptUniversalPage?
LanguageCode=zh_CN&OmniScriptLang=Multi-Language...
To launch a multi-language OmniScript from a VisualForce page, include the following line in the header:
language="{!$CurrentPage.parameters.LanguageCode}"
If the OmniScript includes elements that use custom templates that use custom labels, you can enable the
translation of the custom labels by declaring them in the Visualforce page that launches the OmniScript and
using specific syntax in the custom templates. To declare the labels on the VisualForce page, map them in
the script section as shown in the following example:
In the custom templates that display the custom labels, use the following syntax to refer to them:
{{::customLabels.custom1}}
To launch a multi-language OmniForm from an Integration Procedure and specify the language
dynamically, create a key/value pair in the OmniForm action's Remote Options settings list as follows:
• Key: LanguageCode
• Value: %LanguageCode%
NOTE
If you are converting an OmniScript from single- to multi-language, specify valid custom
label names or clear all translatable properties. If there is literal text in the property and no
custom label exists, a Missing label error is displayed when you attempt to preview the
script.
Element Properties
All elements label
Calculation Action errorMessage.custom[n].message, errorMessage.default, failureNextLabel, failureGoBackLabel,
inProgressMessage
Checkbox checkLabel
DataRaptor Extract Action errorMessage.custom[n].message, errorMessage.default, failureNextLabel, failureGoBackLabel,
inProgressMessage
DataRaptor Post Action errorMessage.custom[n].message, errorMessage.default, failureNextLabel, failureGoBackLabel,
inProgressMessage
DataRaptor Transform Action errorMessage.custom[n].message, errorMessage.default, failureNextLabel, failureGoBackLabel,
inProgressMessage
Disclosure checkLabel
DocuSign Envelope Action errorMessage.custom[n].message, errorMessage.default, failureNextLabel, failureGoBackLabel,
inProgressMessage
DocuSign Signature Action errorMessage.custom[n].message, errorMessage.default, failureNextLabel, failureGoBackLabel,
inProgressMessage
Edit Block newLabel, editLabel, deleteLabel
Email Action errorMessage.custom[n].message, errorMessage.default, failureNextLabel, failureGoBackLabel,
inProgressMessage
Integration Procedure Action errorMessage.custom[n].message, errorMessage.default, failureNextLabel, failureGoBackLabel,
inProgressMessage
Matrix Action errorMessage.custom[n].message, errorMessage.default, failureNextLabel, failureGoBackLabel,
inProgressMessage
Multi-Select options[i].value
PDF Action errorMessage.custom[n].message, errorMessage.default, failureNextLabel, failureGoBackLabel,
inProgressMessage
Radio options[i].value
Remote Action errorMessage.custom[n].message, errorMessage.default, failureNextLabel, failureGoBackLabel,
inProgressMessage
Rest Action errorMessage.custom[n].message, errorMessage.default, failureNextLabel, failureGoBackLabel,
inProgressMessage
Script Header consoleTabLabel
Select options[i].value
Step cancelLabel, nextLabel, previousLabel, saveLabel, cancelMessage, saveMessage
Type Ahead Block newItemLabel
Validation messages[i].text
The following table lists the properties for which Vlocity provides custom labels with default translations.
failureNextLabel OmnifailureNextLabel
inProgressMessage OmniinProgressMessage
newItemLabel OmninewItemLabel
newLabel OmninewLabel
nextLabel OmninextLabel
postMessage OmnipostMessage
previousLabel OmnipreviousLabel
remoteConfirmMsg OmniremoteConfirmMsg
saveLabel OmnisaveLabel
saveMessage OmnisaveMessage
Element Properties
All elements label
Calculation Action failureNextLabel, failureAbortLabel, redirectNextLabel, redirectPreviousLabel,
inProgressMessage, failureAbortMessage, postMessage
Checkbox checkLabel
DataRaptor Extract Action failureNextLabel, failureAbortLabel, redirectNextLabel, redirectPreviousLabel,
inProgressMessage, failureAbortMessage, postMessage
DataRaptor Post Action failureNextLabel, failureAbortLabel, redirectNextLabel, redirectPreviousLabel,
inProgressMessage, failureAbortMessage, postMessage
DataRaptor Transform Action failureNextLabel, failureAbortLabel, redirectNextLabel, redirectPreviousLabel,
inProgressMessage, failureAbortMessage, postMessage
Delete Action failureNextLabel, failureAbortLabel, redirectNextLabel, redirectPreviousLabel,
inProgressMessage, failureAbortMessage, postMessage
Disclosure checkLabel
DocuSign Envelope Action failureNextLabel, failureAbortLabel, redirectNextLabel, redirectPreviousLabel,
inProgressMessage, failureAbortMessage, postMessage
DocuSign Signature Action failureNextLabel, failureAbortLabel, inProgressMessage, failureAbortMessage,
postMessage
Done Action consoleTabLabel
Edit Block newLabel, editLabel, deleteLabel, configProdModalCancel, configProdModalOk
Email Action failureNextLabel, failureAbortLabel, redirectNextLabel, redirectPreviousLabel,
inProgressMessage, failureAbortMessage, postMessage
Filter Block buttonLabel
Integration Procedure Action failureNextLabel, failureAbortLabel, redirectNextLabel, redirectPreviousLabel,
inProgressMessage, failureAbortMessage, postMessage
Matrix Action failureNextLabel, failureAbortLabel, redirectNextLabel, redirectPreviousLabel,
inProgressMessage, failureAbortMessage, postMessage
PDF Action failureNextLabel, failureAbortLabel, redirectNextLabel, redirectPreviousLabel,
inProgressMessage, failureAbortMessage, postMessage
Post to Object Action failureNextLabel, failureAbortLabel, redirectNextLabel, redirectPreviousLabel,
inProgressMessage, failureAbortMessage, postMessage
Remote Action failureNextLabel, failureAbortLabel, redirectNextLabel, redirectPreviousLabel,
inProgressMessage, failureAbortMessage, postMessage
persistentComponent[i].label
Step previousLabel, nextLabel, cancelLabel, saveLabel, completeLabel, cancelMessage,
saveMessage, completeMessage
Submit summaryLabel, submitLabel, reviseLabel
Type Ahead Block newItemLabel
Validation (array of objects that have a messages[i].text
text property)
The following table lists the properties for which Vlocity provides custom labels with default translations.
See Also
NOTE
Only certain element properties support Merge fields.
• Setting Values to rename elements, JSON nodes, run formulas, and populate elements. For more
information, see Set Values in an OmniScript
• Access data stored in OmniScript elements in a formula or in a future step.
• Access data returned from an Action. For example, an HTTP Action or DataRaptor Action returns data
from Salesforce or an external source. For more information on Actions, see OmniScript Action
Elements.
• Access data passed in as a parameter from a page.
1. Locate the name of the JSON node in the OmniScript's data JSON.
2. Enter the name of the JSON node and wrap the name in percentage signs to indicate it is a merge
field. For example, a merge field accessing a JSON node named firstName must use the syntax
%firstName%.
Additional Syntax
This table provides additional syntax examples for nested JSON.
Each option has a Value/Label pair. The Value is the language-independent data that gets passed in and
out of the OmniScript remotely, either through DataRaptor or Remote/Rest actions. It is also referenced
when setting up Conditional View.
The Label is displayed on the form. The Value and Label can be identical or different.
For example, the ethernetLink element shown in the image below has four options:
The value of one of these options is "EN" and its label is "No Link To An Ethernet Device". If a user clicks
No Link To An Ethernet Device, the data returned is "EN".
For Multi-Select elements, if the user selects multiple options, a semicolon-delimited list of data is returned.
For example, selecting No Link To An Ethernet Device and Hardware Crashes returns EN;HW.
NOTE
If the values change frequently, enable the "Fetch Picklist Values at Script Load" to ensure
that the OmniScript elements contain the most up-to-date set of values. Salesforce
sources include picklists and custom classes.
Date Range
To create a selectable Date range for the Date or Date/Time element, configure the following properties:
The minDate and maxDate fields accept both dynamic and static values.
• today + 1 day
• today - 5 days
• today + 2 months
• today - 1 month
• 2018/10/21
• 10-21-2018
NOTE
Prior to the Summer '19 release, mobile Date Range errors do not display specific dates if
an incorrect date is entered.
Time Range
NOTE
LWC OmniScripts do not allow the DateTime format to be included in the minTime or
maxTime fields. For more information on LWC OmniScripts, see LWC OmniScripts.
To create a selectable Time range for the Time element, configure the following properties:
The minTime and maxTime fields accept static values that must include four digits formatted as HH:mm in
the 12-hour clock or 24-hour clock syntax.
• 01:00 AM
• 01:00 PM
• T07:30:00.000Z
• 01:00
• 13:00
• T19:30:00.000Z
For example, anUpdate Case OmniScript requires the Status element to dynamically populate based on
these values from the Status field on the Case object:
To do this, select SObject as the Option Source type and type Case.Status:
Now the form will retrieve and dynamically populate the list with values from Case.Status:
NOTE
If the object or field name are custom, they must be preceded with the NameSpace of the
package—for example, vlocity_cmt__Party__c.vlocity_cmt__Location__c or
Case.vlocity_cmt__Amount__c.
You can also use a custom class to populate lists in OmniScripts. See the sample code for instructions on
implementation.
If the values of the list are dependent on another field, add the information for that field in the Controlling
Field section. Follow the instructions above to define the controlling field and also enter the element name
for the field on the form.
To populate the options of an element, a List<Map<String, String>> is returned from the Custom
Implementation. The Map Options are 'Name' the Language Independent Option and 'Value' the UI Display
value.
if (methodName.equals('PopulatePicklist')) {
PopulatePicklist(input, outMap, options);
}
return true;
}
// Get All Relationship Types for Account when the Omniscript is compiled.
public void PopulatePicklist(Map < String, Object > input, Map < String,
Object > outMap, Map < String, Object > options) {
List < Map < String, String >> options = new List < Map < String,
String >> ();
for (vlocity_namespace__PartyRelationshipType__c rel: [Select
vlocity_namespace__TargetRole__c, Id FROM
vlocity_namespace__PartyRelationshipType__c where
vlocity_namespace__SourcePartyType__c = 'Account']) {
Map < String, String > tempMap = new Map < String, String > ();
tempMap.put('name', rel.Id);
// Language Independent
tempMap.put('value', rel.vlocity_namespace__TargetRole__c);
// Displayed in Picklist
UIoptions.add(tempMap);
}
outMap.put('options', options);
}
}
NOTE
Prior to Spring '17, there were two Source fields in the Designer when creating
Hierarchical Picklists (Controlling Field). Any OmniScripts setup prior to Spring '17 will still
work; the new OmniScripts will only have one Source field in the Options which will set the
dependency for Hierarchical Picklists as shown in the instructions above.
When populating a Dependent Picklist through Apex, the returned Picklist Options are a Map<String,
List<Map<String, String>>. The keys to the initial Map are the Language Independent ('name') options
from the Controlling field. The List<Map> Options are 'Name' the Language Independent Option and 'Value'
the UI Display value. For information on populating a picklist with no dependencies, see Populating Picklist
Values From Apex.
// Displayed in Picklist
UIdependency.get(rel.vlocity_namespace__SourcePartyType__c).add(tempMap);
}
outMap.put('dependency', dependency);
}
}
NOTE
OmniScript does not check to see if the dependent picklist value is valid when passed.
Invalid values are discarded when the controlling picklist is changed.
Lookup Element
Run a query using text input to retrieve Salesforce data using the Lookup element. The retrieved data is
returned in Value/Label pairs and becomes available for selection in a dropdown list.
The Lookup element calls the DataRaptor Output service to query SFDC tables based on the parameters
configured in the Properties section. To avoid performance issues, it is recommended to keep the number
of value results under 150. Select the Custom type to run a custom Apex class. Lookup elements display
values from Salesforce based on a standard SOQL query built using the parameters of the Lookup
elements.
SObject Type
To query for SObject data:
4. In the Populate Lookup Element with Query Results section, set a label and a value for the Lookup
results by configuring these fields:
• Label: Set the label for a Lookup Element's dropdown list to a JSON Value returned by the query.
Because the query returns the values in the Lookup Element's JSON Path, you must set the full
path. For example, to display an Account Name as a label in a Lookup Element named Company,
the full path is Company:Name.
• Value: Set the Value to an Object field that populates the Lookup Element's JSON Node using the
full path. When a user selects a label, the value populates the Lookup element's JSON Node. For
example, to use an Account Id for a JSON value when a user selects an Account Name from the
Lookup element, the full path is Company:Id.
5. Preview the OmniScript to ensure the query is working and the value is being set correctly.
Custom Type
Use the Custom type to call a custom Apex class which implements NS.VlocityOpenInterface, where NS is
the Name Space of the package. The source is NS.ClassName.MethodName.
For more details on query configurations, see Working with Lookup Query Configurations.
Before using the Record Type filter, set up a Remote Site to enable the options to load into the OmniScript
preview Visualforce page.
https://doc-demo-vlocity.visualforce.com/apex/OmniScriptHome?
sfdc.tabName=01rlu000001A3aC
3. From Setup, enter Remote Site into the quick find box, and click Remote Site Settings.
4. Click New Remote Site.
5. For the Remote Site Name, enter vlocity.
6. For the Remote Site URL, paste the URL from Step 2.
7. Click Save.
1. In the Picklist Object and Field property, enter the picklist in the following format:
ObjectAPIName.FieldAPIName.
2. Filter the picklist by Record Type by entering the Record Type into the Record Type property. This
property supports %MergeFields%.
When using the Lookup Element in OmniScript, the filtering of results is performed by the Lookup Query
Configuration properties section. There are three main types of queries that can be built using this the
Lookup Query Configuration properties section: AND join, OR join, and Deep query.
AND Join
To create AND Join and filter results on two or more fields set the sequence field value to the same value
as the fields you want to join together in the query.
In this example, we search for Leads that have Country = "USA" AND City = "San Francisco". This is done
by selecting the same Lookup order and populating the JSON Path with the same value.
NOTE
The JSON path can be any text but a best practice is to name the JSON Path the object
being referenced.
Deep Query
To create a Deep query, the Lookup Order is put in sequential order. OmniScript builds smaller query sets
at each order set.
In the example Deep query we are search for Leads that have Country = "USA" AND City = "San
Francisco".
The from that data set we also only display Leads that have Industry = "Government". Since we are
performing a Deep Query the JSON Path Field Name needs to be updated to populate Accordingly.
NOTE
The JSON path in the Field Population property section must match the text used in the
JSON Path. A best practice is to separate the JSON Path with a colon to indicate the
nested JSON Path.
OR Join
OR Joins are not currently supported from within the OmniScript editor so a workaround must be used to
accomplish this functionality. To perform an OR Join, a custom formula field on the object can be
implemented to accomplish the OR portion of the query such that the formula will return either a TRUE
value if the OR query is met and FALSE if not.
),
"TRUE",
"FALSE")
This effectively allows for an OR join even though the OmniScript element doesn't support this functionality
directly.
NOTE
In all instances, Filter Values must be text and wrapped in double quotations.
Create and Populate a Custom Template for a Selectable Item Using DataRaptor
The video below explains how to use DataRaptor to populate a selectable items template.
https://player.vimeo.com/video/263567055
When the OmniScript runs, the childAge formula element evaluates only the childBirthday element in the
same block:
• Upload files and images to Salesforce Documents (up to 1 MB). Files upload to the public Vlocity
Document Uploads folder and are set to Externally Available.
• Link to files and images from Documents.
The following Text Block example contains an Image, two merge fields, and a URL.
To use the Rich Text Editor, drag a Text Block or Headline element into the OmniScript structure.
Additionally, you can use it in the Step properties to edit the Instruction text in horizontal mode.
Elements include elements with built-in styling for static text. Options include customizable error messages,
show/hide settings, and the text directionality setting.
Users can always navigate to a previous step. To enable users to navigate to a future step, ensure there
are no actions between steps. Users cannot navigate to a future step if the current step has validation
errors - they must resolve all validation errors to be able to continue.
Click How to launch an activated script to get the specific URL syntax for launching your OmniScript in
Horizontal Mode.
2. Select Image from the dropdown menus located under the Display Mode and Option Source.
3. Click the + Add button to choose which image to display. When the user selects the image while filling
out the OmniScript, the option's value is added to the Data JSON.
Line Break
The Line Break element creates a line break in the OmniScript wherever it exists.
Elements placed after a line break start on the next line regardless of an other element's width. Place the
Line break element directly above the element that should begin on a new line.
Results
The Line Break ensures that a line separates the elements surrounding the Line Break element. For
example, this image displays a Line Break element that separates a person's First and Last Name from
their phone and email in the UI.
See Also
If you would like to implement the right-to-left functionality in your pages, add the following method in your
Visualforce page Apex Controller:
Add the following in your Visualforce page to include the rtl sheet:
If your page does not include the Salesforce header or footer, you'll need to wrap it in your own HTML tags
with the dir="rtl" set. Please see the example below:
System Requirements:
3. After installation is complete, launch the Storybook.js preview by issuing the command npm start.
4. Review the documentation in the Storybook preview.
5. Add customizations to your theme. See Customizing OmniScripts and Cards with Vlocity Newport
Design System.
6. Apply the OmniScript to individual OmniScripts or override the Newport theme for the entire org. See
Deploy and Apply Global Styling Changes using the Newport Design System.
See Also
• Style OmniScripts
• Apply Custom Styling to OmniScripts with Static Resources
Beginning with Vlocity Insurance and Health Spring '20 , download the HTML, CSS, and ReadMe files for
every available Lightning web component in one file.
Themes are stored in the design-tokens folder. To create a new theme for your OmniScripts or Cards,
copy the vlocity-newport-skin folder to a new folder and edit the files in it as required. To change the color
scheme of a theme, edit the skin's *color.yml files. Some colors are specified using hex RGB codes,
others are specified using tokens that resolve to hex RGB colors. These tokens are defined in the
aliases/color.yml file. To change colors for a specific component, examine its definition to find the
source of its color properties, and trace it to the definition.
When you change colors, the Newport components are recompiled, so there is a slight delay before your
changes are reflected in the Previewer.
Simple Example: Using the Previewer, look at the definition for the input element, noting the orange
underline. To change the color of the line, edit design-tokens/vlocity-newport-skin/
background-color.yml and change the setting for COLOR_BORDER_INPUT_ACTIVE to a different
color token defined in /aliases/color.yml . To verify your change, view the input component using the
Previewer.
For an optimal appearance on all viewing platforms, set control width to 6. Smaller widths might not render
well on every platform.
The Newport Previewer enables you to view the definition, appearance, and behavior of Newport
components and utilities. You can see how the component will render on desktops, tablets, and
smartphones.
To preview an element or utility, choose it from the lists in the left pane. To view the code behind it, click
</>.
The restriction tree displays the hierarchy of element definitions, from the base implementation through all
the derived ones. To view a specific definition, click the corresponding node in the restriction tree.
Deploy and Apply Global Styling Changes using the Newport Design System
Add any changes to the Newport Design System theme by uploading and applying the theme in a
Salesforce org.
1. In your Salesforce org, go to Setup and, in the Quick Find box, enter Custom Settings.
2. Find UISettings, click Manage, click New and configure the following settings:
• Name: You must name this newportZipUrl for the changes to be applied.
• Key: Enter any name.
• Value: The relative URL for the static resource. To obtain the relative URL, go to the Static Resource
(see 4 in the Before You Begin section), click View File, and copy the URL after the domain name,
removing the question mark at the end. For example, the bold text would be copied in this URL:
https://salesforce-org-test.na75.visual.force.com/resource/16679825000/vloc_customNewport?
3. Preview your OmniScript and select the Newport page from the drop-down in the upper right-hand
corner to preview your changes.
1. In OmniScript Designer, create or edit an OmniScript containing the elements you restyled.
2. Click Preview, then click How to launch activated script. The HOW TO LAUNCH dialog is displayed.
3. In the EMBEDDED section, click Newport, then click Copy to Clipboard.
4. In Salesforce, create a new Visualforce page and paste the copied code into it.
5. Exit the code and set the strCSSFileList="[]" and import the CSS file by adding the following
line:
See Also
NOTE
LWC OmniScripts do not support Templates. For information on customizing LWC
OmniScript elements, see Create a Custom Lightning Web Component for OmniScript.
NOTE
Support for the Classic Player templates ended in the Vlocity Spring '18 release.
NOTE
LWC OmniScripts do not support Templates. For information on customizing LWC
OmniScript elements, see Create a Custom Lightning Web Component for OmniScript.
Modifying an OmniScript element template changes how elements are rendered in an OmniScript. Modify
templates to either apply changes to a single instance of the element or to all elements of that type in an
OmniScript.
You can create or modify templates in the OmniScript's HTML Template, custom Vlocity Templates, or in a
Visualforce page. This topic explains how to create custom HTML templates using Vlocity Templates. For
information on how to use the modified templates, see Overwrite OmniScript Element Template.
Modifying or deleting a template does not automatically update the OmniScripts that use the template. To
update the scripts, deactivate and activate them.
NOTE
The labels displayed in the OmniScript designer are implemented as Custom Labels,
which means that you can enable translation and translate them. However, the labels that
you add using the designer are not Custom Labels, which means that to support a script in
multiple languages, you must create a version of the script for each language.
The Lightning Player and Classic Player templates can be downloaded by clicking the links below:
To use templates in a single OmniScript, go to its Script Configuration section and paste the template code
into the Custom HTML Templates property. To apply one of the templates to an element, type the name of
the template in the element's HTML Template Id property. Note that the templates listed in the dropdown list
do not include the templates defined in the Custom HTML Templates property: only templates on the Vlocity
Template tab are listed.
To apply a template to all instances of a particular type of element in an OmniScript, add the element and
corresponding template to the Element Type To HTML Template Mapping list in the Script Configuration.
To apply a custom template to a single instance of an element in an OmniScript, set its HTML Template Id
property to the name of the template.
When displaying OmniScripts, Classic player and Lightning Player use different templates. To download the
HTML templates, see OmniScript Element Reference.
• This template does not handle pagination out of the box but can be customized to do so.
• The code does support iteration through control.vlcSI.
• buttonClick offers remote call capabilities, and configureItem includes item configuration
capabilities
-->
</div>
<div class="flex" id="vlocity-price">
<div style="flex: 1;">
<span class="col-xs-6 col-sm-6 padding0">
<h6>{!$Label.OmniOneTime}</h6>
<h2>{{p.OneTimeCost}}</h2>
</span>
<span class="col-xs-6 col-sm-6 padding0">
<h6>{!$Label.OmniMonthly}</h6>
<h2>{{p.MonthlyCost}}</h2>
</span>
</div>
<div class="item-actions" ng-init=" p.isConfigurable == true ?
operation = 'configureProd' : operation = 'Add' ">
<!--
<button class="btn btn-primary col-md-12" ng-
click="buttonClick(bpTree.response, control, this, p, 'Add',
baseCtrl.customHandleSelectedItem)">
{!$Label.AddToCart}
</button>
<div ng-if="p.comparable" class="compare-link">Add to Compare</
div>
-->
<button class="btn btn-primary col-md-12" ng-
click="configureItem(bpTree.response, control, this, p, operation,
baseCtrl.customHandleSelectedItem, baseCtrl.customIsConfigurable)">
{!$Label.AddToCart}
</button>
</div>
</div>
</div>
</div>
</script>
Angular Template
The syntax below defines an Angular template:
• All Angular templates must start with a <script type> tag and end with a closing </script> tag
• The actual ID can be anything, as long as the same id is then used in the HTML Template ID field on the
script . in this example, the ID is vlcSelectableItemV2.html.
• This ID is how the framework identifies the template to load during runtime.
Scope Variable
This is a scope variable.
• Control is an object.
• propSetMap is a lower level variable for control.
• label is one level further down.
{{::control.propSetMap.label}}
Angular Directive
This syntax is used to define an Angular directive.
• itemsKey is not a literal. Rather, it is a variable that must match what it’s set to in the Items Key field in
the OmniScript Designer, as the framework looks for this. During runtime, whatever it’s set in this field will
be reflected here control.vlcSI[control.itemsKey].
will assign the whole JSON array to the node control.vlcSI[control.itemsKey]. Then, in the
template, you can use the ng-repeat function to loop through all the items in the array. Note that if an
array exists at the root level, then the ng-repeat function is not required.
• The variable can be named anything, but the name used must be used consistently in the loop further
below in the code {{p.Name}}, {{p.Description}}.
• During runtime, control.vlcSI[control.itemsKey] will attempt to access all the attributes for the
p. variable. In this example, Name and Description.
• For instance, if the JSON for the Selectable Item is {"SIKey":{"node1":"xxx", "recSet":[]}},
then vlcSI = {"node1":"xxx", "recSet":[]} and vlcSI[control.itemsKey] = [].
ng-repeat
When attempting to iterate through the list of items, you must use the syntax below:
ng-repeat='p in control.vlcSI[control.itemsKey]'
itemsKey
When a remote JSON response comes back, the way the framework knows that portion of the JSON needs
to go to the SelectableItem is based on the key match.
itemsKey
• For instance, if you have a Selectable Item called addresslist, and a remote JSON response comes
back. It can be anything, from a REST call, a remote call, a calculation, and so on; it does not matter as
all response JSONs are handled the same way.
• The JSON response has a key also called addresslist. The value for addresslist is a JSON
object.
• The framework finds a key match, therefore the framework knows that this portion of JSON needs to go
to the Selectable Item.
• The value for addresslist is likely to be an array. In this case, the array will become available for the
Selectable Item.
• Later in the template, you can use the ng-repeat to loop through all the elements in the array.
The name of the label is OmniOneTime, with syntax to refer to it available in the Visualforce component.
The values for these labels are usually stored under Custom Labels
During runtime, the string {!$Label.OmniOneTime} will be replaced by the value of the label, based on the
language. For example, if you have multiple languages (English, German, and so on), the notation !
$Label.OmniOneTime will automatically insert the correct language.
{!$Label.OmniOneTime}
Button Class
ng-click="buttonClick(bpTree.response, control, this, p, 'Add',
baseCtrl.customHandleSelectedItem)"> is a framework function that users can include on a
template.
ng-click
It will try to see whether the configuration needs to open the modal or not. If it does, it will open the modal
first, then the button click will go into a modal . If it does not it will call the button click directly.
If it's true, it toggles vlcSelected, if it's false, then it does not toggle.
Server Calls
Additional code may be added to call the server when the user clicks an item. This example shows the
code to add or remove an item from the cart.
• This is the code to call an Apex class that implements VlocityOpenInterface (or VlocityOpenInterface2, if
you want to use SFDC continuation object.
• The fifth parameter is interpreted in your Apex class, it becomes vlcOperation in options.
• The last parameter is a custom JavaScript call back to handle the UI refresh after the remote call, for
example, if the call is successful, then you can change the state of the item, which in turn triggers the
dynamic CSS.
baseCtrl.prototype.XXX = function(....)
{
}
• Selectable
• Modal
• Compare
• This piece of code handles modal for an item. Configure the 'MODAL CONFIGURATION SETTING’.
• Parameter operation becomes vlcOperation in the remote Apex class (same as above).
• The sixth parameter is a custom JavaScript call back.
• The seventh parameter is a custom JavaScript to decide whether to pop up the modal or not.
• A modal can be included anywhere on the page. On initialization, a modal's current size will be cached,
and the element will be detached from the DOM and moved inside a dimmer.
Using syntax that looks like Java and acts like database stored procedures, Apex enables developers to
add business logic to most system events, including button clicks, related record updates, and Visualforce
pages. Apex code can be initiated by Web service requests and from triggers on objects.
• A class is a template or blueprint from which Apex objects are created. Classes consist of other classes,
user-defined methods, variables, exception types, and static initialization code. From Setup, enter Apex
Classes in the Quick Find box, then select Apex Classes.
• A trigger is Apex code that executes before or after specific data manipulation language (DML) events
occur, such as before object records are inserted into the database, or after records have been deleted.
Triggers are stored as metadata in Salesforce. A list of all triggers in your organization is located on the
Apex Triggers page in Setup.
The following example is an Apex class with a Selectable Items element named checks, and a template
named customCheckList.html.
outMap.put('SituationSuburbLookup', JSON.deserializeUntyped(jsonInput));
"SituationSuburbLookup": [{
"suburb": "Forth",
"postcode": "7310",
"state": "TAS",
"vlcSelected": true
}]
Choose the following items in the custom markup on the OmniScript Designer to make this class work:
• Mode: Multi
• Data JSON: True
In the custom markup for the Selectable Item, use control.vlcSI[control.itemsKey] for your ng-repeat .
The first remote action invokes a test class to return the following:
{
"SituationSuburbLookup": [{
"suburb": "Forth",
"postcode": "7310",
"state": "TAS",
"vlcSelected": true
}]
}
NOTE
The Selectable Item will be prefilled with data JSON. If the user changes one of the
address fields, the data JSON will be updated accordingly.
• Allow Cancel: Remove the Cancel button option from the OmniScript by clearing the Allow Cancel box.
• Cancel Type:
• SObject redirects to an SFDC object. Enter the merge field of the record that you want to redirect to in
Source. Default is %ContextId%.
• URL redirects to a URL.
Elements contain up to three conditional view options depending on the Type of element. For example, an
Action outside of a Step does not have a Read Only option since the action is not visible.
1. From the Properties section on the element, go to the Conditional View section.
2. Select a Condition Type from the drop-down menu.
NOTE
Beginning with Vlocity Insurance and Health Spring
'20, this Condition Type takes priority over the Read
Only property in the element.
Set Element to Set required The element becomes required if the condition is true.
Required if True element to optional
if false
NOTE
Beginning with Vlocity Insurance and Health Spring
'20, this Condition Type takes priority over the
Required property in the element.
3. Choose the logical operator for the group (AND or OR). The AND operator requires that both
conditions are met; the OR operator requires that one of the other condition is met.
4. Click Add Condition.
5. In the left operand, enter the name of the element in plain text.
NOTE
If the element is repeatable, enter the name of the element followed by |x, where x is
the xth repeated element. For example, if Age is repeated, Age|2 refers to the second
instance of the repeated element.
• If the element type is Select or Radio, type in the name of the option in plain text—for example, Yes
or No.
• If the element type is Multi-Select, enter a semicolon-separated string—for example Ind;Small.
• If the element type is Date, Time, or Date/Time, the value should be in ISO format:
• Date—2014-10-01T07:00:00.000Z (Wed Oct 01 2014 00:00:00 GMT-0700 (PDT)
• Date/Time—1970-01-02T06:19:00.000Z (Tue Feb 17 2015 22:20:03 GMT-0800 (PST))
• Time—2015-02-21T00:09:40.270Z (Thu Jan 01 1970 22:19:00 GMT-0800 (PST))
• The right operand supports merge fields. For example Name = %contactLastName%
7. Beginning with Vlocity Insurance and Health Summer '20, in the canvas, click the Hide Conditional
Elements checkbox to hide all of the conditional elements in the OmniScript. The conditional elements
are marked with a yellow eye icon.
8. In the canvas, click the Hide Conditional Elements checkbox to hide all of the conditional elements in
the OmniScript. The conditional elements are marked with a yellow eye icon.
NOTE
In LWC OmniScripts, the onChange behavior runs after a half-second delay.
See Also
See Also
NOTE
Error Messages set in the Setup or Script Configuration properties apply to any matching
error returned by an element, while Error Messages set in an Action’s properties only
render for that Action.
• Path: A merge field path that locates the original default value inside an error object.
• Value: The original error message, including spaces, that will be replaced by the text defined in the Message
field. This value must match the original error exactly.
• Message: The custom message that will replace the error text defined in the Value field.
1. Open the Error Messages property in the element that renders the error.
2. In the Default Error Message field, enter your custom message.
3. Preview the error to ensure the message renders.
See Also
See Also
See Also
1. From the OmniScript Designer, drag a Messaging element into the structure panel where the message
must appear.
2. For Validate Expression enter the expression that should be validated. You can evaluate any element
or elements, including Formula and Aggregate. For more information about formulas, see Create
Formula Fields in an OmniScript. For more information about setting up expressions, see Dynamic
Forms Using the Conditional View Property.
3. In the Messages section, select message types for when the expression evaluates as true or false and
then enter messages. True and False messaging can be deactivated and messaging is optional.
Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, LWC OmniScript
supports the Messaging element.
In LWC OmniScripts, validation runs when a user clicks out of a field by using the onBlur function. In
Angular OmniScripts, validation runs when a user types in a field by using the onChange function.
NOTE
In LWC OmniScripts, the onChange behavior runs after a half-second delay.
Messaging Example
In this example, a Requirement message displays when a user is under the age of eighteen:
• The Messaging element's Validation Expression fails when the Birthdate field has a value, and the
AgeFormula element is less than eighteen:
• The Formula element uses the AGE function to return the age of the user based on the date entered into
the Birthdate element:
Message Types
The LWC OmniScript messages have different styling than Angular OmniScript messages. The LWC
OmniScript messages use pure SLDS styling. This table provides examples of both LWC OmniScript and
Angular OmniScript messages.
NOTE
In LWC OmniScripts, messages will remain until a user enters a valid value.
Requirement
Warning
Comment
• Calculation
• DataRaptor Extract
• DataRaptor Post
• DataRaptor Transform
• DocuSign Envelope
• DocuSign Signature
• Done
• Email
• Integration Procedure
• Matrix
• PDF
• Post to Object
• Remote Action
• Rest Action
• Review
• Set Errors
• Set Values
1. In the OmniScript Designer, select the element in the Structure pane. Its properties display in the
Properties pane.
2. Click Edit as JSON. The JSON definition for the element properties is displayed.
3. Add the following key/value entries to the top level of the JSON:
NOTE
Unlike the actions listed above, the Delete action properties pane includes settings for
confirmation prompting.
For multi-language OmniScripts, create Salesforce custom labels for the confirmation message, Submit
button text, and Cancel button text. In the properties JSON, specify the names of the custom labels rather
than the literal text to be displayed.
To verify that your platform event was fired correctly, use one of the programmatic methods described in the
related Salesforce developer documentation.
For example, on an application, an email address may not be required during the initial intake step, and in a
future step, the user states that they wish to be contacted by email.
The Set Errors element runs after the step and returns the user to the initial intake step with custom error
messaging:
NOTE
The Set Errors action does not support these elements: File, Image, Messaging, and
Formula.
if ('parentIFrame' in window) {
window.parentIFrame.sendMessage({
message: 'ltng:event',
event: 'e.force:refreshView'
})
• e.force:navigateToComponent
• e.force:navigateToList
• e.force:navigateToObjectHome
• e.force:navigateToRelatedList
• e.force:navigateToSObject
• e.force:navigateToURL
• e.force:refreshView
• e.force:showToast
• e.ltng:sendMessage
If the event has params, the JSON for the params should be specified on a params field like the example
below:
if ('parentIFrame' in window) {
window.parentIFrame.sendMessage({
message: 'ltng:event',
event: 'e.force:navigateToComponent',
params: {
})
1. Download the following DataPack and review the code in the custom template that fires the
force:refreshView event from the datapack: Done Action with Lightning Refresh Example.
2. Replace the Done action's template with a custom template using the template provided in the
datapack as a reference.
3. Write a function to fire the force:refreshView event from the Done Action. For more information on the
force:refreshView event, see https://developer.salesforce.com/docs/component-library/bundle/
force:refreshView/documentation.
To get data from Salesforce into OmniScript elements, create a DataRaptor Extract, as follows.
On the Extract tab, map data from sObjects to an intermediate structure called the Extraction Step JSON.
For each sObject from which your OmniScript requires data, perform the following steps:
3. To filter the incoming data, specify filter settings. Typically you compare the context Id from the sObject
with a merge field containing the context Id from the OmniScript, for example, Id = %caseId%.
4. On the Formulas tab, you can define expressions that add data to the Extraction Step JSON. For
more information, see DataRaptor Operators and Functions.
5. On the Output tab, map data from the Extraction Step JSON to the Current JSON Output, which is
returned to the OmniScript. For each OmniScript element that you want to populate with data, click +
and specify the source - the Extract Step JSON node - and the output path for the data. The name of
the output JSON node must match the OmniScript element that you want to populate using the data in
the node.
To make mapping easier, edit the OmniScript using the OmniScript Designer and copy its Data JSON to the
Expected JSON Output pane of the DataRaptor Designer, which populates the Output Data Type field
with a list of valid output fields.
Additionally, you can use DataRaptor to extract data from Salesforce based on data already entered in an
OmniScript. For example, if you enter the first and last name of a contact, DataRaptor can use this
information to retrieve and fill additional fields for that contact.
1. Create a DataRaptor Extract (JSON) Interface. For more information, see DataRaptor Extract
Overview.
2. Create one or more Extract Data Mappings to generate an Extraction Step JSON. For more
information, see Load Salesforce Data into OmniScript Using DataRaptor.
3. Create one or more Transform Data Mappings to map fields from the Extraction Step JSON into
elements on the script. For more information, see Create a DataRaptor Extract.
4. Preview the OmniScript.
For example, you might want to create an OmniScript for troubleshooting common customer issues. For
this OmniScript, you will want to prefill six elements on the OmniScript: AccountName, AccountId,
CaseNumber, CaseDescription, CaseStatus, and CaseSubject. Since the form is being launched from a
Case record, the Id of the Case will get passed into the ContextId element of the OmniScript. Using that Id,
DataRaptor queries the Case and Account table to retrieve the requested rows.
If the Available for Prefill When Hidden checkbox does not exist on the element, set the element's
"accessibleInFutureSteps" property to true.
The LookupText.json file is a sample conditional element and a DataRaptor Extract prefill with
"accessibleInFutureSteps": true on the Employees2 element.
The data's root node name must match the name of the block element. The fields within each array
instance of the data JSON node must match the name of an element within the block. Prefill data into
repeatable blocks with Actions by returning data that matches the block's element name and the element's
within the block using an array format.
Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, LWC OmniScripts
support prefilling repeatable blocks.
"EditBlock1": [
{
"FirstName": "John",
"LastName": "Smith"
},
{
"FirstName": "Jane",
"LastName": "Smith"
}
]
NOTE
Edit Blocks are inherently repeatable because they store entry values in an array
format.
JSON Array:
"EditBlock1": [
{
"FirstName": "John",
"LastName": "Smith"
},
{
"FirstName": "Jane",
"LastName": "Smith"
}
]
9. Click Edit in Property Editor to convert back to the default view of the Set Values Action.
10. Preview the OmniScript to view the nested data in the OmniScript's data JSON.
For more information on prefilling elements, see Prefill OmniScript Elements using DataRaptor.
The Seed Data JSON property should be used with static values that seed during the initial load of the
OmniScript. In order to set values using formulas or with information entered into the OmniScript after the
initial load, see Set Values in an OmniScript.
1. In the OmniScript's Script Configuration, find Seed Data JSON section and click +Add New Key/
Value Pair.
2. Enter the name of the element to prefill in the left text field. Enter the desired value of the element in
the right text field. If the element has multiple responses, such as a multi-select, you can prefill more
than one value by separating the entries with a semicolon.
3. When the user launches the script, the elements specified in the Seed Data JSON section contain the
static values from the Script Configurations.
4. You can also use the Seed Data JSON property to add hidden nodes to the Data JSON of the
OmniScript. For example, an OmniScript used for troubleshooting may create a case. You could use
the default values from hidden nodes to prefill values. For example, you may want the OmniScript to
create a Case with Type, Status, and Origin defined in the Data JSON of the OmniScript. Using this
method, you can have multiple OmniScripts associated with one DataRaptor interface that creates the
Case.
See Also
1. From the OmniScript’s Script Configuration panel, click the Element to open its properties panel.
2. From the Element’s properties panel, click the Default Value field, and enter a value.
3. Preview the OmniScript to view the default value in the Data JSON.
Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, Default Value fields in
LWC OmniScripts accept merge field syntax. For more information, see Access OmniScript Data JSON
with Merge Fields.
Download this datapack and test the behaviors the examples on this page provide.
To rename a node:
8. Preview the OmniScript and view the new JSON node name.
Populate Elements
Populate future elements with values from data JSON, formula operators, functions, concatenations, and
static values. Prefill an element directly from a DataRaptor or Action response whenever possible. See
Prefill OmniScript Elements using DataRaptor for more information.
NOTE
When populating an element using Set Values, data types must match. For example, you
cannot set a Text element with the value from a Number element.
To populate an element:
NOTE
When the Element Name maps to an existing element in the OmniScript, the
element's Type appears between the Element Name field and the Value field.
5. In the Value field, enter the name of the JSON node using merge syntax to map it to the new JSON
node.
Concatenate Values
Create dynamic values by concatenating JSON nodes.
NOTE
There must be a space on either side of an operator for the operation to run correctly.
6. Click Edit in Property Editor to convert back to the default view of the Set Values Action.
7. Preview the OmniScript to view the nested data in the OmniScript's data JSON.
See Also
1. Set the Path to the node you are drilling down on.
2. Enter the new node name into the JSON Node field.
1. Set the Path to the node you are drilling down on.
2. Enter the new node name into the JSON Node field, and enter a colon (:).
3. After the colon, without leaving a space, enter the second JSON node name.
1. Set the Path to the node you are drilling down on.
2. In the JSON Node field, enter a merge field that represents the new name, for example %NewNode%.
3. Use a SetValues action or an input parameter on the Preview tab to test the merge field.
For example, on the Preview tab, enter a Key of NewNode and a Value of MightyNode, click Execute
and then look for MightyNode in the output JSON.
1. In the Response JSON Node field of a step, enter the path to the list node followed by a pipe
character (|) and a merge field that represents the list item number, for example, ListNode|%item%.
2. Use a SetValues action or an input parameter on the Preview tab to test the merge field.
For example, on the Preview tab, enter a Key of item and a Value of 2, click Execute, and watch the
step output appear as the second item in the list.
If the step output node and the existing list item node match, the list item value is replaced. If they don't
match, the step output node is added as a peer of the existing list item node.
1. Set your Path to the node you are drilling down on.
2. Set the Node to VlocityNoRootNode.
1. Set the Path to the node you are drilling down on.
2. Leave the JSON Node field blank.
1. Preview the OmniScript in the OmniScript Designer and enter input that you need to transform.
2. After the action containing the JSON transformation has run, click Debug to open the Debug console.
3. In the Debug console, expand the action that is sending or receiving the transformed JSON.
4. Expand the Request to see JSON that has been transformed by the Send JSON Path and Send
JSON Node, or expand the Response to see JSON that has been transformed by the Response
JSON Path and Response JSON Node.
Calculation Action
Call a Vlocity Calculation Procedure directly from an OmniScript using the Calculation Action.
When the action executes, inputs from the form are sent to the Procedure—either directly or through a
DataRaptor pretransform service—and the output is returned to the OmniScript—either directly or through a
DataRaptor post-transform service.
Example
The example OmniScript below uses a Calculation Action (Call Calculation Procedure) to calculate the
discounted Base and Adjusted monthly rental charges that the applicant is eligible to receive. The name of
the Calculation Procedure is entered in the configurationName property.
Eligibility data from the form, such as income, program type, and number of family members is passed into
the HEPreTransform DataRaptor transform interface, where it is transformed into the Input JSON that the
Calculation procedure is expecting. Click the link icon next to HEPreTransform to view the DataRaptor
interface:
When the Calculation Action executes, the Procedure (Calculate Housing Benefit) runs and returns a JSON
that fills the results into the script. Any variable in the Procedure that is included in the Calculation Output
will be sent back to the OmniScript.
Here are the Calculation Steps in the Calculate Housing Benefit Procedure:
...and the returned JSON (this can be found by clicking Simulate on the Procedure. See the Matrices for
correct inputs):
If the elements on the OmniScript that are being sent to the Calculation Procedure exactly match the
Variable Ids in the procedure and are at the Step level of the OmniScript (not in a block), you don't need to
create a Pre-Transform interface. Otherwise, implement a Pre-Transform interface to format the JSON for
the calculation procedure.
If the elements that will be filled by the output of the script are located in a step or block called "output" with
a nested block called "calculationResults" with Variable Id's that match the OmniScript elements, you don't
need to create a Post-Transform interface. Otherwise, implement a Post-Transform interface to format the
JSON coming from the Calculation Procedure to match the JSON structure of the OmniScript.
See Also
Formula and Aggregate elements support the following constants and types:
• OmniScript elements and JSON nodes, passed in as merge fields—for example, %Element1% or
%JSONnode1%
• Numbers and integers—for example, 5 + 3.145
• String literals wrapped in quotes—for example, ' "ABC" + "DEF" '
• Booleans—for example, true || false
• Arrays—for example, "[1,2, 3, 4, 5]"
• Null
See Also
• OmniScript Functions
• Create a Formula or Aggregate in an OmniScript
Operator Meaning
+ Addition
- Subtraction
* Multiplication
/ Division
^ Power
= Equals
<> Not equals
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to
&& And
|| Or
() Parentheses
For information on supported functions in OmniScript, see OmniScript Functions. For information on adding
a Formula field to an OmniScript, see Create a Formula or Aggregate in an OmniScript.
OmniScript Functions
You can add functions to the Aggregate and Formula elements. For information on adding Formula or
Aggregate elements to your OmniScript, see Create a Formula or Aggregate in an OmniScript. To view a
list of supported formula operators that can be used with the Formula element, see Supported Formula
Operators.
The tables below detail the different available functions and how they work.
"Then Result",
"Else Result"
)
IF(EXPRESSION,THEN, ELSE) IF((%reset%="Yes" || %reboot%="Yes"), If EXPRESSION evaluates to True, THEN is
"Closed", "Escalated") returned, otherwise ELSE is returned.
OR() IF((%reset%="Yes" OR( %reboot
%="Yes")), "Closed", "Escalated")
SUMIF(values, Returns the sum of all comma-separated elements
expression_or_value) and value if a condition is met.
The elements behave similarly in an OmniScript. However, the Aggregate element should be used for
aggregation purposes, such as averaging or summing elements. Formula elements can use both
Supported Formula Operators and OmniScript Functions . For example, you may want to determine a
contract end date by adding 365 days to a date element. You could do this by using the example formula
below:
If you would like to set a date one week from today's date, you could do so by using the example formula
below:
The instructions below explain how to add and configure Formula or Aggregate element to your OmniScript.
1. From the OmniScript Designer, drag a Formula or Aggregate element onto the script structure.
2. You can add OmniScript Functions by clicking on the function name; the function will pre-populate in
the Expression section. Add the OmniScript elements inside of the function using merge field notation
by enclosing the element in percentage (%) signs.
3. If you plan to use this element in a repeatable block, see Evaluate Elements in Repeatable Blocks.
4. If you are using a Formula element, you can continue to build the formula using Supported Formula
Operators in the Expression text box.
5. If the element should not appear on the script UI, Click Hide.
6. You can also create additional elements that depend on the results of the Formula. For example, the
step shown in the image below appears when the Total Income formula is less than 1,000. For more
information, see Create Dynamic Forms Using the Conditional View Property and Display Messaging
in OmniScripts.
7. You can test the Formula or Aggregate by clicking the Preview link.
See Also
The DataRaptor Post Action sends data from the script to a DataRaptor Load that performs the update or
upsert. (When multiple upsert keys are used, the record must match all keys to be considered a
match.)When you define the DataRaptor Load, you map data from the OmniScript's Output JSON to fields
in sObjects. For details, see Object Field Mapping.
See Also
Required Items:
PDF Requirements:
• PDF must be a Linearized PDF, Version 1.5 or above. You can save a PDF as Linearized Version 1.7 by
clicking Save as Other, and then Reduced Size PDF, and then Acrobat 10.0 and later.
• Vlocity does not support the List Box PDF Form field type (Multi-Select fields) in the PDF.
• The PDF Form Field Values for Radio Buttons and Dropdowns must be logically mappable. For example,
a Radio Button on a PDF form may not have two options with the same name.
NOTE
Firefox and Safari browsers cannot fill some fields without taking additional steps. To use
Firefox and Safari, see Configuring your browser to use the Adobe PDF plug-in.
What's Next
Create a DataRaptor Interface to Map OmniScript Data to a PDF
1. From OmniScript, click Preview and fill in test data to populate the JSON of the OmniScript.
2. Copy the OmniScript's JSON data.
3. From the DataRaptor tab, click New.
4. For Interface Type, select Transform.
5. Enter an Interface name.
6. In the Input Type field, select JSON.
7. In the Output Type field, select PDF.
8. In the Target PDF field, select an existing PDF, and click Save.
What's Next
Map Fields From the OmniScript to the PDF
See Also
What's Next
Add a PDF Action to the OmniScript
See Also
NOTE
The PDF Action is not supported in IE 11 browsers.
1. From the OmniScript Designer, drag the PDF Action to the OmniScript.
2. From the Properties pane, in Document, select your PDF document.
3. (Optional) Attach the PDF to a parent record by taking these steps:
a. Fill the Attachment Name field to name the attachment.
b. Fill the Attachment Parent Id field with the id of the attachment's parent record id.
4. In the Send Transformations section, from the PreTransform DataRaptor Interface picklist, select the
DataRaptor that you created in Create a DataRaptor Interface to Map an OmniScript to a PDF.
5. Check the Read Only checkbox to make the filled PDFs read-only.
6. If necessary, change the default date and time formats.
NOTE
Use moment.js formatting. If left blank, the defaults are Time Format: h:mma, Date
Format: MM/DD/YYYY, Date Time Format: MM/DD/YYYY h:mma.
7. Exclusive to the Classic Designer, if you bypass the redirect page, the filled PDF file will be open in a
separate tab. Specify a display height and width for the dimensions of the tab. If you do not see the
fields being filled until you click into them, you may need to disable the "Highlight Existing Fields"
option in the Adobe Acrobat preferences.
8. Launch the form in Preview mode and fill out each field that should map to the PDF.
9. Check the PDF to confirm the mappings are correct.
See Also
By default, files are uploaded to Salesforce Content Documents directly. To associate one or more
Salesforce objects with the uploaded file, specify a comma-separated list of object Ids in the Content
Parent Id field. In Salesforce, the uploaded files are listed in the sObject detail page's Content section.
NOTE
File and Image elements using the Upload to Content Document functionality cannot be
mapped in DataRaptor. If Upload to Content Document is checked and the file is mapped
in DataRaptor the file will be corrupted. For more information on mapping files with
DataRaptor, see Mapping File Attachments From an OmniScript to Salesforce.
To specify a Vlocity Open Interface to be run after the file or image is uploaded, set the Remote Action
section's Remote Class and Remote Method fields. As input, the specified method receives a Map<String,
Object> list containing the File data from the Data JSON. The options contain the remoteOptions and the
filesMap, which contains the Ids of any Content documents that were created.
Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, LWC OmniScripts
support the File and Image elements. By default, the LWC File and LWC Image elements accept a file size
of up to 2GB.
NOTE
In Angular OmniScripts, the standard file size attachment limit is 4 MB per remote action.
For instructions on how to increase this limit, see File and Image Upload Size Limits in
OmniScript. Note that file uploads over 5 MB consume an API call.
NOTE
Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, LWC
OmniScripts support the File and Image elements. The Image and File elements do not
work in preview because they use SFDC components. When Image and File elements are
required in a Step, the Preview cannot advance past the Step. Vlocity recommends
marking File and Image elements as Required only before activating the OmniScript.
1. From OmniScript, under Available Components, drag the File or Image element from the Inputs
section into a Step in the Structure panel.
2. Exclusive to the LWC OmniScript Designer, attach Content Documents to parent records. Configure
these properties if they appear in the element:
• Beginning with Vlocity Insurance and Health and CME Summer '20, in the Content Parent Id field,
enter an object Id, or comma-separated list of object ids, to attach the Content Document to a parent
record. When left blank, the Content Document does not attach to a parent record.
• Check Content Document to display the Content Parent ID field, and enter an object Id, or
comma-separated list of object ids, to attach the Content Document to a parent record. When left
blank, the Content Document does not attach to a parent record.
NOTE
In the LWC OmniScript Designer files and images upload to Content Documents by
default.
3. (Optional) Exclusive to the Classic Designer, check the box labeled Upload to Content Document to
upload files directly to a Content Document. For more information on Content Documents, see
Salesforce ContentDocument.
4. Exclusive to the Classic Designer, click Content Parent ID, and enter an object id for each parent
record.
5. (Optional) When configuring the Image element, allow uploads of multiple images by checking Allow
Multiple Images.
6. Exclusive to angular OmniScripts, click PREVIEW in the upper-middle of the page to enter preview
mode.
7. Exclusive to angular OmniScripts, attach a file or image in the OmniScript. Image uploads display a
preview of the image in the OmniScript.
NOTE
Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20,
LWC OmniScripts support the File and Image elements. By default, the LWC File and
LWC Image elements accept a file size of up to 2GB.
8. (Optional) Use one of the JSON node names from Image and File to apply a condition to another
element:
"yourFileElementName": [
{
"data": "0693g000000T1ZFAA0",
"filename": "isolated-on-png.png",
"vId": "0683g000000T11iAAC",
"size": 8234
}
]
9. (Optional) The standard file size attachment limit for Angular OmniScripts is 4 MB per remote action.
For instructions on how to increase this size to 25 MB, see File and Image Upload Size Limits in
OmniScript.
When a file is attached to a File element in OmniScript, it adds this JSON to the Data JSON of the form. To
map the file's JSON to a Salesforce record, see Mapping File Attachments From an OmniScript to
Salesforce.
NOTE
File elements using the Upload to Content Document functionality cannot be mapped in
DataRaptor. If Upload to Content Document is checked and the file is mapped in
DataRaptor the file will be corrupted.
1. From the DataRaptor Load (JSON) associated with the OmniScript, add the Attachment object to the
Creation Sequence.
2. Create the following mappings (where FileElement is the name of the File element on the
OmniScript):
• ContextId = Attachment.ParentId
• fileElement:filename = Attachment.Name
• fileElement:data = Attachment.Body
3. Map an Object Id, such as the ContextId, to the Attachment.ParentId. If an object is being created in
the same DataRaptor, create a Linked Mapping that maps the Id of the previously created or updated
parent object to Attachment.ParentId. For more information on Linked Mappings, see Multiple Related
Object Loads (Link Mappings).
4. (Optional) To ensure that files with the same name are not overwritten, check the Upsert Key box for
the Attachment:ParentId and Attachment:Name mappings.
<apex:includeScript
value="/soap/ajax/33.0/connection.js" />
NOTE
Attachments over 5 MB will consume an API call. OmniScript User profiles must have the
API Enabled permission enabled. For more information, see Salesforce User Permissions.
File Properties
This page contains information on File element Properties.
Property Description
Content Parent Id Enter a comma-separated list of object ids to attach the Content Document to Parent Records. When left
blank, the Content Document does not attach to a parent record. Note: Image and File uploads do not
work in Preview.
Extra Payload Sends additional Key/Value pairs. Supports merge field syntax.
Remote Class Specify a Vlocity Open Interface Class.
Remote Method Specify a Vlocity Open Interface Method.
Remote Options Key/value pairs that specify additional class invocation options.
Upload To Content In LWC OmniScript, files upload to a Salesforce Content Document by default. Check this box to display
Document the Content Parent ID field and attach a Parent Record.
See Also
Image Properties
This page contains information on Image element Properties.
Property Description
Allow Multiple Images Enables users to upload multiple images at once.
Property Description
Content Parent Id Enter a comma-separated list of object ids to attach the Content Document to Parent Records. When
left blank, the Content Document does not attach to a parent record. Note: Image and File uploads do
not work in Preview.
Extra Payload Sends additional Key/Value pairs. Supports merge field syntax.
Remote Class Specify a Vlocity Open Interface Class.
Remote Method Specify a Vlocity Open Interface Method.
Remote Options Key/value pairs that specify additional class invocation options.
Upload To Content In LWC OmniScript, images upload to a Salesforce Content Document by default. Check this box to
Document display the Content Parent ID field and attach a Parent Record.
See Also
Posting Data to the Application Object using the Post to Object Action
You can submit an OmniScript directly to the Vlocity Application object using the Post to Object Action
Element. The Vlocity Application object enables an in-progress OmniScript to be stored and resumed later.
The OmniScript can be resumed by the original user, reviewed, or approved. This can either be a button on
a Step or a remote action that runs between Steps. The entire JSON, including attachments, submits.
NOTE
Posting Data to the Application Object is only available in Communities and Salesforce
Sites.
• Creates an Application record where the name equals the value of the postNameTemplate property and
the application reference number generates based on the Auto Number seed and workflow rule. For
more information, see Create an Auto Number Field and Configure a Workflow Rule.
• Populates the Full JSON , Data JSON , and Files Map fields.
• Processes root level files, if any, and adds them as attachments to the application record.
• Sets the Application Status to Submitted.
The application record will not generate with a parent record's Id in the object's primary party Id field. To
update the primary party Id field on the application object, place a DataRaptor Post Action after the Post to
Object action. The DataRaptor will then have access to the application's Id in the JSON, allowing you to
upsert the application record, for more information on upsert, see Post Salesforce Data from OmniScripts.
1. From the OmniScript, create the last Element with Type as Post to Object Action.
2. If the Element will launch from inside a Step, place it inside a Step or Block. It will render as a button. If
the Element will launch in between steps (remotely), place it at the same level as the Step (no Parent
Element), after the final Step that you are collecting data from.
3. If the Element is a button, the Property Set contains:
• controlWidth—controls the width of the button
• label—label on the button
• restPath—/NS/v1/application. NS = Name space of the package.
• restMethod—POST
• postNameTemplate—the name of the OmniScript in the object. Supports merge fields—for
example, %text1% Medical Application %date1%.
• remoteTimeout—the timeout for the request, in milliseconds. If left blank, defaults to 30,000 (30
seconds. Maximum 120,000 (120 seconds).
• validationRequired—whether to check the validation of the script or step before the OmniScript
posts. Enter Submit to validate the entire script or Step to validate only the step that the button is
on. Leave blank to bypass validation.
• redirectPageName—custom redirect page name. Upon success, the script navigates to this page.
Leave null to bypass the redirect page.
• redirectTemplateURL—HTML template of the redirect page. The provided template is
vlcApplicationAcknowledgeV2.html.
• redirectPreviousLabel—the label of the previous button on the redirect page.
• redirectPreviousWidth—the width of the previous button on the redirect page.
4. If the Element runs remotely (in between steps):
• label—heading of the Action block.
• restPath—/NS/v1/application. NS = Name space of the package.
• restMethod—enter POST.
• postNameTemplate—the name of the OmniScript in the object. Supports merge fields—for
example, %text1% Medical Application %date1%.
• remoteTimeout—the timeout for the request, in milliseconds. If left blank, defaults to 30,000 (30
seconds. Maximum 120,000 (120 seconds).
• inProgressMessage—message displayed while the action is being executed.
• postMessage—message displayed upon success.
• failureNextLabel—label of the continue button if the action fails.
• failureAbortLabel—label of the abort button if the action fails.
• failureAbortMessage—confirmation message displayed after user clicks abort button.
• validationRequired—whether to check the validation of the script before Raptor is invoked. Default
is Submit. Leave blank to bypass validation.
• redirectPageName—custom redirect page name. Upon success, the script navigates to this page.
Leave null to bypass the redirect page.
• redirectTemplateURL—HTML template of the redirect page. The provided template is
vlcApplicationAcknowledgeV2.html.
• redirectNextLabel—label of the next button on the redirect page.
• redirectNextWidth—width of the next button on the redirect page.
1. From Setup, click Create, and then click Objects, and then click Application.
2. Scroll down to the Custom Fields & Relationships section and click New.
3. Select Auto Number and click Next.
4. In the Field Label field, enter the name of the field.
5. In the Display Format field, enter the new display format. Click What Is This? for more information on
display formats.
6. Enter a starting number and click Next.
7. Set the field-level security by setting the field to Visible for profiles that should see the field.
8. Click Next.
9. Click Save.
10. Return to Setup and click Create, and then click Workflow & Approvals, and then click Workflow
Rules.
11. Click New Rule.
12. Select Application and click Next.
13. In the Rule Name field, enter a name.
14. In the Rule Criteria section, enter NS_ApplicationReferenceNumber__c = '', where NS is the
Vlocity namespace in your org. For more information, see Viewing the Namespace and Version of the
Vlocity Package.
15. Click Save & Next.
16. On the following page, click Add Workflow Action and then click New Field Update.
17. In the Name field, enter a name for the update.
18. In the Field to Update field , select Application Reference Number.
19. Click Re-evaluate Workflow Rules after Field Change.
20. Click Use a formula to set the new value.
21. Click Show Formula Editor.
22. Click Insert Field and select the Auto Number field you created.
23. Click Save.
24. Click Done.
25. Click Activate.
NOTE
Vlocity Communications does not include the Application custom object tab. To learn how
to create a new custom object tab, see Create a Custom Tab in the Salesforce Help.
1. From Setup, click Create, and then click Objects, and then click Application.
2. Scroll down to the Page Layouts section and click Edit next to the production Application layout.
3. Drag the Review button from the palette to the Custom Buttons section.
4. Create a 1-Column section and drag the ApplicationDataJSONPage from the palette onto the new
section.
5. Click Save.
These features require an active DocuSign account but do not require DocuSign for Salesforce or
DocuSign Connect. For optimal integration between DocuSign and Salesforce, Vlocity recommends one of
these products.
To prepare a DocuSign template for OmniScript, you must have the following items:
• DocuSign account
• DocuSign for Salesforce account
After completing this step, you can create either a DocuSign Envelope Action or DocuSign Signature Action
(v12 only) in your OmniScript.
4. (Optional) For ease of mapping, copy the data JSON from your OmniScript and paste it into the Input
JSON pane in the DataRaptor Designer.
5. On the Outputs tab, map the fields from the output JSON of your OmniScript to the input fields from
the DocuSign template.
NOTE
If you have updated your DocuSign template, you must Fetch the DocuSign templates
to update the input fields. For more information on fetching templates, see Linking
DocuSign Template to Vlocity.
Using the DocuSign Signature Action to Sign Documents From Within an OmniScript
After preparing the DocuSign Template and mapping the fields from the OmniScript to the Template using
DataRaptor, create a DocuSign Signature Action in the OmniScript. When the action runs, a modal opens
containing the prefilled document. The user must take an action on the document before continuing the
OmniScript. They can either sign or decline to sign the document.
NOTE
To use a DocuSign Signature Action with LWC OmniScript in a Community, add this
Visualforce page permission to any profiles using the OmniScript:
OmniScriptLwcDocuSignViewPdf.
When the modal opens, a node is written to the Data JSON of the OmniScript in this format:
"DocuSignElementName": [
{
"status": Declined",
"envelopeId":"xyz123"
},
{
"status": Completed",
"envelopeId":"xyz123"
}
]
A new status and envelopeId generate every time the modal launches. Statuses include Completed,
Declined, and In Process.
1. From the OmniScript Designer, drag a DocuSign Signature Action element from the Actions section
onto a step or block of the form, where it renders as a button.
2. From the element properties, select a DocuSign Template.
3. Enter a signer name, email, and template role. Template roles are configured during the template
setup. Signer Name and Signer Email support merge fields. For example %firstName% %lastName%
would merge the contents of the firstName and lastName fields into the Signer Name field during
runtime.
4. Add an Email Subject that recipients receive after signing.
5. (Optional) Enter a DocuSign Return Url that will display in the modal after signing is complete.
6. Expand the Send/Response Transformations section and select the DataRaptor Interface that was
created to map the OmniScript fields to the DocuSign Template.
7. (Optional) LWC OmniScripts use window.parent.postMessage to post the status to the LWC Omniscript
from the Docusign Return Page. If you are overriding OmniScriptDocuSignReturnPage in your
OmniScript, post the docusign status back to OmniScript using window.parent.postMessage. For more
information, see
Example:
window.addEventListener('DOMContentLoaded', function(event){
var domClass = '';
var searchStr = event.currentTarget.location.search;
searchStr = searchStr.substring(searchStr.indexOf('&event='),
searchStr.length);
searchStr = searchStr.substring(searchStr.indexOf('=') +
1,searchStr.length);
1. From the OmniScript Designer, drag a DocuSign Envelope Action element from the Actions section
onto the palette. To run the action automatically, place it between steps. To run the action when the
user clicks a button, place it in a step.
2. From the element properties, select a DocuSign Template.
3. Click Add Recipient and enter a signer name, email, and template role.
Template roles are configured during the template setup. The Signer Name and Signer Email roles
support merge fields. For example %firstName% %lastName% would merge the contents of the
firstName and lastName fields into the Signer Name field during runtime.
4. If you have more than one recipient, you can override the routing order set on the template by entering
a new order in the Routing Order field. Leave the field blank to use the default routing order.
5. Add an Email Subject and Body that recipients receive along with the envelope.
6. Expand the Send/Response Transformations section and select the DataRaptor Interface that was
created to map the OmniScript fields to the DocuSign Template.
NOTE
Your organization must have Salesforce Knowledge enabled to use this feature.
https://player.vimeo.com/video/263023187
Articles can either be opened directly in the OmniScript or in a modal window. Examples of those two
options are shown in the images below.
1. From the Script Configuration section, expand the Persistent Component section.
2. Click the vlcKnowledge tab.
3. Enter a display label for the component and click Render.
4. (Optional) Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, in LWC
OmniScripts, select Display Outside OmniScript to enable OmniScripts to display Knowledge base
articles outside of the OmniScript. For information on configuring this option, see Opening Knowledge
Base Articles Outside of a Classic OmniScript.
5. Expand the Knowledge Options section and click Enable Knowledge.
6. In the Knowledge Article Type Query Fields Map, on the left side, enter the Article Type API name.
When Lightning Knowledge is enabled, enter the Record Type API name.
7. On the right side, enter the field API Name for the article body.
8. To query multiple fields for the article type, enter each field, comma-separated with no spaces. For
example Summary,vlocitycmt__articleBody__c. Click +Add New Key/Value Pair to query additional
Article Types.
1. From the OmniScript Designer, click the Step that should display the Knowledge component.
2. Under Show Persistent Component, select vlcKnowledge.
3. Expand the Knowledge Options section.
4. Language is defaulted to English and Publish Status to Online.
5. In the Keyword field, enter one or more static values, such as a literal string, or a merge field to build
the query string. For information on merge fields see, Access OmniScript Data JSON with Merge
Fields.
6. In the Data Category Criteria field, enter a query for the Data Category. This helps to filter the articles.
For example, Type__c AT (Internet__c). Note that you do not need to enter WITH DATA CATEGORY.
See With Data Category filtering Expression from the Force.com SOQL and SOSL Reference for
more information on building queries for Data Categories.
7. (Optional) When lightning knowledge is enabled, enter article Record Types into the Record Type
Filter field to filter the record types queried by the step.
The Vlocity OmniScript Knowledge Base component renders Knowledge base articles side-by-side with an
OmniScript or as a standalone component. When opening Knowledge Base articles from an OmniScript,
OmniScript passes specific information into the OmniScript Knowledge Base component to search the
Knowledge base and render articles.
1. In an OmniScript's Script Configuration, expand Knowledge options, and select Enable Knowledge.
2. Select Lightning Knowledge, and configure the remaining fields using the instructions in Initial
Configuration for the Knowledge Component in Classic OmniScript.
3. In the Persistent Cart's vlcKnowledge tab, ensure Display Outside OmniScript is checked.
4. (Optional) Configure Knowledge Options on the Step level. See Configuring Knowledge for Individual
Steps in Classic OmniScript.
5. Deploy the OmniScript by clicking the Activate button.
6. Open the Lightning App Builder and create a new page with a layout containing at least two regions.
7. From the Lightning page, drag the deployed LWC OmniScript component into the page. For more
information, see Add an LWC OmniScript to a Community or Lightning Page.
8. From the Lightning Components section, drag the Vlocity OmniScript Knowledge Base component.
9. In the omniscriptKey field, enter the name of the LWC OmniScript component using the syntax
type_SubType_Language.
10. (Optional) In the layout field, enter newport to render the Knowledge base article with Newport
styling.
11. Save the Lightning page and test the OmniScript on the Lightning page to preview the behavior.
See Also
Calculation Action
Call a Vlocity Calculation Procedure directly from an OmniScript using the Calculation Action.
When the action executes, inputs from the form are sent to the Procedure—either directly or through a
DataRaptor pretransform service—and the output is returned to the OmniScript—either directly or through a
DataRaptor post-transform service.
Example
The example OmniScript below uses a Calculation Action (Call Calculation Procedure) to calculate the
discounted Base and Adjusted monthly rental charges that the applicant is eligible to receive. The name of
the Calculation Procedure is entered in the configurationName property.
Eligibility data from the form, such as income, program type, and number of family members is passed into
the HEPreTransform DataRaptor transform interface, where it is transformed into the Input JSON that the
Calculation procedure is expecting. Click the link icon next to HEPreTransform to view the DataRaptor
interface:
When the Calculation Action executes, the Procedure (Calculate Housing Benefit) runs and returns a JSON
that fills the results into the script. Any variable in the Procedure that is included in the Calculation Output
will be sent back to the OmniScript.
Here are the Calculation Steps in the Calculate Housing Benefit Procedure:
...and the returned JSON (this can be found by clicking Simulate on the Procedure. See the Matrices for
correct inputs):
If the elements on the OmniScript that are being sent to the Calculation Procedure exactly match the
Variable Ids in the procedure and are at the Step level of the OmniScript (not in a block), you don't need to
create a Pre-Transform interface. Otherwise, implement a Pre-Transform interface to format the JSON for
the calculation procedure.
If the elements that will be filled by the output of the script are located in a step or block called "output" with
a nested block called "calculationResults" with Variable Id's that match the OmniScript elements, you don't
need to create a Post-Transform interface. Otherwise, implement a Post-Transform interface to format the
JSON coming from the Calculation Procedure to match the JSON structure of the OmniScript.
See Also
Managing OmniScripts
The following topics tell you how to manage your OmniScripts.
NOTE
Beginning with Vlocity Insurance and Health Summer '19, OmniScripts enable the use of
Lightning Web Components. For more information, see LWC OmniScripts.
The Type and SubType and Language fields combine to act as a unique identifier for the OmniScript.
It is possible to create a new Type and SubType while creating a new OmniScript by filling in the Type and
SubType fields in the OmniScript's Script Configuration. Maintain track of OmniScripts by using logical
naming conventions. For example, an OmniScript that creates a new Contact might use the naming
convention Type=Contact and SubType=New.
NOTE
There can be only one active OmniScript or Integration Procedure per Type, SubType, and
Language. Ensure that each active OmniScript and Integration Procedure has a unique
SubType.
Administrators can also create new Types and SubTypes by following the instructions below:
Importing OmniScripts
Starting with Spring 2016, OmniScripts can be imported using the Data Pack feature. This allows you to
move OmniScripts from one environment to another.
For more information about how to export OmniScripts, see Exporting OmniScripts .
Exporting OmniScripts
OmniScripts can be exported using the new Data Pack feature. This allows you to move OmniScripts from
one environment to another.
1. From the OmniScript Designer tab, use the disclosure arrows to expand the OmniScript.
2. Locate the version of OmniScript you want to export and click the arrow icon. This icon is visible for
expanded OmniScripts to the right the Active column.
For more information about importing. JSON export files into another environment, see Importing
OmniScripts.
Version OmniScripts
Create multiple versions of an OmniScript to develop and test scripts in preview mode before activating
scripts for production deployment. Vlocity recommends not making any changes to a production
OmniScript. Any time you plan to alter a production script, create a new, inactive version and make all
updates in the latest version before activating.
See Also
• LWC OmniScript Designer Overview
• Set Up an OmniScript in the LWC OmniScript Designer
Enable users to save and resume OmniScripts by using OmniScript's Save Options property. Users can
bookmark links, launch a saved instance from an object page, or email the link. Configure custom URLs to
resume saved OmniScript instances in different domains. For example, a customer can initiate an
OmniScript inside of a Community, and then a customer service representative can resume the OmniScript
inside of the Service Console.
Next Steps
Configure Save Options
Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, LWC OmniScripts
supports the Save For Later feature.
1. From the OmniScript's Script Configuration, expand the Save Options section.
2. Click Allow Save For Later to enable the Save For Later feature.
3. (Optional) Enable steps to automatically save an instance when a user clicks the Next button on a Step
by checking Auto Save on Step Next.
4. In the Save Name Template field, enter a name for the OmniScript instance. This field supports merge
fields—for example, %LastName%, %FirstName% - Application. If this field is left blank, the default
is Saved-OmniScript Name-[RowId]."
5. In the Save Expire In Days field, enter a number to enable the OmniScript instance to remain usable
for a number of days. If a user attempts to resume the script after it expires, the script will start over.
6. Exclusive to Angular OmniScripts, set the Save For Later Redirect Page Name to a redirect page
name. Upon success, the script navigates to this page.
7. Exclusive to Angular OmniScripts, Save For Later Redirect Template Url—HTML template of the
redirect page. The provided template is vlcSaveForLaterAcknowledge.html.
8. Set the Save Object ID field to attach the Saved OmniScript instance to a record. The default value is
%ContextId%. This field supports merge fields. For more information, see Access OmniScript Data
JSON with Merge Fields.
9. (Optional) Exclusive to LWC OmniScripts, enable users to merge data into an updated LWC
OmniScript by checking Merge Saved Data JSON into updated OmniScript. If the option is not
enabled, users opening a saved instance will start from the beginning of the updated version of the
OmniScript.
User Message:
NOTE
When an LWC OmniScript is Activated, it generates a unique LWC making saved
OmniScript instances of the previous version unusable. If Merge Saved Data JSON
into updated OmniScript is enabled, when a saved instance launches, the
OmniScript merges the data from the saved instance into the updated OmniScript.
10. (Optional) Click Save Content Encoded to use Base64 encoding for the saved OmniScript file. Select
this option to obfuscate the data.
11. In the Save URL Patterns section, map the OmniScript instance URL to a custom field in an Object.
See Map Saved Instance URLs to Custom Fields.
12. (Optional) To enable Allow Save For Later on a per-step basis:
a. From a Step element, expand the Save Options section.
b. Check, or uncheck, Allow Save For Later to enable or disable Save For Later on the Step.
What's Next
Map Saved Instance URLs to Custom Fields
See Also
• Customize the Save for Later Error Message
• Conditionally Display Elements in Saved OmniScripts for Different User Profiles
• View In-Progress and Completed OmniScripts
• Specify a Resume Link in a Visualforce Page
Configure Save URL Patterns to control the URL format that maps to any custom fields. You must create a
custom field in the Saved OmniScript object for every additional URL that you save to an OmniScript
instance.
NOTE
The URLs saved to the object require different syntax depending on the type of OmniScript
and where the OmniScript launches.
1. From Salesforce Setup, open the Object Manager, and select the Saved OmniScript object.
2. Add a new custom field that accepts URLs.
3. Copy the field's API name.
4. In the Save URL Patterns section, in the Field API Name field, paste the field API name.
5. In the URL Pattern field, enter a URL using these syntax patterns:
LWC OmniScripts:
NOTE
LWC OmniScripts must use the LWC OmniScript Wrapper URL patterns to launch
saved OmniScript instance URLs.
• Community Pages:
Using the Community LWC OmniScript Wrapper URL pattern, add the parameter c__instanceId ,
and set it to {0}. Set the c__target parameter to {1}.
https://myDomain.force.com/CommunityName/s/CommunityPage/
c__layout=lightning&c__instanceId={0}&c__target={1}
NOTE
The Community page that opens the saved instance must have the LWC
OmniScript Wrapper component present. See Launch an LWC OmniScript with
LWC OmniScript Wrapper.
• Lightning Pages:
Using the Lightning LWC OmniScript Wrapper URL pattern, add the parameter c__instanceId
and set it to {0}. Set the c__target parameter to {1}.
https://myDomain.force.com/lightning/cmp/namespace__vlocityLWCOmniWrapper?
c__layout=lightning&c__instanceId={0}&c__target={1}
Angular OmniScripts:
Enter the Resume link for the OmniScript, replacing the Instance Id with {0}:
https://myDomain.force.com/apex/OmniScriptUniversalPage?
layout=lightning#/OS/{0}/scriptState/saveAndResume/true/true
6. (Optional) Test the OmniScript by taking these steps:
a. Save and Activate the OmniScript.
b. Preview the OmniScript and save the instance.
c. Copy the saved OmniScript link.
d. Paste the link into your browser to view the saved instance.
NOTE
If the link does not work, ensure your URL format and any Community page
names are correct.
What's Next
Customize the Save for Later Error Message
See Also
When multiple users are updating the same saved OmniScript instance, the first user that saves the
OmniScript becomes the owner of that instance. The user that is unable to save the OmniScript receives an
error that informs them that they need to refresh the OmniScript. Customize the error message users
receive by using the Error Messages property. For more information, see Customize OmniScript Error
Messages.
1. In the OmniScript's Script Configuration, expand the Error Messages section, and click Add Custom
Error Message.
2. Leave the Path value blank. The error message is in the OmniScript's root path.
3. In the Value field, enter this default error message text: This saved OmniScript has been
updated since resuming. To see the latest updates, please exit and resume
the saved OmniScript again.
4. In the Message field, enter a custom error message.
5. Save and Activate the OmniScript.
6. (Optional) Test the OmniScript by taking these steps:
a. Open the OmniScript and save an instance.
See Also
When the OmniScript resumes, it uses the profile of the current user. Conditions on elements can
determine whether the user has access to the element. For example, an agent may see data that does not
display to customers.
See Also
Use prebuilt Visualforce pages for Accounts and Contacts, create custom Visualforce pages for additional
records, or view all records in the Vlocity OmniScript Workbench.
NOTE
If an OmniScript launches from the context of a Contact or Account record, you can view
all in progress or completed OmniScripts for that specific Account or Contact under the
Customer Story section.
<NS:OmniScriptInstanceComponent standardController="{!stdController}"/>
</apex:page>
3. Replace these variables in the code with the appropriate values:
• ObjectName Enter the API name of the standard or custom object.
• NS : Enter the Namespace of the package. For more information, see Viewing the Namespace and
Version of the Vlocity Package.
See Also
Create a new Visual ForcePage and enter the code below. Replace the FieldAPIName variable with the
Field API Name specified under the Save URL Patterns. For more information, see Configure Save
Options.
See Also
Emailing an OmniScript
To email a link to an OmniScript to a Contact, Lead, or User, you create an Integration Procedure that uses
a remote action to send the email and call the Integration Procedure from an OmniScript or from Apex
code.
For example, an insurance agent who requires details about a prospect can email an OmniScript link to the
prospect. When the recipient of the email clicks the link, their browser displays the OmniScript, containing
whatever data the sender has entered. The recipient fills in the required information, enabling the agent to
create a quote for them.
The recipient does not need to have a Salesforce account to access the OmniScript but must have a
Contact, Lead, or User record containing their email address and the permissions required to view the
script. The recipient might be required to log in to view the email.
The following sections provide details about creating the required components.
In the Remote Options section, define the following required key/value pairs, plus any merge fields
required by the email template:
• Language : OmniScript language. For multi-language OmniScripts, set to "Multi-Language" and set the
LanguageCode parameter to the Salesforce language code .
• Type : OmniScript type.
• Subtype: OmniScript subtype.
• emailTargetObjectId: The Id of the recipient (contact, lead, or user).
• emailTemplateName : The Salesforce Unique Template Name.
• saveAsActivity: Set to true if you want an activity record created when the email is sent.
• LanguageCode : For multi-language OmniScripts, the Salesforce language code.
This remote action creates an OmniScript record with the specified Type, Subtype and Language. Before
the OmniScript is saved, all actions prior to the first step are run, which enables you to prefill information
about the Contact, Lead, or User. The Remote Action merges the data into the email template and sends
the email.
To test the Integration Procedure, go to the Preview tab and define an input parameter named "contextId"
that contains the Id of a valid Contact, Lead, or User who has a valid email address. When you are satisfied
that the Integration Procedure works as desired, activate it.
The OmniScript must provide the contact Id in the contextId node of the JSON payload that is sent to the
Integration Procedure.
To verify that you have configured all settings correctly, preview the OmniScript and check the resulting
email.
https://<instance>/apex/OmniScriptUniversalPage?layout=lightning#/OS/
%OmniScriptInstanceId%/scriptState/saveAndResume/true/true
In the email template, use Salesforce-style merge fields (formatted as {!object.field}) to incorporate
Salesforce data, and Vlocity-style merge fields (formatted as %fieldname%) to incorporate data that is
provided by the Integration Procedure.
For example:
Hi, {!Name}:
Here's a link to the OmniScript you requested:
https:///myorg.visual.force.com/apex/OmniScriptUniversalPage?
layout=newport&AccountId=%accId%&OmniScriptInstanceId=%instanceId
%&scriptMode=vertical&loadWithPage=false&LanguageCode=%LanguageCode%#/
Thanks,
%SenderName% %Name%
Deploying an OmniScript
Vlocity OmniScripts can be deployed within the Vlocity application, or within an iFrame either on a
Salesforce Community or an external website. Once embedded within the page, the script can be
versioned, modified, and activated without the need to reconfigure the page.
When using OmniScript in the Lightning Console, note that the result of launching the OmniScript home
page has changed as of SFDC Winter '19. For the optimal experience, create a new primary tab by CTRL-
clicking the link. From the new primary tab, you can open objects in a sub-tab of that primary tab.
1. From Setup, click Develop, and then click Sites, and then click New.
2. Enter values for Site Label, Site Name, and other fields.
3. In the Active Site Home Page field, lookup and select the Visualforce OmniScript page created above.
4. Record the site's URL for future reference.
5. Click Public Access Settings, and then click Edit, and set the following values:
• Custom Object Permissions
• Vlocity OmniScripts: Read
• Elements: Read
• Applications: Read, Create
• Field Level Security
• Vlocity OmniScript: Make All Fields Visible
• Element: Make All Fields Visible
• Application: Make All Fields Visible
• Enabled Apex Class Access
• [NameSpace] .ApplicationResource
6. Embed the URL from Step 4 in the external site's iFrame.
For example, after creating a Force.com site, publicly available APIs are enabled for the Site User profile
based on the profile's Apex class access to RestResource Apex classes. Adding an Apex class
permissions checker ensures that unauthorized users, such as a guest user, can't access classes through
the Vlocity/V1/GenericInvoke/ API.
5. Click New.
1. Log in to the computer hosting your AEM server. If your server is hosted on another computer, log in to
it via Remote Desktop.
2. In Salesforce, visit the Static Resources page and download the vlocityomniaem.resource resource.
Rename the file to .zip and extract it to a new directory.
3. There are two packages in this folder:
a. omniscript-core: Contains the core business logic and styles for OmniScript as well as a Universal
page that can be configured for use with any OAuth2.0 configuration.
b. omniscript-demo: Contains several sample alternative deployments of OmniScript, One which
uses an OAuth pop out for script specific authentication, one and which uses constant
configuration on the OmniScript component.
4. If you have a non-standard deployment of AEM, you can configure the package by editing the
POM.xml to reflect your instance and login information.
5. Access CRXDE Lite and click the Packages icon to open the Package Manager page.
6. From Windows, open a command-line interfacesuch as Cygwin, Command Prompt, or PowerShell.
7. Through the command-line interface, navigate to the directory where you saved the static resource
downloaded in step two.
8. Navigate to the omniscript-core file and run the following command: mvn -P autoInstallPackage
clean install. This will take a few minutes as the package is built, deployed to and installed on
your configured AEM instance.
9. Navigate to the omniscript-demo file and run the following command: mvn -P
autoInstallPackage clean install.
10. Verify by going back to CRXDE and clicking on the second icon button in the top bar. This will bring
you to the Package Manager and will show your installed packages.
11. From CRXDE, navigate to apps/vloc/clientlibs/ooutCustom/js
12. Copy the sample_custom_setting.js file and rename the copy to custom_setting.js.
13. (Optional) In custom_setting.js change the namespace and consumer key.
var CONNECTED_APP_CONSUMER_KEY = 'AppKey';
var SFDC_NAMESPACE = 'vlocity_package_namespace';
After completing the instructions above, Set Up Salesforce Cloud Services Connection for Adobe
Experience Manager.
The steps on this page outline how to connect Salesforce and AEM. The connection setup is not part of the
Vlocity package. For more information on connecting Salesforce to AEM, see Integrating with Salesforce.
1. Log into your Salesforce org and create your Connected App. In the API section, check Enable OAuth
Settings, and add Full access(full), and Perform request on your behalf at any time
(refresh_token, offline_access) to your Selected OAuth Scopes.
2. Enter a Contact Email, and leave the tab open.
3. After creating app, it can take up to ten minutes to take effect. Click Manage to set up connection
policies. Once the page loads, click Edit Policies.
4. Ensure that the Refresh Token Policy is set to Refresh token is valid until revoked and under
Session Policies the Timeout value is set to --None–. You need the Consumer key and Consumer
secret for step 6 of this process.
5. Open your AEM instance and click the main logo in the top left corner.
6. Click the Tools icon, and select Deployment.
7. Select the Cloud Services card and scroll down to the Salesforce section. Click Show Configurations.
8. Click the [+] link located to the right of Available Configurations and enter the necessary information
and click Create. This opens a new page and modal for the Cloud Services Configuration.
9. To create consistency across platforms, enter the name of the Connected App that you created in
Salesforce into the Title and Name fields of the AEM Configuration modal. Leave the modal open.
10. Navigate back to the Connected App page in Salesforce.
11. In Callback URL, enter the AEM URL that has Administrator Access: http://
localhost:4502/etc/cloudservices/salesforce/testsalesforceconnect.html where
testsalesforceconnect is the title of your Cloud Services connection.
12. Navigate back to the Connected App page and paste the URL into the Callback URL field.
13. Click Save.
14. From the Connected App record page, copy the Consumer Key.
15. Return to the AEM modal and paste the Consumer Key into the Customer Key field.
16. From the Connected App record page, copy the Consumer Secret.
17. Return to the AEM modal and paste the Consumer Secret into the Customer Secret field.
18. Click Connect to Salesforce. This brings you to a login screen for Salesforce. Log in to the
appropriate org and click Allow. A modal window will pop up indicating that the connection was
successful. If you receive an error, wait 10 minutes and attempt to connect again.
19. Click Ok to save the settings.
1. In AEM, navigate to your site home page and click the site where you want to add the Salesforce
connection.
2. In the toolbar that appears at the top of the page, click View Properties.
3. From the site properties page, click the Cloud Services tab.
4. Click Add Configuration, and select Salesforce.
5. Click on Configuration Reference, and select the configuration that is titled the same as your
Connected App.
6. Click Save.
1. In AEM, navigate to your Assets page by clicking the home button in the upper-left corner, then click
Assets.
2. From the Assets page, click the folder titled oout, then click the folder title scripts.
3. Click Create and add the JSON file. If the OmniScript already exists in AEM, update the file by clicking
the existing JSON file, then click Add Rendition, and select your new OmniScript JSON file.
OmniScript Definition to Adobe Experience Manager. Once the OmniScript is confirmed in Salesforce or
locally defined, you can create a page in AEM that uses OmniScript.
1. In AEM, generate a page with a paragraph system by selecting Sites, clicking Create, and selecting
Page.
2. Select a generic content page template.
3. Enter the configuration information and click Create.
4. To configure a paragraph type to accept new components on this site, in the upper-right corner of the
page, change the mode from Edit to Design.
5. Click on the paragraph where you want to place the component, click on the paragraph icon that
appears, and then click the configuration icon that appears.
6. Scroll down to the components and make sure they are checked. Vlocity components are organized
under the Vlocity category. Once this is configured, components can be added in Editor mode.
1. From the AEM page, change the mode from Design back to Edit.
2. Once in Edit mode, click on Drag Components Here, and click the + icon.
3. Connect the page to Salesforce by selecting the Salesforce Cloud Services Authentication
component.
4. Configure the new component by selecting the component, and clicking on the configuration icon.
5. In the Edit Dialog modal, click the Configuration field, select the name of your Connected App, enter
a Salesforce Namespace Override, and click Save.
6. (Optional) Add a proxy in the Proxy URL field.
7. To add an OmniScript component, click on Drag Components Here, click the + icon, and select
OmniScript Universal.
8. Configure the OmniScript Universal component by selecting the component, and clicking on the
configuration icon.
9. For the path, enter the query and path you use for your active OmniScript with the following exception:
If merge indicators are included, e.g., {0}, remove them or replace them with hardcoded values.
10. (Optional) Apply Newport styling by adding the parameter layout=Newport to the path.
11. Save the configuration and view the OmniScript in the component to ensure the connection was
successful.
1. From the AEM page, change the mode from Design back to Edit.
2. To add an OmniScript component, click on Drag Components Here, click the + icon, and select
OmniScript Universal.
3. Configure the OmniScript Universal component by selecting the component, and clicking on the
configuration icon.
4. For the path, enter the query and path you would normally use for your active OmniScript with the
following exception:
If it includes merge indicators, e.g., {0}, remove them or replace them with hardcoded values.
5. (Optional) Apply Newport styling by adding the parameter layout=Newport to the path entered in the
previous step. For more information on using Newport to customize templates, see Branding
OmniScripts and Cards Using Vlocity Newport Design System.
6. Enable AEM to use the Local Script Definition by using one of the following options:
• From the AEM GUI: Click the checkbox labeled Use Local Script Definition.
• From CRXDE : Navigate to apps/vloc/clientlibs/ooutCustom/js .
• In the custom_settings.js file enter this boolean: window.forceLocalDef = true .
Do not add the Salesforce Cloud Services Authentication component when using OmniScripts
defined locally. If the Salesforce Cloud Services Authentication exists, the resulting Salesforce
connection will cause the page to ignore the local definition.
Beginning with Vlocity Insurance Winter '19, OmniScripts defined locally can connect to the Salesforce
backend using the Salesforce Cloud Services Authentication component.
1. From the AEM page, change the mode from Design back to Edit.
2. Once in Edit mode, click on Drag Components Here, and click the + icon.
3. Connect the page to Salesforce by selecting the Salesforce Cloud Services Authentication
component.
4. Configure the new component by selecting the component, and clicking on the configuration icon.
5. In the Edit Dialog modal, click the Configuration field, select the name of your Connected App, enter
a Salesforce Namespace Override, and click Save.
6. To add an OmniScript component, click on Drag Components Here, click the + icon, and select
OmniScript Universal.
7. Configure the OmniScript Universal component by selecting the component, and clicking on the
configuration icon.
8. For the path, enter the query and path you use for your active OmniScript with the following exception:
If it includes merge indicators, e.g., {0} , remove them or replace them with hardcoded values.
9. (Optional) Apply Newport styling by adding the parameter layout=Newport to the path entered in the
previous step. For more information on using Newport to customize templates, see Branding
OmniScripts and Cards Using Vlocity Newport Design System.
10. Enable AEM to use the Local Script Definition by using one of the following options:
• From the AEM interface: Click the checkbox labeled Use Local Script Definition.
• From CRXDE: Navigate to apps/vloc/clientlibs/ooutCustom/js .
• In the custom_setting.js file enter this boolean: window.forceLocalDef = true .
11. (Optional) To retrieve User information for logged in users:
• In the custom_setting.js file enter this boolean: window.callUserInfo = true.
12. Save the configuration.
1. In your Salesforce Org's OmniScript Designer, either open or Create the OmniScript you want to
reference the local asset in.
2. In AEM, open the Navigation Panel, click on Assets, and navigate to your desired asset.
3. Record the asset path. This is located in the URL after assetdetails.html. For example, /
content/dam/geometrixx/icons/diamond.png
4. Return to your script in the OmniScript Designer. From the radio or multi-select element, create one or
more options and type in value and label.
5. Click Edit as JSON link and scroll down to "imgId".
6. Paste the asset path into the entry for imgId.
7. Make sure to activate your OmniScript.
8. After opening the script in your AEM instance, the local asset should be visible.
Due to an issue with tinyMCE, the above instructions do not work on elements powered by tinyMCE.
Instead, the absolute path must be used. This can be done by adding your publish environment's Host URL
before the relative URL. This can be entered directly on the tinyMCE image options context menu.
For more information on using templates, see Overwrite OmniScript Element Template.
This document explains adding JavaScript and CSS customizations to the OmniScript Component.
1. Log into your Salesforce org and create your Connected App. After creating an app, it can take
up to ten minutes to take effect.
2. Modify the following lines in the custom_setting.js file:
• var CONNECTED_APP_CONSUMER_KEY = 'ConsumerKey';
• var SFDC_NAMESPACE = 'vlocity_NS'; For information on locating your namespace,
see Viewing the Namespace and Version of the Vlocity Package.
• Standalone App:
1. Modify the custom_setting.js file and uncomment the last two lines:
customVOmniAuth = function(scope){};
2. Modify the index.html file to the following:
angular.module('miniApp', ["forceng", "vlocity-business-process"])
controller('ContactListCtrl', function ($scope, force, $location) {
$scope.showLink = true;
});
3. In index.html, add links to launch different scripts. Add the link as an anchor tag to the template
using the following syntax:
<a href="#/OmniScriptType/ExampleType/OmniScriptSubType/
ExampleSubType/OmniScriptLang/English/ContextId//
PrefillDataRaptorBundle//false" target="_self">Click Here</a>
4. To launch scripts from the links in your HTML file, include the script's definition in the scripts
folder, file naming convention:
ScriptType_ScriptSubType_ScriptLang.json
If Script Type or ScriptSubType name has spaces in it, replace the spaces with an underscore.
6. Deploy to Heroku using Git.
7. (Optional) To use a local OmniScript definition:
Modify the custom_setting.js file to include this boolean: window.forceLocalDef = true.
8. (Optional) Beginning with Vlocity Insurance Winter '19, User information for logged in Users can be
retrieved by OmniScripts defined locally. To retrieve the User information:
Modify the custom_setting.js file to include this boolean: window.callUserInfo = true.
9. (Optional) Beginning with Vlocity Summer '19, Newport styling is supported. To add Newport styling to
your Heroku deployment:
a. Inside of index.php, rename /index.html to /index_newport.html.
b. Apply any modifications made to /index.html to /index_newport.html.
6. Navigate to the Record page where the file will be attached. If this is a Product record, edit the record
layout to include the Product Attachment List Visualforce page.
7. Click the New Attachment button, and fill out the form.
8. Instead of uploading the file again, copy the modified URL from step 5, and paste it into the URL field..
9. Leave URL Name blank.
10. Set Content Type to Image.
11. Set Is Default Image to Yes, and Save the attachment.
12. The name is the record Id, which can be used to edit the record in the future.
13. The image is now accessible in external OmniScripts.
Launching OmniScripts
This section provides information on launching OmniScripts in Salesforce from Communities, Object detail
pages, and Vlocity Card Actions.
How to Launch
Once activated, enable OmniScript access in one of three ways: standalone, embedded, or Vlocity Aura
Wrapper.
Standalone
Once Activated, the OmniScript is compiled and deployed as a standalone Lightning Web Component.
Access the LWC in the Salesforce Lightning App Builder in the Custom section and drag it onto the page.
Embedded
Once Activated, you can embed the component into any Aura or LWC component using the component tag.
The component attribute "prefill" accepts string or javascript object.
Examples
<c-type--sub-type-english prefill='\{"ContextId":"abc","otherParam":"FAQ"}'
layout="newport"></c-type--sub-type-english>
Since Lightning Web Components are not yet URL addressable, you can use this method to pass additional
parameters into the OmniScript.
Example
this[NavigationMixin.Navigate]({
type: 'standard__component',
attributes: {
componentName: '__vlocityLWCOmniWrapper'
},
state: {
c__target: 'c:testSubTypeEnglish',
c__layout: 'lightning', // or 'newport'
c__tabIcon: 'custom:custom18'
}
})
https://my_org.force.com/lightning/cmp/my_org__vlocityLWCOmniWrapper?
c__target=my_org:typeSubTypeEnglish&c__layout=lightning&c__tabIcon=custom:custo
m18
https://my_org.force.com/lightning/cmp/my_org__vlocityLWCOmniWrapper?
c__target=my_org:typeSubTypeEnglish&c__layout=newport&c__tabIcon=custom:custom1
8
NOTE
When launching an OmniScript from a Community object page, use the Vlocity OmniScript
lightning component to host OmniScripts. For more information on the Vlocity OmniScript
lightning component, see Launching OmniScript from a Community object page.
1. In the Community Builder, create a new Standard Community Page. See Create Custom Pages
with Community Builder. Enter any name in the Name field. However, you must enter os as the URL.
2. From the Components navigation menu, drag the Vlocity OS Player component onto the /os page.
3. (Optional) To set a maximum height for the OmniScript, in the Max Height(px) field, enter a value.
1. Open any community page that has a Vlocity Cards component that launches an OmniScript.
2. In the Vlocity Cards component, enter /os in the Custom Community Page URL field.
NOTE
When invoking an OmniScript from the Vlocity Cards lightning component in a Community,
use the OS Player lightning component to host OmniScripts. For more information on the
OS Player lightning component, see Configuring the Vlocity OS Player Lightning
Component.
1. From the Lightning App Builder or Community Builder, drag the Vlocity OmniScript component
into your page.
2. When on a Lightning Record Page, the record Id for the object on the page is automatically passed into
the Record Id field when it contains the {!recordId} parameter.
3. Specify the Type and SubType of your OmniScript.
4. Select a Language.
5. Select a Layout.
6. (Optional) Specify a Max Height.
7. (Optional) To set where the page scrolls when Users page through the OmniScript, enter a number, in
pixels, into the Scroll Offset field.
8. (Optional) Select a Custom Visualforce Page to display styling changes.
9. (Optional) To prevent hitting issues with the Salesforce view state size limit, check Disable Load in
Page.
1. Locate and write down the Namespace prefix of your Salesforce org by going to Setup and clicking
Installed Packages.
2. Create a new Visualforce page. From Setup, click Develop , and then click Pages , and then click
New.
3. Paste the following Apex code into the page, replacing all other code:
<hr/>
<NS:BusinessProcessComponent
standardController="{!
stdController}"
strOmniScriptType="ObjectSScriptType"
strOmniScriptSubType="ObjectScriptSubType"
strOmniScriptLang="" Language
strPrefillDataRaptorBundle="DRBundle"
verticalMode="true"
/>
<script type="text/javascript">
var modules = ['vlocity-business-process'];
</script>
</div>
</apex:page>
4. In the code, perform the following steps:
• Set NS equal to the Namespace value collected in Step 1.
• Set standardController="ObjectType" to the object where the button or link is located.
• Set strOmniScriptType equal to the Type of the OmniScript.
• Set strOmniScriptSubType equal to the SubType of the OmniScript.
• Set Language equal to the Language of the OmniScript.
• Set Text equal to any value, as long as it is the same in both places.
• Set verticalMode to false to launch the script in Horizontal Mode.
• Version 2.5 or prefilling into hidden Steps and Elements only: If you are using DataRaptor to prefill
data into the OmniScript, set DRBundle equal to the DataRaptor Interface (Bundle) name. If you are
not using DataRaptor to pre-fill data, delete strPrefillDataRaptorBundle="DRBundle" from
the code.
5. Click Save.
Launching an OmniScript From an Object Detail Page Using a Custom Link or Button
To configure a custom button or link to launch an OmniScript from any detail page:
1. Locate and write down the Namespace prefix of your Salesforce org by going to Setup and clicking
Installed Packages.
2. To create a new Visualforce page, from Setup, click Develop, and then click Pages, and then click
New.
3. Paste the below Apex code into the page, replacing all other code.
• Set NS equal to the value collected in Step 1.
• Set ObjectType to the object where the button or link is located.
• Set OmniScriptType equal to the Type of the OmniScript.
• Set OmniScriptSubType equal to the Sub Type of the OmniScript.
• Set Language equal to the Language of the OmniScript.
• Set Text equal to any value, as long as it is the same in both places.
1. For SFDC standard objects, from Setup, click Customize, and then click [Object Name], and then
click Buttons, Links, and Actions. For custom objects, from Setup, click Create, and then click
Objects, and then click [Object Name].
2. Click New Button or Link.
3. Enter a Name for the button or link.
4. Select a Display Type.
5. For Behavior, select Display in existing window without sidebar or header.
6. For Content Source, select Visualforce Page and then select the page that you configured above.
7. Click Save.
8. Navigate to the page layout for the object and drag the button or link from the palette onto the layout.
9. Click Save.
1. For SFDC standard objects, from Setup, click Customize, and then click [Object Name], and then
click Buttons, Links, and Actions. For custom objects, from Setup, click Create, and then click
Objects, and then click [Object Name].
2. Click New Button or Link.
3. Enter a Name for the button or link.
4. Select a Display Type.
5. For Behavior, select Display in existing window without sidebar or header. Select a different option if
your requirements are different.
6. For Content Source, select Visualforce Page and then select the page that you configured above.
7. Click Save.
8. Navigate to the page layout for the object and drag the button or link from the palette onto the layout.
9. Click Save.
<a href="#/OmniScriptType/AAA1/OmniScriptSubType/AAA2/OmniScriptLang/AAA3/
ContextId/[ContextId]/PrefillDataRaptorBundle/[BundleName]/
[verticalMode]">TEST</a>
• AAA1—OmniScript Type
• AAA2—OmniScript Sub Type
• AAA3—OmniScript Language
• [ContextId] (Optional)—Context Id for example {!Contact.Id}
• [BundleName] (Optional)—DataRaptor Bundle name used for prefilling fields into the script. While this
functionality is still supported, Vlocity recommends using the Data Raptor Extract Action within
OmniScripts to prefill.
• [verticalMode] (Optional)—/true or /false. Default is True. If True, all the steps are vertically stacked. If
False, all the steps are horizontally navigated.
NOTE
Beginning with Winter '18, the Action Toolbar is no longer available.
Using the Action toolbar, you can launch a single OmniScript from a variety of contexts without configuring
a Visualforce page for each context. For example, you can launch an OmniScript from a Contact, Account,
Case record, or Customer Community, using a single Visualforce page.
In addition, you can apply filters so that the OmniScript is available only if certain conditions are met. For
example, an Insurance OmniScript called Add a Driver can be available on an Auto Policy record type, but
not on any other policy record types, or only a certain user profile can see an action.
IMPORTANT
For out-of-the-box Vlocity Actions, such as View Record, the Target URL/{0} does not
work outside of Salesforce Classic. To navigate to a page in Salesforce Lightning
Experience, update the URL to /lightning/r/[ObjectName]/{0}/view, where
ObjectName is the API name of the sObject such as Account.
• OmniScriptUniversalPage
• OmniScriptUniversalPageWHeader
• OmniScriptUniversalPageWHeaderSidebar.
• OmniScriptUniversalMobilePage (for use with Mobile only)
• OmniScriptUniveralPageConsole (for use in the Industry Console)
• OmniScriptUniversalCommunitiesPage (for use in Communities)
/apexNS__[PageName]?id={0}#/OmniScriptType/AAA1/OmniScriptSubType/AAA2/
OmniScriptLang/AAA3/layout/[LayoutName]/ContextId/{0}/PrefillDataRaptorBundle/
[BundleName]/[verticalMode]
/apex/NS__[PageName]?id={0}#/layout=[LayoutName]
https://www.domainName.com/?id={0}/
/apexNS__[PageName]?
id={0}&OmniScriptType=AAA1&OmniScriptSubType=AAA2&OmniScriptLang=AAA3&layout=[L
ayoutName]]&PrefillDataRaptorBundle=[BundleName]&scriptMode=[verticalMode]
/apex/NS__[PageName]?id={0}&layout=[LayoutName]
https://www.domainName.com/?id={0}/
NOTE
While both URL patterns are valid, the advantage of the alternative pattern is that it is
mobile-friendly and enables adding additional URL parameters directly into the OmniScript
Data JSON. For example, appending &customerSLALevel=gold to the URL would add a
node to the root of the OmniScript Data JSON, such as "customerSLALevel":"gold".
URL Parameters
In a Target URL, the {0} represents the indexed position of a parameter in the list of parameters in the URL
Parameter field. The parameter is the field API name in the applicable object, such as AccountId, or ID in
Contact.
Specify the parameters as a comma-delimited string, in the sequence in which you want to replace the
parameters in the Target URL. For example, AccountId,vlocity_ins__PrimaryContactId__c, replaces {0}
in the Target URL with the AccountId, and replaces {1} in the Target URL with the
vlocity_ins__PrimaryContactId__c.
You can also use attributes from the User object, such as User.ContactId to get the Id of the current user.
NOTE
Beginning with CME Fall '18, Vlocity supports the Salesforce object edit URL format of /{3
character sobject prefix}/e'.
/apex/vlocity_ins__OmniScriptUniversalPage?
id={0}&OmniScriptType=AppointmentApplication&OmniScriptSubType=IndependentAgent
AppointmentApplication&OmniScriptLang=English&layout=lightning
/apex/NameSpace__ConsoleCards?id={0}&layout=lex-layout
• To use relative URLs in the Lightning Console (LEX), prefix the Target URL with ltng:, and make sure
the Open URL in value is set to New Tab / Window so that the relative URL link will open in a new
window. For example, ltng:/apex/NewLandingPage, will open the New Landing Page in a new
window.
• To redirect to a Lightning or Lightning Community Page, prefix the relative URL with ltngpage:. For
example, ltngpage:/Home will redirect to your community home page.
• To open a Visualforce page from Salesforce's Lightning container, prefix the relative URL with ltng:. For
example, ltng:/apex/CustomVFPage, will redirect to the CustomVFPage.
<apex:page standardController="ObjectName"
extensions="NS.VFPageControllerBase" showHeader="false" sidebar="false"
docType="html-5.0">
<NS:ActionComponent standardController="{!
stdController}"
objType="ObjectName"
style="StyleType"/>
</apex:page>
NOTE
If the ObjectName is a custom object, add the Namespace to the standardController—
for example, vlocity_ins__Policy__c.
• StyleType = Style options are Horizontal, Vertical or Select. See below for examples.
To learn how to add a Visualforce component to your Home page, see Create Custom Home Page
Components in the Salesforce Help.
NOTE
Beginning with Winter '18, the Action Toolbar is no longer available.
URLs
Use the following syntax to launch a link from any page:
<a href="#/OmniScriptType/AAA1/OmniScriptSubType/AAA2/OmniScriptLang/AAA3/
ContextId/[ContextId]/PrefillDataRaptorBundle/[BundleName]/
[verticalMode]">TEST</a>
• AAA1—OmniScript Type
• AAA2—OmniScript Sub Type
• AAA3—OmniScript Language
• [ContextId] (Optional)—Context Id for example {!Contact.Id}
• [BundleName] (Optional)—DataRaptor Bundle name used for pre-filling fields into the script. While this
functionality is still supported, Vlocity recommends using the Data Raptor Extract Action within
OmniScripts to prefill.
• [verticalMode] (Optional)—/true or /false. Default is True. If True, all the steps are vertically stacked. If
False, all the steps are horizontally navigated.
NOTE
A reusable OmniScript cannot contain another reusable OmniScript. Additionally, no
element in a reusable OmniScript can have the same name as an element in the parent
script. Reusable OmniScripts adopt the script configuration of the parent script.
1. In the OmniScript you want to reuse, click Setup, and check the Reusable checkbox.
2. Activate the reusable OmniScript.
3. Navigate to the OmniScript that will host the reusable OmniScript.
4. In your OmniScript's Build panel, expand the OmniScripts section.
5. Locate the reusable OmniScript and drag it into the canvas.
6. Preview your OmniScript to test the behavior.
What's Next
Activate and Deactivate Embedded OmniScripts
See Also
Starting with Summer '17, Reusable OmniScripts have a link, located under the element properties, that
enables a user to view the OmniScript in a new tab while working in the OmniScript Designer.
If the OmniScript that you want to embed is not visible, make sure it's Active and marked as Reusable. For
more information, see Embed an OmniScript in Another OmniScript and Activate or Deactivate an
Embedded OmniScript.
1. From the Setup section of the embedded script, click Activate Version or Deactivate Version.
2. Verify the Affected OmniScripts (any Active OmniScript that this form is embedded in), and click
Proceed.
See Also
IMPORTANT
Beginning with the Winter '20 Salesforce release, Guest Users, also called anonymous
users, cannot access any records by default. Criteria-based Sharing Rules grant them
read-only access. This affects all Salesforce orgs. For details, see Guest User Record
Access Development Best Practices.
Vlocity allows guest users to create and update the records to which Sharing Rules grant
access. No additional configuration is necessary for this expanded access.
To enable an OmniScript to be deployed from a Community, configure the following sharing settings and
profile access.
1. From Setup, click Security Controls or Security and then click Sharing Settings.
2. If you are in Lightning Experience, from the Manage sharing settings for drop-down list, select
Vlocity OmniScript. If you are in Salesforce Classic, skip this step.
3. To change the Default Internal Access or External Default Access for Vlocity OmniScript, click the Edit
button next to Organization-Wide Defaults.
4. For Vlocity OmniScript, set the Default Internal Access and External Default Access to Public Read
Only.
5. If you are writing to the Application object, follow the same steps to set the Default Internal Access and
Default External Access for Application objects to Public Read/Write.
6. Click Save.
The prerequisite for these steps is that communities must exist in your org. For more information, see
Setting Up a Community in the Salesforce Help. To configure community user visibility:
1. From Setup, click Customize or Feature Settings, then click Communities, then click All
Communities.
2. For the community to which you are granting access, click Workspaces, click Administration, then
click Members.
3. Make sure that all profiles that should access the community are in the Selected Profiles section, then
click Save.
1. From Setup, type User in the Quick Find box and click User Management Settings.
2. Set the Enhanced Profile User Interface option to Disabled.
Setting Object Permissions and Enabling APIs, Visualforce Pages, and Apex Access
IMPORTANT
Beginning with the Winter '20 Salesforce release, Guest Users, also called anonymous
users, cannot access any records by default. Criteria-based Sharing Rules grant them
read-only access. This affects all Salesforce orgs. For details, see Guest User Record
Access Development Best Practices.
Vlocity allows guest users to create and update the records to which Sharing Rules grant
access. No additional configuration is necessary for this expanded access.
1. From the Profile for the users who will be accessing the Community, click Edit. Click API Enabled.
2. Scroll down to Custom Object Permissions and enable Create, Read, Edit, and Delete permissions for
the Application, OmniScript Definitions, and Vlocity OmniScript objects.
3. Click Save.
4. Return to the Profile. Scroll down to Enabled Apex Class Access and click Edit.
5. Move all Vlocity classes and any OmniScript-related Custom Classes into the Enabled Apex Classes
section and click Save.
6. Return to the Profile and scroll down to the Enabled Visualforce Page Access section and click Edit.
7. Move all Vlocity VF pages and any OmniScript-related Visualforce pages into the Enabled Visualforce
Pages section and click Save.
1. Locate and write down the Namespace prefix of your Salesforce Org. Go to Setup and click Installed
Packages.
2. To create a new Visualforce page, from Setup, click Develop, and then click Pages, and then click
New.
3. Paste the below Apex code into the page, replacing all other code.
• Set NS equal to the value collected in Step 1.
• Set strObjectType to the object where the button or link is located.
• Set strOmniScriptType equal to the Type of the OmniScript.
• Set strOmniScriptSubType equal to the SubType of the OmniScript.
• Set Language equal to the Language of the OmniScript.
• Set Text equal to any value, as long as it is the same in both places.
• Set verticalMode to false to launch the script in Horizontal Mode.
• Version 2.5 or prefilling into hidden Steps and Elements only: If you are using DataRaptor to prefill
data into the OmniScript, set DRBundle equal to the DataRaptor Interface (Bundle) name. If you are
not using DataRaptor to prefill data, delete strPrefillDataRaptorBundle="DRBundle" from the
code.
4. Click Save.
<NS:BusinessProcessComponent
strOmniScriptType="ObjectSScriptType"
strOmniScriptSubType="ObjectScriptSubType"
strOmniScriptLang="Language"
strPrefillDataRaptorBundle="DRBundle"
verticalMode="true"
/>
<script type="text/javascript">
var modules = ['vlocity-business-process'];
var myModule = angular.module('Text', modules);
</script>
</div>
</apex:page>
It is possible to automate the creation of an external (Salesforce Community) user after a prospective
tenant fills out the initial intake form, requesting assistance. If you would like to automate that user creation,
follow these steps.
1. Add a Remote Action to the end of the OmniScript and configure the settings as follows:
Beginning with Vlocity Insurance and Vlocity Health Summer '18, OmniScript templates can be installed
directly from within your org. To install the templates, see Installing Vlocity Templates.
To download Lightning Player and Classic Player templates, see Downloading OmniScript Vlocity
Templates.
1. Click Setup.
2. In the Quick Find/Search box enter Object, and click Object Manager.
7. Enter the new Element name to the picklist, and click Save.
Beginning with the Vlocity Insurance and Health Spring '20, the Vlocity LWC OmniScript Designer enables
you to preview dynamic web forms as you build them using a drag-and-drop interface with WYSIWYG
editing. See LWC OmniScript Designer Overview.
NOTE
When creating or editing an OmniScript in the LWC OS Designer, see script configuration
properties in the Setup panel.
NOTE
In LWC OmniScripts, the onChange behavior runs
after a half-second delay.
Deploy LWC Redeploy an active OmniScript if the previously generated LWC OmniScript Activate and Deploy
fails to deploy by clicking Deploy LWC. an LWC OmniScript
Download LWC Review the auto-generated OmniScript LWC by clicking Download LWC. n/a
Element Type To LWC Enables a custom Lightning web component to override all elements of a Add Custom
Component Mapping specific Element Type. Lightning Web
Components to an
OmniScript
Enable LWC Enables the OmniScript to use the Vlocity Lightning Web Component Create an LWC
framework. OmniScript
Pub/Sub Sends custom parameters as a key/value pair when an action fires a pub/sub n/a
event that enables communication between Lightning Web Components.
Step Chart Placement Exclusive to LWC OmniScripts using Lightning styling, set the Step Chart to Right:
display to the right, to the left, or on top of the OmniScript.
Left:
Top:
Custom HTML Enter CSS to modify the OmniScript or No Using Custom Templates
Templates enter HTML templates to override
OmniScript's default templates.
Custom Enter custom JavaScript that is run, or No n/a
JavaScript available, when an OmniScript initializes.
Description Shown on the list view on the OmniScript Yes n/a
Designer home page.
Element Type Applies a template override to every No n/a
To HTML element of a specific type. The element
Template type is specified in the left field, and the
Mapping template is specified in the field on the
right.
Enable Enables OmniScript to track how long Available OmniScript Event Tracking
Tracking steps and actions take. The times are starting
stored in the Data JSON. with Vlocity
Insurance
and Health
Winter '20
and Vlocity
CME
Winter '20..
Language Type, SubType, and Language define the Yes Create Multi-Language OmniScripts
unique identity of the OmniScript: there
can be only one OmniScript with the same
Type, SubType, and Language active at
any time.
Merge Saved Enables saved OmniScript instances to Yes Configure Save Options
Data JSON merge data from the saved instance into
an updated and redeployed OmniScript. If
left unchecked, users start a new instance
of the updated OmniScript.
OmniScript Shown on the list view on the OmniScript Yes n/a
Name Designer home page.
Persistent Enables the addition of persistent No n/a
Component components, including Cart and
Knowledge.
To specify messages to be
displayed to users when the
operation succeeds or fails, set
the corresponding fields in the
Error Messages section.
DocuSign The DocuSign Envelope Action element vlcRemoteAction.html Using the DocuSign Envelope
Envelope sends an email that contains the Action to Email Documents for
Action prefilled documents for signing or vlcRemoteActionBtn.html Signature
reviewing. It can be sent to one or more
recipients.
DocuSign The DocuSign Signature Action element vlcRemoteAction.html Using the DocuSign Signature
Signature displays a modal containing a DocuSign Action to Sign Documents From
Action document. The OmniScript user can vlcRemoteActionBtn.html Within an OmniScript
sign the document directly from the
modal and download a PDF of the
signed document.
Non-Blocking: The Action runs asynchronously, and the response is applied to the UI. Pre
and Post DataRaptor transforms, and large attachments are not supported.
Fire and Forget: The Action runs asynchronously with no callback to the UI. Pre and Post
DataRaptor transforms, and large attachments are not supported. A response will still appear
in the debug console but will not be applied to the Data JSON.
Conditional View All Action elements support conditional view. Conditionally
Display
Elements
Using the
Conditional
View
Property
Pub/Sub Communicate with OmniScript from a custom LWC by sending key-value pairs. Use the Communicate
events passed in the key-value pairs to trigger custom behavior in a component. with
OmniScript
from a
Lightning
Web
Component
Session Storage Send information to a Session Storage object using key-value pairs. A session storage object Message with
clears when a page session ends. Window Post
Messages
and Session
Storage
Messages
Window Post Message Send information from an element to a window object in key-value pairs. Message with
Window Post
Messages
and Session
Storage
Messages
Tracking Business Category Define a business category for a tracking entry. For example, eCommerce. Enable
Tracking for
Vlocity
Components
Tracking Business Event Define a business tracking event for a tracking entry. For example, Payment Plan. Enable
Tracking for
Vlocity
Components
Property Description
Enable Action Message Enables an input of custom action messages.
Enable Default Abort Enables the Abort functionality to override the default Go Back functionality. Users will then
only be able to abort the OmniScript if the Action fails.
Failure NextLabel Label of the continue button if the Action fails, and the Enable Default Abort checkbox is
checked.
Failure Abort Label Label of the abort button if the Action fails, and the Enable Default Abort checkbox is checked.
Failure Abort Message Confirmation message displayed after user clicks abort button.
Failure Go Back Label Label of the Go Back button if the Action fails. The default behavior enables users to return to
the previous Step unless there are no previous steps, or the Enable Default Abort checkbox
has been checked.
In Progress Message: Message displayed while the Action is being executed. This property is exclusive to Angular
OmniScripts.
Post Message Message displayed upon success.
Redirect Next Label Label of the next button on the redirect page.
Redirect Next Width Width of the next button on the redirect page.
Validation Required Whether to check the validation of the script before the Action is invoked. Default is Submit.
Leave blank to bypass validation.
Redirect Properties
Actions that are placed in Steps and render as buttons contain these common elements.
Property Description
Control Width Controls the width of the button.
Redirect Previous Label The label of the previous button on the redirect page.
Redirect Previous Width The width of the previous button on the redirect page.
Property Description
Send JSON Path This property enables one node of the OmniScript Data JSON to be sent, rather than the
entire JSON. Specify the node name in this property.
Send JSON Node This property allows you to specify the root node name in the outgoing response. For
example, if your OmniScript had a Customer node at the root, you could relabel the node to
CustomerAccount.
Pre-Transform DataRaptor In situations where a more complete transformation of the JSON is required, you can specify a
DataRaptor transform interface. The service will run on the server, and then return the request
body to the client for sending.
Property Description
Post-Transform DataRaptor Works identically to the Pre-Transform, except the transformation is applied to the response
body before merging into the Data JSON.
Response JSON Path This property allows you to trim the incoming JSON. For example, if the response has a three-
level hierarchy, and you only want one of the nodes, you can specific the path you like to
extract. The syntax is node:node:node (colon-separated).
Response JSON Node This property allows you to reparent the incoming JSON to a node within the OmniScript
JSON. Specific the OmniScript element name which will be the new root node for the
response JSON.
Available in:
• Remote Action
• Integration Procedure Action
Property Description
Default The Action blocks the UI with a loading spinner.
Non-Blocking The Action runs asynchronously, and the response is applied to the UI. Pre and Post DataRaptor transforms, and
large attachments are not supported.
Fire and Forget The Action runs asynchronously with no callback to the UI. Pre and Post DataRaptor transforms, and large
attachments are not supported. A response will still appear in the debug console but will not be applied to the Data
JSON.
Extra Payload
ExtraPayload is an additional property available for the actions listed below. The script configurator can set
up extra payload to be sent while making the call. This property supports merge fields.
• Remote Action
• Calculation Action
• Integration Procedure Action
• HTTP Action
See Also
• Add an Action Message
• Common OmniScript Element Properties Definitions
• Manipulate JSON with the Send/Response Transformations Properties
Messaging Framework
Communicate between an OmniScript, windows, Lightning web components, and OmniScript elements
using window post messages, session storage messages, and PubSub messaging.
Determine which object or component needs to handle and use data, and use the corresponding property
from this table:
For information on communicating with an LWC from an embedded LWC OmniScript, see Embed an
OmniScript Lightning Web Component in a Lightning Web Component.
See Also
• Embed an OmniScript Lightning Web Component in a Lightning Web Component
• Make Remote Calls from Lightning Web Components using the LWC OmniScript Action Framework
The Pub/Sub property enables Action elements and Step elements to send data in Key-Value pairs to other
LWCs. LWCs must register the OmniScript component's event name and add code to handle the data sent
from the event.
NOTE
Beginning with Vlocity Insurance and Health Spring '20, the Step element supports the
Pub/Sub property.
1. In an OmniScript Action or Step, select the Messaging Framework and check Pub/Sub.
2. In the Key and Value fields, configure which data to pass to another LWC.
a. In the Key field, enter a name to store the value.
b. In the Value field, enter data to pass to the LWC. The field accepts merge syntax.
handleOmniAction(data) { handleOmniStepLoadData(data) {
switch(data.name) { switch(data.name) {
case 'SomeNameForAction': case 'FirstStep':
this.handleSomeNameForAction(data);
break; this.handleOmniFirstStepLoadData(data);
case 'SomeNameForAction2': break;
this.handleSomeNameForAction2(data); case 'SecondStep':
break;
default: this.handleOmniSecondStepLoadData(data);
// handle default case break;
} default:
} // handle default case
}
handleSomeNameForAction(data) { }
// perform some logic specific to
SomeNameForAction action handleOmniFirstStepLoadData(data) {
// that has element name = // perform some logic specific when a
"SomeNameForAction" Step element which name is
} // FirstStep is loaded
}
handleSomeNameForAction2(data) {
// perform some logic specific to handleOmniSecondStepLoadData(data) {
SomeNameForAction2 action // perform some logic specific when a
// that has element name = Step element which name is
"SomeNameForAction2" // SecondStep is loaded
} }
Access the Action's Element Type using data.type. n/a
handleOmniAction(data) {
switch(data.type) {
case 'Integration Procedure Action':
this.handleIPActionPubsubEvents(data);
break;
case 'Remote Action':
this.handleRemoteActionPubsubEvents(data);
break;
default:
// handle default case
}
}
handleIPActionPubsubEvents(data) {
// perform some logic specific to
Integration Procedure Actions
}
handleRemoteActionPubsubEvents(data) {
// perform some logic specific to Remote
Actions
}
See Also
Pass element information and data JSON from OmniScript elements containing the window post message,
session storage message, and LWC Pub/Sub message. For information on using the pub/sub message in
OmniScript, see Communicate with OmniScript from a Lightning Web Component.
1. In the element, check the Window Post Message checkbox or the Session Storage Message
checkbox. Once enabled, the default messaging sends the name of the element and the type of the
element.
Default Messaging:
{
Type: <element_type>,
OmniEleName: <element_name>
}
2. (Optional) In the Messages property, add additional messaging to the node by entering a Key/Value
pair. The Value field accepts merge syntax. For information on merge fields, see Access OmniScript
Data JSON with Merge Fields.
3. (Optional) Beginning with Vlocity Insurance and Health and Vlocity CME Summer '20, pass a value in
the c__messagingKey URL parameter to change the node that stores the messaging payload for
window.postMessage and session storage message.
Beginning with Vlocity CME Spring '20, Step elements support the use of window post messages, session
storage messages, and messages. However, the properties do not appear in the properties section of the
element.
NOTE
Beginning with Vlocity Insurance and Health Spring '20, the wpm, ssm, and message
properties appear in the Step element's default properties.
"wpm": false,
"ssm": false,
"message": {}
"wpm": true
4. Add additional key/value pairs inside the message object.
What's Next
Preview the OmniScript and test the messaging behavior by inspecting the browser.
See Also
Calculation Action
Call a Vlocity Calculation Procedure directly from an OmniScript using the Calculation Action.
When the action executes, inputs from the form are sent to the Procedure—either directly or through a
DataRaptor pretransform service—and the output is returned to the OmniScript—either directly or through a
DataRaptor post-transform service.
Example
The example OmniScript below uses a Calculation Action (Call Calculation Procedure) to calculate the
discounted Base and Adjusted monthly rental charges that the applicant is eligible to receive. The name of
the Calculation Procedure is entered in the configurationName property.
Eligibility data from the form, such as income, program type, and number of family members is passed into
the HEPreTransform DataRaptor transform interface, where it is transformed into the Input JSON that the
Calculation procedure is expecting. Click the link icon next to HEPreTransform to view the DataRaptor
interface:
When the Calculation Action executes, the Procedure (Calculate Housing Benefit) runs and returns a JSON
that fills the results into the script. Any variable in the Procedure that is included in the Calculation Output
will be sent back to the OmniScript.
Here are the Calculation Steps in the Calculate Housing Benefit Procedure:
...and the returned JSON (this can be found by clicking Simulate on the Procedure. See the Matrices for
correct inputs):
If the elements on the OmniScript that are being sent to the Calculation Procedure exactly match the
Variable Ids in the procedure and are at the Step level of the OmniScript (not in a block), you don't need to
create a Pre-Transform interface. Otherwise, implement a Pre-Transform interface to format the JSON for
the calculation procedure.
If the elements that will be filled by the output of the script are located in a step or block called "output" with
a nested block called "calculationResults" with Variable Id's that match the OmniScript elements, you don't
need to create a Post-Transform interface. Otherwise, implement a Post-Transform interface to format the
JSON coming from the Calculation Procedure to match the JSON structure of the OmniScript.
See Also
Property Description
Remote Class Specify the namespace.PricingMatrixCalculationService class, where namespace is
vlocity_cmt, vlocity_ins, or vlocity_ps.
Remote Method Specify the calculate method.
Remote Timeout (ms) Optional timeout in milliseconds. The default is 30000, equivalent to five minutes.
Send Only Extra Enables the action to send Extra Payload's Key/Value pairs without including the OmniScript's data JSON.
Payload
Configuration Name Name of the calculation procedure.
Include Inputs Check if the OmniScript elements sent to the calculation procedure are at the Step level of the OmniScript
(not in a block).
Pre-Transform An optional DataRaptor Transform that prepares input data for the calculation procedure. Beginning with
DataRaptor Interface Vlocity Insurance and Health Spring '20, this property appears in the Remote Properties section.
Post-Transform An optional DataRaptor Transform that reformats output data from the calculation procedure. Beginning with
DataRaptor Interface Vlocity Insurance and Health Spring '20, this property appears in the Remote Properties section.
Match Input Variables Check if the OmniScript elements sent to the calculation procedure exactly match the Variable Ids in the
procedure.
Property Description
Extra Payload Sends additional Key/Value pairs. Supports merge field syntax.
Remote Options Key/value pairs that specify additional class invocation options.
See Also
• Calculation Action
• Common Action Element Properties
For a non-LWC OmniScript, you must create the DataRaptor Extract to be called before creating the
DataRaptor Extract Action. For an LWC OmniScript, if the DataRaptor Extract doesn't already exist, you can
create it by clicking Create New DataRaptor immediately after dragging the DataRaptor Extract Action into
the OmniScript structure panel.
1. Drag the DataRaptor Extract Action into the OmniScript's structure panel.
2. To select the DataRaptor Extract to be called, click in the DataRaptor Interface field and select from
the list. You can type in the field to filter the list.
3. Provide any input parameters the DataRaptor Extract requires. Each Data Source field must match a
DataRaptor Extract input parameter. Each Filter Value must match values in the sObject field to which
the input parameter refers.
4. Use the Response Transformations properties to trim or rename the output JSON. See Manipulate
JSON with the Send/Response Transformations Properties.
See Also
Property Description
DataRaptor Interface Name of the DataRaptor Extract being called.
Data Source Name of a JSON node that provides input for the DataRaptor Extract.
Filter Value Value of the JSON node that provides input for the DataRaptor Extract.
Related Topics
For a non-LWC OmniScript, you must create the DataRaptor Load to be called before creating the
DataRaptor Post Action. For an LWC OmniScript, if the DataRaptor Load doesn't already exist, you can
create it by clicking Create New DataRaptor immediately after dragging the DataRaptor Post Action into
the OmniScript structure panel.
1. Drag the DataRaptor Post Action into the OmniScript's structure panel.
2. To select the DataRaptor Load to be called, click in the DataRaptor Interface field and select from the
list. You can type in the field to filter the list.
3. Use the Send Transformations properties to trim or rename the input JSON so it has the structure the
DataRaptor Load expects. See Manipulate JSON with the Send/Response Transformations Properties.
See Also
Property Description
DataRaptor Interface Name of the DataRaptor Load being called.
Related Topics
For a non-LWC OmniScript, you must create the DataRaptor Transform to be called before creating the
DataRaptor Transform Action. For an LWC OmniScript, if the DataRaptor Transform doesn't already exist,
you can create it by clicking Create New DataRaptor immediately after dragging the DataRaptor Transform
into the OmniScript structure panel.
1. Drag the DataRaptor Transform Action into the OmniScript's structure panel.
2. To select the DataRaptor Transform to be called, click in the DataRaptor Interface field and select
from the list. You can type in the field to filter the list.
3. Use the Send/Response Transformations properties to trim or rename the input JSON so it has the
structure the DataRaptor Transform expects. Or you can trim or rename the output JSON for a
subsequent OmniScript step. See Manipulate JSON with the Send/Response Transformations
Properties.
Related Topics
Property Description
DataRaptor Interface Name of the DataRaptor Transform being called.
Related Topics
For a non-LWC OmniScript, you must create the DataRaptor Turbo Extract to be called before creating the
DataRaptor Turbo Action. For an LWC OmniScript, if the DataRaptor Turbo Extract doesn't already exist,
you can create it by clicking Create New DataRaptor immediately after dragging the DataRaptor Turbo
Action into the OmniScript structure panel.
1. Drag the DataRaptor Turbo Action into the OmniScript's structure panel.
2. To select the DataRaptor Turbo Extract to be called, click in the DataRaptor Interface field and select
from the list. You can type in the field to filter the list.
3. Provide any input parameters the DataRaptor Turbo Extract requires. Each Data Source field must
match a DataRaptor Turbo Extract input parameter. Each Filter Value must match values in the
sObject field to which the input parameter refers.
NOTE
DataRaptor Turbo Extracts return objects in a nested array format.
4. (Optional) In the Response JSON Path field, enter the name of the object returned in the Action's
response. Append a | delimiter and a number to access the correct instance in the nested array. This
enables OmniScripts to prefill elements.
See Also
Property Description
DataRaptor Interface Name of the DataRaptor Turbo Extract being called.
Data Source Name of a JSON node that provides input for the DataRaptor Turbo Extract.
Filter Value Value of the JSON node that provides input for the DataRaptor Turbo Extract.
Related Topics
Delete Action
Enable users to delete one or more sObject records by using the Delete Action. Use an Object's Record Id
to determine which record to delete. Vlocity recommends using a merge field in the Path to Id field that
refers to an Id or a list of Ids in the data JSON.
1. Preview the OmniScript and identify the JSON path for the record. For example, this data JSON
contains a list of Accounts:
For Integration Procedure examples that include a Delete Action, see Process Arrays Using Loop Blocks
and Handle Errors Using Try-Catch Blocks.
• Entity Is Deleted Message: Enter a message that displays when a record is deleted.
• Delete Failed Message: Enter a message that displays when the action fails to delete a record.
• Invalid Id Message: Enter a message that displays when an invalid Id is sent to the Delete Action.
• Configuration Error Message: Enter a message that displays when the Delete Action has a
configuration error.
Property Description
Type Type of sObject record to delete. For example, Account is a Type of sObject.
Path to Id Path to the JSON node that contains the Id or list of Ids of the records to delete. Supports merge
syntax.
All Or None When checked, the operation fails if any of the records are not deleted.
Entity Is Deleted Message Message that displays when a record is deleted.
Delete Failed Message Message that displays when the action fails to delete a record.
Invalid Id Message Message that displays when an invalid Id is sent to the Delete Action.
Configuration Error Message Message that displays when the Delete Action has a configuration error.
Confirm Controls whether the modal displays.
Confirmation Dialog Message The Confirmation Modal's message text. The default message text is Are you sure? This
action cannot be undone.
Confirm Label Button label for the Confirmation Modal's confirm action.
Cancel Label Button label for the Confirmation Modal's cancel action.
Related Topics
Property Description
DocuSign Templates Templates for the documents that you want signed.
Email Subject Subject line for the email requesting signatures.
Email Body Body text for the email requesting signatures.
Date Format Format for display of date values.
Date Time Format Format for display of datetime values.
Time Format Format for display of time values.
Related Topics
Property Description
DocuSign Templates Templates for the documents that you want signed.
Email Subject Subject line for the email requesting signatures.
DocuSign Return Url URL to which the user is redirected after signing completion. Leave blank to display default redirect page.
Date Format Format for display of date values.
Date Time Format Format for display of datetime values.
Signer Email The email of the signer. Supports merge syntax.
Signer Name The name of the signer. Supports merge syntax.
Time Format Format for display of time values.
Related Topics
Done Action
The Done Action ends the OmniScript and returns the user either to where the script was launched or a
custom URL. This page explains the settings to configure for the Done Action. For more information, see
Ending the Execution of an OmniScript.
NOTE
LWC OmniScripts do not support the Done Action. For information on how to navigate from
an LWC OmniScript, see Navigate Action.
• Option Source:
• To redirect to a Salesforce object, select SObject.
• To redirect to a URL, select URL.
• To redirect to an HTML template, select Redirect.
• Source:
• If redirecting to an SObject, enter %ContextId% to redirect to the record from which the script
launched.
• If redirecting to a URL, enter the page and parameters. For example, MyTestPage?Id=%ContextId
% would redirect to an internal page and http://www.vlocity.com will redirect to an external
page.
NOTE
Beginning with Vlocity Summer '19, you can pass percentage signs in the URL by
replacing the percentage sign in the URL with the variable $Vlocity.Percent.
• Beginning with Vlocity Insurance and Vlocity Health Summer 2018, when redirecting to a Visualforce
page URL from a Lightning container, use the ltng: prefix. For example, ltng:/apex/
CustomVFPage will redirect to a Visualforce page.
• Beginning with Vlocity Insurance and Vlocity Health Summer 2018, when redirecting to a Lightning or
Lightning Community page URL, apply the ltngpage: prefix. For example, ltngpage:/Home will
redirect to the community home page.
• Redirect Page Name and Redirect Template URL:
• If you selected Redirect, enter the page name and template URL that the OmniScript will redirect to
when the action runs into the Redirect Page Name and Redirect Template URL fields.
• Outcome:
• If event tracking is enabled, specifies the value to be logged in the event tracking object. You can use
merge fields to specify the value to be assigned. For more information, see Tracking OmniScripts,
Cards, and Integration Procedures.
• Console Tab Label:
• Modifies the text that displays in the label of the console tab. By default, this is set to New.
• openInPrimaryTab: OmniScript's open in SubTabs by default. Make the Done Action open a Primary tab
by taking these steps:
"openInPrimaryTab": true
See Also
Property Description
Option Source Where the user is sent when the OmniScript completes:
• If you selected Redirect, leave this property blank and use the Redirect Page Name and Redirect Template URL
properties.
• If you selected SObject, enter %ContextId% to redirect to the record from which the script launched.
• If you selected URL, enter the page and parameters. For example, MyTestPage?Id=%ContextId% navigates to
an internal page and http://www.vlocity.com navigates to an external page.
Beginning with Vlocity Summer '19, you can pass percentage signs in the URL by replacing the percentage sign in
the URL with the variable $Vlocity.Percent.
Redirect Page Name of the HTML template page, for example mobileDone.
Name
Redirect URL of the HTML template, for example vlcMobileConfirmation.html.
Template URL
Beginning with Vlocity Summer '19, you can pass percentage signs in the URL by replacing the percentage sign in
the URL with the variable $Vlocity.Percent.
Console Tab Modifies the text that displays in the label of the console tab. By default, this is set to New.
Label
Outcome If event tracking is enabled, specifies the value to be logged in the event tracking object. You can use merge fields to
specify the value to be assigned.
Related Topics
• Navigate Action
• Vlocity Tracking Service
Email Action
The OmniScript Email Action uses the Salesforce Email API to either send an email template to the email
address of a User, Lead, or Contact or to send an email body defined in the action configuration to any
email address.
The Use Template checkbox determines whether using an email template or a defined email body.
• If the Use Template checkbox is checked, the email will send a template to a user, lead, or contact.
• Select Email Template: The ID of the email template that should be used.
• Email Target Object ID: The object ID of the Contact, Lead, or User the email should be sent to.
• What Id: If you specify a contact for the targetObjectId field, a What Id can be used to further ensure
that merge fields in the template contain the correct data. See the Salesforce Email API documentation
for more information.
• Save as Activity: If this option is checked, the email is saved as an activity record on the recipient’s
page in Salesforce.
• Org Wide Email Address: Allows the email to be sent by an Salesforce organization-wide email
address. For more information on organization-wide email addresses, see Organization-Wide Email
Addresses,
• Content Versions: Accepts the ID of a ContentDocument that is sent as an attachment with the Email
Action.
• If Use Template checkbox is unchecked, an email body defined in the action configuration can be sent to
any email address.
• TO: — An array of email addresses or object IDs of the contacts, leads, or users you’re sending the
email to. The maximum number of toAddresses is 100.
• CC: — An array of carbon copy (CC) addresses or object IDs of the contacts, leads, and users you’re
sending the email to. The maximum number of ccAddresses is 25.
• BCC: — An array of blind carbon copy (BCC) addresses or object IDs of the contacts, leads, and users
you’re sending the email to. The maximum number of bccAddresses is 25.
• Email Subject — The subject of the email.
• Email Body — The body of the email.
• Set HTML Body — Determines if the Email Body should be read as plain text or HTML.
• Attachment List — Supports attachment IDs merged from Data JSON. For example, %DocGenId%. When
the email is sent, the attachment will be added to the email.
Property Description
Use Template If checked, uses a Salesforce email template. Also determines which other properties are available.
To Email Address List Specifies the recipients in the TO field of the email. Can accept an array of up to 100 addresses.
Property Description
CC Email Address List Specifies the recipients in the CC field of the email. Can accept an array of up to 25 addresses.
HTTP Action
Call internal and external web services from OmniScript without coding or making Salesforce API calls
using the HTTP Action.
NOTE
In an LWC OmniScript, to use an HTTP Action that calls Apex, you must add the
Salesforce org's domain into a Remote Site's Remote Site URL field. For more
information, see Adding Remote Site Settings.
Settings:
• HTTP Path: The request URL of the API. For example, /NS/v1/application. NS = namespace of the
Apex REST API. The path can contain merge fields. For example, to pass a UserId node from the data
JSON, add the node name with percentage signs on either side, i.e., %UserId%.
NOTE
Beginning with Vlocity Summer '19, you can pass percentage signs in the URL by
replacing the percentage sign in the URL with the variable $Vlocity.Percent.
• HTTP Method: The method name, which has two parameters. For example, doPost(String fullJSON,
String filesMap).
• Option Source: The type of HTTP Action.
• Use Named Credentials (OAuth via Salesforce).
• SOAP/XML (Simple Object Access Protocol)
• Web (Unauthenticated or Credentials in Header)
• Remote Timeout: The timeout for the request, in milliseconds. Defaults to 30,000 (30 seconds. Maximum
12,0000 (120 seconds).
• Pre- and Post-Transform DataRaptor Interface: (Optional) DataRaptor Transform interface to run before
or after the REST Action.
Prior to Summer '17, the HTTP Action was known as the REST Action.
Property Description
HTTP Path URL to call. For Apex REST actions, you can use merge fields to set this property.
Beginning with Vlocity Spring '19, you can pass percentage signs in the URL by replacing the percentage sign
in the Path with the variable $Vlocity.Percent.
HTTP Method GET, POST, PUT, or DELETE.
Endpoint Type Specifies the endpoint type:
• Apex — Invokes Apex REST. You must add the Salesforce org's domain to a Remote Site's Remote Site
URL field.
• Named Credential — Access Salesforce Named Credential (OAuth) identity services.
• SOAP/XML — Send requests to standard REST endpoints using XML format for the request and response
bodies.
• Web — Send requests to standard REST endpoints (unauthenticated or credentials in HTTP headers).
Named Credential Salesforce named credential. For Named Credential and optionally SOAP/XML endpoint types.
HTTP Headers HTTP headers specified as Key/Value pairs. Supports merge field syntax.
Parameters URL parameters specified as Key/Value pairs. Supports merge field syntax.
Encode URI Uses HTML escape codes in the URI.
Cache Caches the response.
With Credentials Requires security credentials such as a username and password.
Extra Payload Sends additional Key/Value pairs. Supports merge field syntax.
Send Body Sends the Extra Payload as the request body for a POST action.
Send Only Extra Enables the action to send Extra Payload's Key/Value pairs without including the OmniScript's data JSON.
Payload
Related Topics
1. Drag the Integration Procedure Action into the OmniScript's structure panel.
2. To select the Integration Procedure to be called, click in the Integration Procedure field, and select
from the list. You can type in the field to filter the list.
3. Use the Response Transformations properties to specify the input and to trim or rename the output
JSON.
• Send JSON Path — Specifies the JSON node that contains the input for the Integration Procedure.
This is typically the name of a previous element in the OmniScript.
• Send JSON Node — Renames the JSON node that contains the input for the Integration Procedure.
This is typically the name of one of the Integration Procedure's input parameters.
• Response JSON Path — Specifies the JSON node that contains the output to return to the
OmniScript. By default all Integration Procedure data is returned.
• Response JSON Node — Renames the JSON node that contains the output to return to the
OmniScript. This is typically the name of a subsequent element in the OmniScript.
See Manipulate JSON with the Send/Response Transformations Properties.
4. Use the Extra Payload property to send additional key/value pairs to the Integration Procedure as input
data.
5. Specify any additional Integration Procedure Action properties you need.
See Also
Property Description
Integration Procedure Specifies the Integration Procedure to be run in the format Type_Subtype.
Remote Options Specifies additional properties for the Integration Procedure as key/value pairs.
Send Only Extra Enables the action to send Extra Payload's Key/Value pairs without including the OmniScript's data
Payload JSON.
Use Future Specifies that the Integration Procedure runs asynchronously, as a Salesforce future method, which can
return no data to the calling OmniScript.
Is Chainable Enables the Chainable settings of the subordinate Integration Procedure.
Use Continuation Enables a subordinate Integration Procedure that calls long-running actions to use Apex continuations.
Use Queueable Enables chainable steps in the subordinate Integration Procedure to start queueable jobs.
Is Queueable Enables the Queueable Chainable settings of the Integration Procedure.
Chainable
Invoke Mode Configures the response behavior of the action:
See Also
• Integration Procedures
• Future Methods in Apex Developer Guide
• Settings for Long-Running Integration Procedures
Navigate Action
Navigate to various Salesforce experiences from OmniScript using the Navigate Action element. For more
information on Salesforce experiences, see PageReference Types.
1. Drag the Navigate Action into the OmniScript's structure panel. If the Navigate Action renders in a
Step, it becomes a clickable button. If the Navigate Action is between steps, it will fire automatically.
2. (Optional) If the Navigate Action renders in a Step, determine the style of the button by clicking the
Button Variant dropdown and selecting an SLDS Button variant. In addition to the SLDS Button
variants, you can select Link to render the Navigate Action as an HTML anchor tag.
3. (Optional) If the Navigate Action renders in a Step, display an SLDS Icon in the button by entering the
Icon name into the Icon Name field. For example, to add the standard_account Icon, enter
Standard:Account.
4. (Optional) Replace the existing entry in the browser history by setting the Replace? property to Yes. If
Replace? is set to Yes, users cannot navigate back to the OmniScript.
NOTE
By default, a Navigate Action in a Console App opens the PageReference type in a
new subtab. Replace the current tab in a Console App by setting Replace? to Yes.
5. (Optional) Enable the LWC OmniScript to send messages to separate Lightning web components by
checking LWC PubSub Message? and adding a Message key-value pair. For more information, see
Communicate with OmniScript from a Lightning Web Component.
6. (Optional) Beginning with the Vlocity Insurance and Health Winter '20, and Vlocity CME Winter '20, Fire
events from the Navigate Action by passing an event to the OmniScript in the URL parameter
c__vlocEvents. The Navigate Action element must have the checkbox property LWC PubSub
Message? enabled to fire the event. For more information on passing parameters into an OmniScript,
see Launch an LWC OmniScript with LWC OmniScript Wrapper. To refresh Cards using events, see
Reloading a Card After Updating an LWC OmniScript.
7. Determine the Salesforce experience that the Navigate Action will direct to by clicking and selecting a
PageReference type. This page contains further instructions for each PageReference Type that
Navigate Action supports. For information on PageReference Types, see PageReference Types.
NOTE
In the LWC OmniScript Designer, the Navigate Action's JSON prop set does not contain
every property from the Properties section. Edit the JSON to add properties. Once a
property is added, if a corresponding property exists it will appear in the UI.
Do not edit the following properties when using the Edit JSON feature: disOnTplt,
objectActionOptions, recordActionOptions, loginActionOptions, targetTypeOptions,
variantOptions, iconPositionOptions, replaceOptions, targetLWCLayoutOptions.
See Also
Navigate to an App
Beginning with Vlocity Insurance and Health Spring '20, Direct users from an OmniScript to a standard App,
custom App, or a page within an App using Navigate Action's App PageReference Type.
Property Description
appId The AppDefinition object's DurableId.
Property Description
appDeveloperName The concatenation of the app’s namespace and developer name. The app's namespace is standard,
custom, or a managed package namespace. The Developer name is viewable in the App Manager. For
more information on appDeveloperName, see PageReference Type
Syntax Examples:
• Standard: standard__Account
• Custom: c__CustomAccountApp
• Managed: vloc_ps_OmniScriptDesigner
3. (Optional) In the Target Page field, enter JSON to specify the app page and additional attributes. The
Target Page field represents the App's pageRef property.
See Also
See Also
Navigate to a Component
Navigate to Aura components and Lightning web components from an OmniScript by using the Component
PageReference Type.
NOTE
The Aura component must implement the lightning:isUrlAddressable interface. For
more information, see Is Url Addressable.
3. (Optional) Pass parameters by using a URL query string format in the Target Params property.
Parameters must have a c__ prefix. This field supports Merge fields.
4. (Optional) When navigating to a component in a console app, add a Console Tab Icon and a Console
Tab Label by setting the c__tabIcon and c__tabLabel parameters. The c__tabIcon accepts and SLDS
Icon and c__tabLabel accepts plain text. For example, &c__tabLabel=Custom
Label&c__tabIcon=standard:account renders the console tab shown in this example image.
See Also
See Also
NOTE
Communities ignore articleType.
See Also
• Navigate Action Properties
• Enable and Configure Cancel Functionality in an LWC OmniScript
• Navigate Action Lightning Web Component ReadMe
• Navigate Action
1. Enter the name of the OmniScript with a prefix of c: into the LWC OmniScript field. The name of the
OmniScript is defined by the OmniScript's Type, SubType, and Language, using the syntax
typeSubTypeLanguage. For example, an OmniScript with the properties Type=myType,
SubType=Example, and Language=English appears as a component using the syntax
myTypeExampleEnglish.
2. Select the layout the OmniScript uses to render by clicking the OmniScript Layout property.
3. (Optional) Prefill the target OmniScript by passing parameters using a URL query string format in the
OmniScript Prefill property. Parameters must have a c__ prefix. This field supports Merge fields.
4. (Optional) When navigating to an OmniScript in a console app, add a Console Tab Icon and a Console
Tab Label by setting the c__tabIcon and c__tabLabel parameters. The c__tabIcon accepts an SLDS
Icon , and c__tabLabel accepts plain text. For example, &c__tabLabel=Custom
Label&c__tabIcon=standard:account renders the console tab shown in this example image.
See Also
1. Set the PageReference type property to Named Page , or if the page exists in a Community, select
Community Named Page.
2. In the Page Name field, enter the API for the page name. This field supports Merge fields.
3. Activate and preview the OmniScript to test the behavior of the navigation.
See Also
1. Set the PageReference type property to Navigation Item. This field supports Merge fields.
2. Find the Custom Tab's Tab Name and Namespace prefix, and enter it into the Tab Name field using the
format NS__TabName, where NS is the namespace of the Tab. For more information on Tabs, see
Create Lightning Page Tabs. This field supports Merge fields.
See Also
• Navigate Action Properties
• Enable and Configure Cancel Functionality in an LWC OmniScript
• Navigate Action Lightning Web Component ReadMe
• Navigate Action
NOTE
The New action opens a modal dialogue.
4. (Optional) Enter the Id of the Object page into the Filter Name field. Filter Name defaults to
Recent. This field supports Merge fields.
See Also
• Navigate Action Properties
• Enable and Configure Cancel Functionality in an LWC OmniScript
• Navigate Action Lightning Web Component ReadMe
• Navigate Action
NOTE
Clone and Edit actions open a modal dialogue.
4. (Optional) Enter the API name of the object into the Object API Name field. Custom objects from a
managed package require a namespace prefix using the syntax NS__APIName, where NS is the
namespace prefix of the object. This field supports Merge fields.
See Also
See Also
See Also
NOTE
In the LWC OmniScript Designer, the Navigate Action's JSON prop set does not contain
every property from the Properties section. Edit the JSON to add properties. Once a
property is added, if a corresponding property exists it will appear in the UI.
Do not edit the following properties when using the Edit JSON feature: disOnTplt,
objectActionOptions, recordActionOptions, loginActionOptions, targetTypeOptions,
variantOptions, iconPositionOptions, replaceOptions, targetLWCLayoutOptions.
Property Description
Button Variant If the Navigate Action renders in a Step, determines the style of the button:
Property Description
Page Reference Select the PageReference sObject type:
Type
• App — Navigates to an App page.
• Component — Navigates to a Lightning Web Component.
• Community Named Page — Navigates to a Community Named Page.
• Current Page — Performs an action on the current page.
• Knowledge Article — Navigates to a knowledge article.
• Login — Navigates to a Login or Logout.
• Named Page — Navigates to the page with the specified name.
• Navigation Item — Navigates to a Custom Tab. Visualforce tabs, web tabs, Lightning Pages, and Lightning
Component tabs are supported.
• Object — Navigates to an sObject page.
• Record — Navigates to an sObject record page.
• Record Relationship — Navigates to a list of records related to the specified record.
• Web Page — Navigates to an external web page.
• Vlocity OmniScript — Navigates to a Vlocity OmniScript.
Replace Existing Specifies that the page to which this action navigates replaces the current page in the browser history. If this is
Page in Browser checked, users cannot navigate back to the OmniScript.
History
Component Name Name of the Lightning Web Component.
Target Parameters Additional parameters for the page.
Article URL URL of the Knowledge Article.
Article Type Type of the Knowledge Article.
Page Name Name of the Named Page.
Tab Name Name of the Custom Tab.
Object API Name Name of the sObject. For custom objects, include the namespace, for example
vlocity_ins__PartyRelationship__c.
Object Action Page for the action to perform on the sObject:
Property Description
Pub/Sub Enables the OmniScript to send messages to separate Lightning web components. After checking this, specify
a Message key-value pair.
Related Topics
• Navigate Action
• Buttons in Salesforce Lightning Design System
• Icons in Salesforce Lightning Design System
Restart an OmniScript
Navigate a user to a new instance of the same OmniScript using the Navigate Action.
Required Versions
Spring '21 or later.
See Also
Matrix Action
The OmniScript Matrix Action enables you to retrieve a value from a calculation matrix by specifying the
required input parameters. For example, the matrix shown below specifies insurance premiums based on
age, sex and smoking status.
The OmniScript below collects the required data from the user, submits it to the matrix, and displays the
resulting premium.
In the Matrix Input Parameters field, map data from the Data JSON (in the Data Source field) to the
parameters that the matrix defines (in the Filter Value field). To specify the matrix to be used, choose it
from the drop-down list in Remote Options.
To control when the matrix executes, enter a DateTime value in the Execution Date Time field. If the
Execution Date Time field is left blank, the matrix executes immediately.
Property Description
Data Source Name of a JSON node that provides input for the calculation matrix.
Filter Value Value of the JSON node that provides input for the calculation matrix.
Matrix Name Name of the calculation matrix being called.
Post-Transform DataRaptor An optional DataRaptor Transform that reformats output data from the calculation matrix.
Interface
Remote Options Key/value pairs that specify additional options for the calculation matrix.
Default Matrix Result Key/value pairs that specify the default result if the matrix doesn't return a result.
Execution Date Time Controls when the matrix executes. If blank, the matrix executes immediately. Supports merge
syntax.
Remote Action
Call Apex classes from OmniScript using the Remote Action element.
1. Add a Remote Action before a Step, in a Step, or after a Step to load data or send data in the
OmniScript. The OmniScript's data JSON is sent as the input.
2. In the Remote Class field, enter the name of the Apex class that the action calls.
NOTE
The Apex Class must implement NS.VlocityOpenInterface. NS = the namespace of the
Apex class. For information on namespace, see Viewing the Namespace and Version
of the Vlocity Package.
3. In the Remote Method field, enter a method of the class that the Action calls. For example—
validateAddress.
4. (Optional) In the Pre- and Post-Transform DataRaptor Interface—optionally select a DataRaptor
Transform interface to run before or after the Remote Action. See DataRaptor Transform Overview.
5. (Optional) Change the amount of time before the Action times out using the Remote Timeout property.
In the element, click Edit Properties as JSON, and in the remoteTimeout property, set a time in
milliseconds. The default timeout is 30,000, or 30 seconds. The maximum is 120,000, or 120
seconds.
6. (Optional) Configure additional properties in the Remote Action. See Remote Action Properties.
Example
NOTE
This example references the Troubleshooting OmniScript and the OmniCallout and
DataObjectService Apex classes.
In the Troubleshooting OmniScript, the callOut1 Remote Action element calls an external system to check if
the asset is still under warranty.
The callOut2 Remote Action calls the returnItemOrder method, which in turn calls the
DataObjectService class that calls out to a Heroku instance to return an order number:
global CustomClassName() {}
try{
if(methodName.equals('customMethodName')){
else if(methodName.equals('customMethodName2')){
} catch(Exception e){
result = false;
return result;
See Also
• Integration Procedures
• HTTP Action
Properties Description
Remote Class Vlocity Open Interface class.
Remote Method Vlocity Open Interface method.
Remote Options Additional class invocation options.
Extra Payload Sends additional Key/Value pairs. Supports merge field syntax.
Send Only Extra Payload Enables the action to send Extra Payload's Key/Value pairs without including the OmniScript's
data JSON.
Show Toast On Completion Displays a message when the subordinate remote action completes.
Use Continuation Enables a subordinate Integration Procedure that calls long-running actions to use Apex
continuations.
Review Action
Skip Elements—Hides Steps, Blocks, or individual Elements from the Review page. To configure this
element:
Property Description
Element Name The OmniScript element for which an error is to be set.
Value The error message. Options:
Related Topics
Property Description
Element Name The JSON node for which a value is to be set.
Property Description
Value The value to assign to the JSON node. Options:
Related Topics
Newport:
vlcHeadline.html
Line Break The Line Break element displays a Lightning: Use the Line Break Element to
line break. Add Line Breaks in an OmniScript
omniLightning-vlcLineBreak.html
Newport:
omniNewport-vlcLineBreak.html
Text Block The Text Block element displays a Lightning: Use the Rich Text Editor in the
block of text to the user. Vlocity OmniScript Designer
omniLightning-vlcTextblock.html
Newport:
omniNewport-vlcTextblock.html
Newport Formula:
Newport Geolocation:
Messaging The Messaging element vlcValidation.html Display Messaging To view the different Message
displays comments, in OmniScripts types, see Displaying Messaging in
requirements, success, OmniScripts.
and warning messaging
depending on whether
the validate expression
is true or false.
Newport Block:
Edit Block The Edit Block vlcEditBlock.html Use See Configuring an Edit Block.
element groups OmniScript
together inputs to vlcEditBlockCards.html Edit Block
allow users to
vlcEditBlockFS.html
add, edit, and
(provides an additional "Sum
delete records.
element" property)
vlcEditBlockInline.html
vlcEditBlockLongCards.html
vlcAssetList.html:
vlcSmallItemsV2.html:
Newport Step:
Action Block
Beginning with Vlocity Insurance and Health Spring '20, run multiple OmniScript Actions asynchronously by
grouping them in an Action Block.
Actions within the Action Block run in parallel and inherit the Action Block's settings.
1. Drag the Action Block from the element palette into the designer. Place the Action Block inside of a
Step, before the first Step, or between Steps.
2. Drag up to four Actions into the Action Block.
3. Select an Invoke Mode to control how actions inside the Action Block run.
Property Description
Default The Action blocks the UI with a loading spinner.
Non-Blocking The Action runs asynchronously, and the response applies to the UI. Pre and Post DataRaptor transforms,
and large attachments are not supported.
Fire and Forget The Action runs asynchronously with no callback to the UI. Pre and Post DataRaptor transforms, and large
attachments are not supported. A response still appears in the debug console but does not apply to the Data
JSON.
4. (Optional) Check Apply if error to enable actions that run successfully to apply their responses to the
OmniScript's data JSON even when other actions in the Action Block fail. When Apply if error is
unchecked, successful actions do not apply their responses to the data JSON when another action in
the block fails.
5. (Optional) When the Action Block is inside of a Step, set Validation Required to Step to prevent the
Action Block from running when errors exist in the Step.
6. Preview the OmniScript to test the Action Block behavior.
NOTE
In Vlocity Insurance and Health Spring '20, Action Block's Conditional View property is
not available in the LWC Designer. To edit the Conditional View property, temporarily
switch to the Classic Designer and configure the Conditional View properties. Once the
conditional view is configured, save the OmniScript and switch back to the LWC
OmniScript Designer.
See Also
Property Description
Apply If Error Enables actions that run successfully to apply their responses to the OmniScript's data JSON even when other
actions in the Action Block fail.
Default An Invoke Mode option, Default blocks the UI with a loading spinner until the Action finishes executing.
Non-Blocking An Invoke Mode option, Non-Blocking runs the action asynchronously, and the response is applied to the UI.
Pre and Post DataRaptor transforms, and large attachments are not supported.
Fire and Forget An Invoke Mode option, Fire and Forget runs the action asynchronously with no callback to the UI. Pre and
Post DataRaptor transforms, and large attachments are not supported. A response appears in the debug
console but is not applied to the Data JSON.
Property Description
Validation When set to Step, Validation Required prevents the Action Block from running when errors exist in the Step.
Required
See Also
• Action Block
• Common OmniScript Element Properties Definitions
Block
Combine logical groups of elements in an OmniScript Step using a Block element.
Blocks help to group information to create nested JSON data. Blocks are contained within Steps and may
repeat to capture an array of data. For example, street, city, state, and postal code elements may be
combined into an address block.
NOTE
Blocks do not support the Custom LWC Element. See Custom LWC Element.
1. Drag a Block element into the OmniScript canvas and name the element.
2. In Field Label, enter a label that displays to users.
4. (Optional) In Repeat Settings, check Enable Repeat to enable users to add multiple block entries.
Repeatable blocks store data in an array format, where each block entry is indexed in an array under
the Block's element name. If you plan to access data from an element in a repeatable Block, see
Evaluating Elements in Repeatable Blocks. For information on prefilling blocks, see Prefill Repeatable
Blocks.
5. (Optional) Check Clone When Repeating to clone values when a Block is repeated.
6. (Optional) In the Limit Repeat field, enter a number to set the number of times a Block can be
repeated.
7. Preview the OmniScript and test the functionality.
8. Note the data JSON output format based on your configuration to map data JSON from Blocks.
No Block JSON Example Block JSON Example Repeatable Block JSON Example
See Also
• Edit Block
• Type Ahead Block
Edit Block
Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, LWC OmniScript
supports Edit Blocks.
Create, edit, and delete multiple Salesforce or external records on one page using Edit Block.
For example, if you are collecting an Account's Contact information, you can add an Edit Block to your
OmniScript to enable users to add a record for each Contact.
NOTE
In the Summer '17 version, the first three fields of the Edit Block display by default. In
Winter '18, the display fields must be chosen by the user when configuring the Edit Block
in the OmniScript Designer. When you disable an active OmniScript with an Edit Block
created before Winter '18, you must determine which fields you want to display on the Edit
Block before reactivating the OmniScript.
https://player.vimeo.com/video/263031601
What's Next
Select an Edit Mode and configure the Edit Block to display elements. See Configuring an Edit Block.
See Also
NOTE
Edit Blocks do not support the Custom LWC element. For more information, see Custom
LWC Element.
Edit Blocks enable a user to add and edit multiple entries in a single array. For example, you can use an
Edit Block to list and edit an Account's list of Contacts. Edit Blocks are repeatable blocks by default.
Prefilling repeatable blocks with data is possible using an array format. For more information, see Prefill
Repeatable Blocks.
• To display an element in the Edit Block's default view, check the checkbox next to the element in the
structure panel. This element also appears when editing an entry.
Example Default View:
• To only display elements when a user edits an entry, leave the checkbox next to the element in the
structure panel unchecked.
Example Edit View:
• To hide an element in the Edit Block, in the element, click Edit as JSON, and set Hide equal to true.
For more information, see Hide OmniScript Elements.
• To only display an element in the Edit Block's default view:
LWC Modes
Select a Mode in the Edit Block's Edit Block Mode field to change the display and functionality of the Edit
Block.
Table n/a
NOTE
Available beginning in
Vlocity Insurance and
Health Spring '20
Angular Templates
Add a template to the EditBlock's HTML Template Id field to modify the display and functionality of the Edit
Block.
Cards - vlcEditBlockCards.html
Financial Statement -
vlcEditBlockFS.html
Inline - vlcEditBlockInline.html
Long cards -
vlcEditBlockLongCards.html
Compatible Elements
The following elements are compatible with Edit Block:
• Aggregate
• Checkbox
• Currency
• Date
• Date/Time
• Disclosure
• Email
• File
• Formula
• Headline
• HTTP Action
• Image
• Integration Procedure Action
• Line Break
• Lookup
• Matrix Action
• Multi-select
• Number
• Password
• Radio
• Radio Group
• Range
• Remote Action
• Select
• Signature
• Telephone
• Text
• Text Area
• Text Block
• Type Ahead Block
• Time
• URL
What's Next
Add actions to an Edit Block or use SObject mapping to create, edit, and delete records. See Adding,
Editing, and Deleting Records with Edit Block Actions.
See Also
• HTTP Action
• Integration Procedure Action
• Remote Action
Creating, Editing, and Deleting Records with Default Actions and sObject Mapping
Add sObject Mapping functionality by adding Remote Actions to the Edit Block for each option you want to
make available to the User. These Remote actions will access Apex classes built for the Edit Block and the
sObject Mapping tool. The Default Actions use the sObject mapping property to determine how the entries
map to an sObject.
NOTE
In the LWC OmniScript Designer, the SObject Mapping section does not work. To edit the
SObject mapping, use the classic designer. Once the edits are complete, switch back to
the LWC OmniScript Designer to test the mapping.
Map the Edit Block entries to Salesforce objects by using the SOBJECT MAPPING property. Fields hidden
from the user, such as an Id, remain available for mapping.
NOTE
By default, new entries are added, and existing entries are updated. To create a new
record instead of updating an existing one, check the Duplicate Key checkbox.
5. In the sObject field, select an sObject field. The element will map to this field.
NOTE
You must add a Text Element to store the Id of the record in the Edit Block. The
element containing the record Id must map to the sObject's Id field in the SOBJECT
MAPPING section. To hide the element from displaying in the UI, see Using the Hide
Property on OmniScript Components.
See Also
1. Search for an SLDS icon, and note the category and the icon name.
1. In the Edit Block's SVG Controlling Element, enter the name of an Element in the Edit Block.
2. In the Svg Controlling Element Map, click Add SVG Icon.
3. In the SVG Icon's Value field, enter a possible value for the SVG Controlling Element.
4. Search for an SLDS icon, and note the category and the icon name.
5. In the Svg Sprite field, enter the icon's category.
6. In the Svg Icon field, enter the name of the icon.
7. Preview the OmniScript and enter the value for the SVG Controlling Element to test the functionality.
8. (Optional) Repeat the steps for additional element values.
See Also
NOTE
Select Mode is only available for Cards, LongCards, and Table.
1. Add a Checkbox element into the Edit Block and name the element. For example, Element Name =
PaidInFull.
2. (Optional) Hide the element from the Edit Block by clicking Edit as JSON, and setting Hide equal to
true.
3. In the Edit Block, set Select Mode equal to Single or Multi.
4. Enter the Checkbox element name in the Checkbox Element Name field.
5. Preview the OmniScript, create Edit Block entries, and select the entries.
6. Click { Data } to open the data panel and view the boolean values for the Edit Block entry.
See Also
See Also
Edit Blocks contain up to three LWC override fields based on the Edit Block's Edit mode. For information on
Edit Modes, see Configuring an Edit Block.
See Also
• Configuring an Edit Block
• Edit Block Properties
The Edit Block LWC overrides the entire Edit Block LWC unless the Edit Mode is Cards or Long Cards.
Cards and Long Cards include additional extendable LWCs. For information on Cards and Long Cards
LWC options, see Overriding an LWC Edit Block.
1. In VisualStudio, create a custom LWC or download a custom Edit Block LWC example by clicking here.
The code in the custom LWC example changes the background of the Edit Block card to green.
2. In the LWC's JavaScript file, extend the Edit Block LWC. Using this code example, replace the NS with
the namespace of the package. For information on finding the namespace, see Viewing the
Namespace and Version of the Vlocity Package.
Example:
render()
{
if (this.jsonDef) {
this._hasChildren = this.jsonDef.children.length > 0;
this._isFirstIndex = this.jsonDef.index === 0;
See Also
Exclusive to Cards and Long Cards edit mode, the Edit Block Label LWC overrides the original labels,
including global actions. For information on additional Long Cards LWC options, see Overriding an LWC
Edit Block.
1. In VisualStudio, create a custom LWC or download a custom Edit Block LWC example by clicking here.
The code in the custom LWC example changes the label of a global action to green.
2. In the LWC's JavaScript file, extend the Edit Block Label LWC. Using this code example, replace the
NS with the namespace of the package. For information on finding the namespace, see Viewing the
Namespace and Version of the Vlocity Package.
Example:
render()
{
return template;
}
}
3. Add code to the custom LWC.
4. Deploy the custom LWC to Salesforce. See Deploy Lightning Web Components.
5. Go to the OmniScript that contains the Edit Block LWC.
6. In the Edit Block's properties, select Edit Block Mode, and click Cards or LongCards.
7. In the Edit Block's Edit Block Label LWC Component Override field, enter the name of the custom
LWC.
8. Activate the OmniScript, and preview your changes.
See Also
• Configuring an Edit Block
• Overriding an LWC Edit Block
• Edit Block Properties
Exclusive to the Card Edit Mode, the Edit Block New LWC overrides the new entry card. For information on
additional Cards LWC options, see Overriding an LWC Edit Block.
1. In VisualStudio, create a custom LWC or download a custom Edit Block New LWC example by clicking
here. The code in the custom LWC example changes the text color to green.
Original Edit Block New Card Custom Edit Block New Example
2. In the LWC's JavaScript file, extend the Edit Block New LWC. Using this code example, replace the NS
with the namespace of the package. For information on finding the namespace, see Viewing the
Namespace and Version of the Vlocity Package.
Example:
See Also
Property Description
Allow Delete Enables users to access an Action that deletes an entry.
Allow Edit Enables users to access an Action that edits an entry.
Allow New Enables users to access an Action that creates a new entry in the Edit Block.
Delete Label The text label that appears for the Delete Action.
Edit Block Mode Exclusive to LWC OmniScripts; sets the styling for Edit Block entries.
Edit Label The text label that appears for the Edit Action.
New Label The text label that appears for the New Action.
Default SVG Sprite The name of the Default SVG Sprite category. By default, this field is set to the utility category.
Default SVG Icon The name of the Default SVG Icon that is within the Default SVG Sprite's category. By default, this field is
set to the user icon.
SVG Controlling Element The name of an element in the Edit Block that's value dynamically controls whether an alternate SVG Icon
displays.
Sum Element The Sum Element displays the value for a Formula placed outside of the Edit Block.
Select Mode Exclusive to LWC OmniScript, Select Mode enables users to set a Checkbox's boolean value to true by
selecting Edit Block entries. Select Mode is only available for Cards, LongCards, and Table Edit Blocks.
Checkbox Element Enter the name of a Checkbox element in the Edit Block. This element enables Select Mode to function.
Name
sObject Mapping Enables users to use Vlocity's default actions to map Edit Block entries to Salesforce records.
For information on common properties, see Common OmniScript Element Properties Definitions.
See Also
NOTE
Radio Group provides the same options for each question. To provide different options for
each question, see Add Options for Selects, Multi-Selects, and Radio Buttons.
NOTE
Using a value from a Radio Group as a conditional in another element requires adding
the Radio Group's element name as the parent node. The image below displays an
example of how to reference a Radio Group value in a conditional:
3. (Optional) Select the Set All button next to an option to check all of the fields at once when the option
is selected.
4. Under Radio Group Questions, add questions into the Label field and enter Values to store the
user's response. The Labels represent the questions that display to the left of the selectable options.
5. (Optional) Set the Radio Labels Width. Changing the Width of Radio Group Labels changes the width
of the Options Labels.
6. Preview the OmniScript to test the questionnaire.
Steps
When Creating the Script Structure for an OmniScript, Steps should be used to create each "page" of the
form. Users can navigate through Steps using Next and Previous buttons. You can enable field validation
for a Step, which means that all required fields on the Step must be completed in order to move forward.
Conditionally Display Elements Using the Conditional View Property can be done by applying conditional
views to steps. This enables you to create one OmniScript that offers different experiences based on the
user's responses.
Step Example
In the example OmniScript pictured below, the first Step is called Agent Information:
The Instruction field on the Step element configuration appears in Horizontal mode and is HTML-rich:
The OmniScript's Step Chart can be hidden by checking Hide Step Chart in the Script Configuration:
The Step Chart Label property enables you to text that is separate from the Step's main display label:
In the OmniScript Designer, the Type Ahead Block is located under the Groups section of Available
Components.
See Also
NOTE
If a Type Ahead Block exists in a Block element, only one Block element is permitted.
Adding multiple nested Blocks will result in errors.
2. Add an Action element into the Type Ahead Block to retrieve data or seed the Type Ahead Block with
data. Type Ahead Blocks only support using a single action.
NOTE
Prior to Vlocity Insurance and Health Spring '20, in an LWC OmniScript, if an action
returns nested response data, you must trim the path in the Response JSON Node
field. For example, if Response JSON Path is set to the nested node %data:years
%, the Response JSON Node must be set to %years% or VlocityNoRootNode.For
information on trimming the JSON path of an action's response, see Manipulate JSON
with the Send/Response Transformations Properties.
See Also
The video below contains an overview of the OmniScript Type Ahead Block including instructions on how to
use it with an HTTP action.
https://player.vimeo.com/video/263273707
3. Configure your HTTP Action by entering your HTTP Path and your HTTP Method.
4. Add fields to your Type Ahead Block for the items that are being returned by the HTTP action.
In the video example, the HTTP action is returning street address, city, and state. These are added as
text fields for street_line, city, and state.
By default, user input will be filtered against a LIKE match. To return unfiltered results check the Disable
Data Filter checkbox in the Type Ahead Block's properties.
See Also
For example, you might want to use a Data JSON with an array containing a list of your coverage plan
names. As your agent begins typing, a list of plan names is displayed, enabling the agent to choose one.
To use a Data JSON as the source for your Type Ahead Block:
NOTE
The Data JSON Path only accepts data at the root level of the JSON.
By default, user input is filtered using a LIKE match. To return unfiltered results, check Disable Data Filter
in the Type Ahead Block's properties.
To make the Type Ahead Block behave like the Lookup element, check the Lookup Mode checkbox.
Instead of typing to return a set of values, users select from a set of values.
See Also
3. Check the Enable Google Maps Autocomplete checkbox to display the Google Maps
Autocomplete section.
4. In the Google Maps API Key field, enter your Google Maps JavaScript API key. If you don't have a
Google Maps JavaScript API Key, obtain one from Google.
5. (Optional) To hide the Google Map widget, check Hide Map.
6. Click the Country Filter field and select a Country.
7. Preview the OmniScript to run a search and return a Google response.
8. Open the Action Debugger to view the response. A larger set of response data is available beginning
with Vlocity Insurance and Health and Vlocity CME Summer '20.
Refer to the Action debugger's response, and map these additional nested data types by entering the
correct notation in the Google Response Node field:
12. Save the OmniScript and run it in preview to view your mappings.
See Also
NOTE
Beginning with Vlocity Insurance and Health Summer '20, LWC OmniScripts require
different configurations for the Type Ahead Block's Google Maps functionality. See Using
Google Maps Autocomplete in LWC OmniScripts.
This video explains how to use the Google Maps API in a Type Ahead Block:
https://player.vimeo.com/video/263267240
See Also
This video demonstrates how to use OmniScript's Type Ahead Block with DataRaptor:
https://player.vimeo.com/video/246519710
See Also
Property Description
Type Ahead Key Where to apply the data returned by the action. To invoke JavaScript for parsing, set Data Process
Function.
Edit Mode Check to display the fields in the Type Ahead Block automatically. If Edit Mode is not checked, users can
click the edit button to display fields. Displaying the field enables users to enter information into the fields
without using type-ahead.
Google Map Api Key Enter a Google Maps API Key.
New Item Label Permits users to add a new entry when using the Type Ahead Block. By default, users can only choose
from the list of values.
Property Description
Hide Edit Button Prevents the Edit button from displaying. If Edit Mode is checked, the Type Ahead Block fields still display
to the user.
Hide Map Hides the Google Maps widget in the OmniScript.
Google Response The name of the google response node. Preview the OmniScript to run the Google search and view all the
Node available response nodes in the action debugger.
See Also
Newport:
omniNewport-
vlcCheckbox.html
Newport Checkbox:
Newport:
• In single currency Salesforce orgs, the
Currency Code is set to the org currency by omniNewport-
default. No configuration is necessary. vlcCurrency.html
• In multi-currency Salesforce orgs, the
Currency Code changes to a current user's
currency code by default. No configuration
is necessary. For information on configuring
multiple currencies, see Manage Multiple
Currencies.
• Override the currency code with a default
value. In the Script Configuration, set the
Currency Code field to a supported
currency code.
• In the URL that launches the script, set the
OmniScriptCurrencyCode parameter. For
example: &OmniScriptCurrencyCode=JPY
• (Exclusive to LWC OmniScripts) Display the
Currency Code by checking the Display
Currency Code checkbox on the Currency
element.
• In a VisualForce page that displays an
OmniScript, by setting the
strOmniScriptCurrencyCode to a currency
code.
Newport Currency:
Date/Time The Date element is used for input fields that Lightning: Lightning Date/Time:
should contain a date and time. Displays two
fields. The timezone property provides the omniLightning-vlcDatetime-
option of setting the timezone to either the local.html
User object's time or the browser's local time.
Newport:
omniNewport-vlcDatetime-
local.html
Newport Date/Time:
Disclosure Displays Disclosure text and has a checkbox Lightning: Lightning Disclosure:
for user to select whether or not they agree
with the disclosure. omniLightning-
vlcDisclosure.html
Newport:
omniNewport-
vlcDisclosure.html
Newport Disclosure:
Email The Email element is used for input fields that Lightning: Lightning Email:
should contain an e-mail address.
omniLightning-vlcEmail.html
Newport:
omniNewport-vlcEmail.html
Newport Email:
File The File element allows the user to upload a Lightning: Lightning File:
file from their computer so that it is accessible
by OmniScript. omniLightning-vlcFile.html
Newport:
omniNewport-vlcFile.html
Newport File:
omniLightning-
vlcFilterItemMSelect.html
Newport:
omniNewport-
vlcFilterItemSelect.html
omniNewport-
vlcFilterItemMSelect.html
Image The Image element defines an image in Lightning: Lightning Image:
Omniscript.
omniLightning-vlcImage.html
Newport:
omniNewport-vlcImage.html
Newport Image:
Lookup The Lookup element calls the DataRaptor Lightning: Lightning Lookup:
Output service to query SFDC tables and
populate the element with the results of the omniLightning-
query. s vlcLookup.html
Newport:
omniNewport-vlcLookup.html
Newport Lookup:
Newport:
omniNewport-vlcMulti-
select.html
Newport Multi-select:
omniLightning-
vlcNumber.html
Newport:
omniNewport-
vlcNumber.html
Newport Number:
omniLightning-
vlcPassword.html
Newport:
omniNewport-
vlcPassword.html
Newport Password:
Radio Radio buttons let a user select one of a Lightning: Lightning Radio Display Mode
limited number of options. Options are Options:
displayed in a vertical list. omniLightning-vlcRadio.html
Horizontal:
Newport:
omniNewport-vlcRadio.html
Image:
Vertical:
Horizontal:
Image:
Segment:
Vertical:
Range The Range element is used for input fields Lightning: Lightning Range:
that should contain a value within a range.
omniLightning-vlcRange.html
Newport:
omniNewport-vlcRange.html
Newport Range:
Newport:
omniNewport-vlcSelect.html
Newport Select:
Newport:
omniNewport-
vlcSignature.html
Newport Signature:
Telephone The Telephone element is used for input Lightning: Lightning Telephone:
fields that should contain a telephone
number. omniLightning-vlcTel.html
Newport:
omniNewport-vlcTel.html
Newport Telephone:
Text The Text element is a one-line text input field. Lightning: Lightning Text:
omniLightning-vlcText.html
Newport:
omniNewport-vlcText.html
Newport Text:
Text Area The Text Area element is a multiple-line text Lightning: Lightning TextArea:
input field.
omniLightning-
vlcTextarea.html
Newport:
omniNewport-
vlcTextarea.html
Newport TextArea:
Time The Time element allows users to input a time Lightning: Lightning Time:
into the field.
omniLightning-vlcTime.html
Newport:
omniNewport-vlcTime.html
Newport Time:
URL The URL element is used for input fields that Lightning: Lightning URL:
should contain a URL address.
omniLightning-vlcURL.html
Newport:
omniNewport-vlcURL.html
Newport URL:
Property Description
LWC Name Enter the name of the custom component to render it in an active OmniScript.
Property Name Enter a property name using the HTML attribute format to pass it into the custom component. For example, the
property recordId converts to the HTML attribute record-id.
Property Source Enter a value to pass in the property. Values may use merge field syntax to pass a JSON node. For example, to
pass the JSON node ContextId, enter %ContextId%.
Standalone LWC A checkbox that enables the use of a Standalone LWC.
See Also
1. Drag a Checkbox element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. (Optional) Select Default Value to enable the checkbox by default. The value is true or false in the
Data JSON.
5. (Optional) For additional properties, see Common OmniScript Element Properties Definitions.
See Also
Checkbox Properties
Checkbox properties are configurable from the Properties panel when you select a Checkbox element. With
the Checkbox element, enable users to select a checkbox in your OmniScript.
Property Description
Default Value Select to enable the checkbox by default. The value is true or false in the Data JSON.
See Also
1. Drag a Currency element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. (Optional) To override the default allowable format, select Custom Mask, and then enter a new mask
in the Format Override: Custom Mask field. For example, the mask ###,### transforms an input of
123456 into 123,456. See Pattern Mask.
5. (Optional) In Format Override: Decimal Places, enter a number to change the default number of
decimal places to display.
6. (Optional) In Minimum Currency Value, enter the minimum value that a user can enter, such as 1.
7. (Optional) In Maximum Currency Value, enter the maximum value that a user can enter, such as
10,000.
8. (Optional) Select Allow Negative Numbers to allow users to enter negative values, such as -15.
9. (Optional) Select Hide Comma Separators to hide commas for values greater than three digits. For
example, display 1000 instead of 1,000.
10. (Optional) Select Display Currency Code to display a currency code based on the logged-in user's
locale. For example, if the user locale is en-US, the currency code is USD.
11. (Optional) For additional properties, see Common OmniScript Element Properties Definitions.
See Also
Currency Properties
Currency properties are configurable from the Properties panel when you select a Currency element. With
the Currency element, enable users to enter a currency amount in an input field in your OmniScript.
Property Description
Custom Mask Overrides the default allowable format.
Format Override: Custom Mask Specifies the custom mask that overrides the default mask. For example, the mask ###,###
transforms an input of 123456 into 123,456. For additional pattern information, visit https://
imask.js.org/guide.html#masked-pattern, and review Pattern Mask.
Format Override: Decimal Places Specifies how many decimal places to display. For example, enter 3 to display 50.201 instead
of 50.20.
Minimum Currency Value The minimum value that a user can enter.
Maximum Currency Value, The maximum value that a user can enter.
Allow Negative Numbers Allows users to enter negative values, such as -15.
Hide Comma Separators Hides commas for values greater than three digits. For example, display 1000 instead of
1,000.
Property Description
Display Currency Code Displays a currency code based on the logged-in user's locale. For example, if the user locale
is en-US, the currency code is USD.
See Also
• OmniScripts Currency Element
• Common OmniScript Element Properties Definitions
1. Drag a Text element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. In Minimum Date, enter the earliest date the user can select from the date picker, such as
01-01-1950.
NOTE
The format entered must be the same as in the Date Format field. For example, to set
the minimum date to January 1, 1950, if the Date Format is MM-DD-YYYY, you must
enter 01-01-1950.
5. In Maximum Date, enter the latest date the user can select from the date picker, such as
12-31-2019.
NOTE
The format entered must be the same as in the Date Format field. For example, to set
the maximum date to December 31, 2019, if the Date Format is MM-DD-YYYY, you
must enter 12-31-2019.
6. In Date Format, enter the format to display the date. For example, if the format is MM-DD-YYYY, and
the user selects January 3, 2020 from the date picker, the date displays as 01-03-2020. For
more format options, see Day.js.
7. In Time Format, enter the format to display the time, such as hh:mm a, which is the default.
NOTE
Enter h or hh for hour, m or mm for minute, s or ss for seconds, and a for am/pm. A
single letter, such as h or m, has no leading zero. Remove the a to display 24 hour
time. For example, hh:mm a displays 03:30 pm, h:mm a displays 3:30 pm, and
hh:mm:ss. displays 15:30 01. For more format options, see Day.js.
8. In Time Interval, enter the intervals within an hour the user can select from the time dropdown. For
example, enter 15 for 15 minute periods within the hour such as 12:00, 12:15, 12:30, 12:45, and so on.
The default interval is 30.
9. In the Advanced Options section, select a Time Zone:
• Select Local Timezone to use the timezone of the browser.
• Select User Timezone to use the timezone set in the logged-in user's profile.
10. (Optional) For additional properties, see Common OmniScript Element Properties Definitions.
See Also
Date/Time Properties
Date/Time properties are configurable from the Properties panel when you select a Date/Time element.
With the Date/Time element, enable users to select a date from a date picker and a time from a dropdown
list in your OmniScript.
Property Description
Date Format Specifies the format to display the date. For example, if the format is MM-DD-YYYY, and the
user selects January 3, 2020 from the date picker, the date displays as 01-03-2020. For
more format options, visit https://day.js.org/docs/en/parse/string-format.
Maximum Date The latest date the user can select from the date picker. The format must be the same as in
the Date Format field. For example, to set the maximum date to December 31, 2019, if the
Date Format is MM-DD-YYYY, you must enter 12-31-2019.
Minimum Date The earliest date the user can select from the date picker. The format must be the same as in
the Date Format field. For example, to set the minimum date to January 1, 1950, if the Date
Format is MM-DD-YYYY, you must enter 01-01-1950.
Time Format Specifies the format to display the time. Enter h or hh for hour, m or mm for minute, s or ss for
seconds, and a for am/pm. A single letter, such as h or m, has no leading zero. Remove the a
to display 24 hour time. For more format options, visit https://day.js.org/docs/en/parse/string-
format.
Time Interval Specifies the intervals within an hour the user can select from the time dropdown. For
example, enter 15 for 15 minute periods within the hour such as 12:00, 12:15, 12:30, 12:45,
and so on.
Time Zone Specifies the timezone the date and time should be based. Select Local Timezone to use the
timezone of the browser. Select User Timezone to use the timezone set in the logged-in
user's profile.
See Also
1. Drag a Date element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. In Minimum Date, enter the earliest date the user can select from the date picker, such as
01-01-1950.
NOTE
The format entered must be the same as in the Date Format field. For example, to set
the minimum date to January 1, 1950, if the Date Format is MM-DD-YYYY, you must
enter 01-01-1950.
5. In Maximum Date, enter the latest date the user can select from the date picker, such as
12-31-2019.
NOTE
The format entered must be the same as in the Date Format field. For example, to set
the maximum date to December 31, 2019, if the Date Format is MM-DD-YYYY, you
must enter 12-31-2019.
6. In Date Format, enter the format to display the date. For example, if the format is MM-DD-YYYY, and
the user selects January 3, 2020 from the date picker, the date displays as 01-03-2020. For
more format options, see Day.js.
7. (Optional) In the Advanced Options section, update values for the following properties:
• Data Type: Specifies how to display the date in the Data JSON.
• If set to String, the Model Date Format is applied. String is the default data type.
• If set to Date, the date is encoded as an ISO 8601 date/time, such as
2018-01-28T05:00:00.000Z.
• Model Date Format: Specifies how the date is formatted in the Data JSON when Data Type is set to
String. For example, YYYY-MM-DD. For more format options, see Day.js.
8. (Optional) For additional properties, see Common OmniScript Element Properties Definitions.
See Also
Date Properties
Date properties are configurable from the Properties panel when you select a Date element. With the Date
element, enable users to select a date from a date picker in your OmniScript.
Property Description
Data Type Specifies how to display the date in the Data JSON. Default is String. If set to String, the
Model Date Format is applied. If set to Date, the date is encoded as an ISO 8601 date/time,
such as 2018-01-28T05:00:00.000Z.
Date Format Specifies the format to display the date. For example, if the format is MM-DD-YYYY, and the
user selects January 3, 2020 from the date picker, the date displays as 01-03-2020. For
more format options, visit https://day.js.org/docs/en/parse/string-format.
Maximum Date The latest date the user can select from the date picker. The format must be the same as in
the Date Format field. For example, to set the maximum date to December 31, 2019, if the
Date Format is MM-DD-YYYY, you must enter 12-31-2019.
Minimum Date The earliest date the user can select from the date picker. The format must be the same as in
the Date Format field. For example, to set the minimum date to January 1, 1950, if the Date
Format is MM-DD-YYYY, you must enter 01-01-1950.
Model Date Format Specifies how the date is formatted in the Data JSON when Data Type is set to String. For
example, YYYY-MM-DD. For more format options, visit https://day.js.org/docs/en/parse/string-
format.
See Also
1. Drag a Disclosure element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. (Optional) Select the Required field to make selecting the checkbox next to the statement required.
5. (Optional) Click the Text field to enter the text for your disclosure statement.
6. (Optional) For additional properties, see Common OmniScript Element Properties Definitions.
See Also
Disclosure Properties
Disclosure properties are configurable from the Properties panel when you select a Disclosure element.
With the Disclosure element, enable users to read a disclosure statement and select a checkbox to indicate
agreement.
Property Description
Check Label The text that appears next to the checkbox.
Text The disclosure statement text.
See Also
1. Drag an Email element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. (Optional) In the Validation Options section, update data validation options:
• In Pattern, enter a pattern to override the default allowable email format. Use simple pattern
matching. Regular expressions (regex) accepted. See Regular Expressions.
• In Pattern Error Text, enter the message displayed if the input does not match the expression in
Pattern.
5. (Optional) For additional properties, see Common OmniScript Element Properties Definitions.
See Also
Email Properties
Email properties are configurable from the Properties panel when you select an Email element. With the
Email element, enable users to enter an email address in your OmniScript.
To view a list of properties available to the Email element, see Common OmniScript Element Properties
Definitions.
See Also
1. Drag a Multi-select element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. (Optional) In Display Mode, select how to display the radio buttons. The following list options
available:
• Horizontal: (Default) Display radio buttons next to each other.
See Also
• OmniScripts Select Element
• OmniScript Input Elements
• OmniScript Element Reference
Multi-Select Properties
Multi-Select properties are configurable from the Properties panel when you select a Multi-Select element.
With the Multi-Select element, enable users to select one or more items from one or more options in your
OmniScript.
Property Description
Choose existing image Choose from a list of images available in your org.
Controlling Field Element The OmniScript element name on which to base the options displayed.
Controlling Field Source The Apex Class on which to base the options displayed.
Controlling Field Type Displays options based on the selection of another value. Select Custom to retrieve picklist
options from an Apex class. Select SObject to retrieve dependent picklist values from a
Salesforce object.
Display Mode Specifies how to display the options.
Enable Caption Displays a caption below the image.
Height Sets the image height.
Image Count In Row Sets how many images per row to display.
Label The option's visible label.
Options Specifies the options the user can choose from.
Option Source Specifies where the list of options come from. If Manual, enter value/label pairs. If Custom,
enter the Apex class and method in the format ClassName.method. If SObject, retrieves the
picklist values from the Salesforce object and field, in the format
ObjectAPIName.FieldAPIName. If Image, when Display Mode is Image, manually enter
value/label pairs and upload images to display.
Source Enter the source depending on the Option Source selected. If Custom, enter the name of a
method to call on a class in the format class.method. If SObject, enter the name of a field
on an object in the format SObject.field.
Use as Default Selects the option by default.
Value The value of the option.
Width Sets the image height.
See Also
• OmniScripts Multi-Select Element
• Common OmniScript Element Properties Definitions
1. Drag a Number element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. In Mask, set the allowable format the user can enter. See Pattern Mask.
NOTE
The # symbol and the integers 1-9 represent a digit in the field. You can separate the
integers by using commas and a single decimal. The decimal is only applied if a user
enters it into the field. For example, the mask ###,###.## transforms an input of
123456.78 into 123,456.78. Enter a + or - symbol to return a positive or negative
integer.
5. (Optional) For Validation Options and other additional properties, see Common OmniScript Element
Properties Definitions.
See Also
1. Drag a Password element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. In Minimum Password Length, enter the minimum number of characters the user must enter for a
valid password.
5. In Maximum Password Length, set the maximum number of characters the user can enter for a valid
password.
6. (Optional) For Validation Options and other additional properties, see Common OmniScript Element
Properties Definitions.
See Also
Password Properties
Password properties are configurable from the Properties panel when you select a Password element. With
the Password element, enable users to enter a password in your OmniScript.
Property Description
Minimum Password Length Specifies the minimum number of characters the user must enter for a valid password.
Maximum Password Length Specifies the maximum number of characters the user can enter for a valid password.
See Also
1. Drag a Radio element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. (Optional) In Display Mode, select how to display the radio buttons. The following list options
available:
• Horizontal: (Default) Display radio buttons next to each other.
• Vertical: Display radio buttons stacked.
• Image: Display each radio button as an image.
• Segmented (Newport only): Display each radio button as a stylized link based on the Newport
Design System. See Customizing OmniScripts and Cards with Vlocity Newport Design System.
5. (Optional) If you select Image in Display Mode, the following are additional properties you can
configure:
• Width: Sets the image width.
• Height: Sets the image height.
• Image Count In Row: Sets how many images per row to display.
• Enable Caption: Displays a caption below the image.
6. In Option Source, select where the list of options come from. Select from one of the following:
• Manual: (Default) Manually enter value/label pairs. Available when Display Mode is not Image.
• Custom: Enter the Apex class and method that returns the options. Use the format
ClassName.method. See Populating Picklist Values From Apex.
• SObject: Retrieves the picklist values from the Salesforce object and field. Use the format
ObjectAPIName.FieldAPIName.
• Image: When Image is selected as Display Mode, manually enter value/label pairs and upload
images to display. If no image is uploaded, the label displays in the image box.
7. If you select Manual or Image as an Option Source, for each option follow these steps:
a. Click + Add New Option.
b. Enter the Value and visible Label.
c. If your option is an image, select an image available from the Choose existing image dropdown.
Or upload an image from your computer from the Or upload new image section.
d. (Optional) Check Use as Default to make the option selected by default.
e. (Optional) Check Auto Advance to advance the user to the next step when they click this option.
8. If you select Custom as an Option Source, in the Source, enter the name of a method to call on a
class in the format class.method.
9. If you select SObject as an Option Source, in the Source, enter the name of a field on an object in
the format SObject.field.
10. (Optional) To display options based on the selection of another value, configure Controlling Field
Type by following these steps:
a. To define the source of the controlling field:
• To retrieve picklist options from an Apex class, select Custom.
• To retrieve dependent picklist values from a Salesforce object, select SObject.
b. In Controlling Field Source, enter an Apex class.
c. In Controlling Field Element, enter an OmniScript element name.
11. (Optional) For additional properties, see Common OmniScript Element Properties Definitions.
See Also
Radio Properties
Radio properties are configurable from the Properties panel when you select a Radio element. With the
Radio element, enable users to make a selection from one or more options in your OmniScript.
Property Description
Auto Advance Advances the user to the next step when they click this option.
Choose existing image Choose from a list of images available in your org.
Controlling Field Element The OmniScript element name on which to base the options displayed.
Controlling Field Source The Apex Class on which to base the options displayed.
Controlling Field Type Displays options based on the selection of another value. Select Custom to retrieve picklist
options from an Apex class. Select SObject to retrieve dependent picklist values from a
Salesforce object.
Display Mode Specifies how to display the options.
Enable Caption Displays a caption below the image.
Height Sets the image height.
Image Count In Row Sets how many images per row to display.
Label The option's visible label.
Options Specifies the options the user can choose from.
Option Source Specifies where the list of options come from. If Manual, enter value/label pairs. If Custom,
enter the Apex class and method in the format ClassName.method. If SObject, retrieves the
picklist values from the Salesforce object and field, in the format
ObjectAPIName.FieldAPIName. If Image, when Display Mode is Image, manually enter
value/label pairs and upload images to display.
Source Enter the source depending on the Option Source selected. If Custom, enter the name of a
method to call on a class in the format class.method. If SObject, enter the name of a field
on an object in the format SObject.field.
Use as Default Selects the option by default.
Value The value of the option.
Width Sets the image height.
See Also
1. Drag a Range element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. In Step, enter an increment value of the input range. For example, enter 2 so the user can select 2, 4,
6, 8, and 10 from a range of 2 to 10, or 4.5, 6.5, 8.5, and 10.5 from a range of 4.5 to 10.5. Default Step
is 1.
5. To create a selectable range configure the following properties:
• Minimum Value: Sets the lowest selectable number in the range.
• Maximum Value: Sets the highest selectable number in the range.
NOTE
Both fields accept dynamic and static values. Dynamic values are set using merge
fields. For example, to use a Number element value, whose element name is
Number1, to dynamically set your minimum or maximum value, enter %Number1%.
Acceptable static values include whole, negative, and decimal numbers, such as 1,
-5, and .5.
6. (Optional) For additional properties, see Common OmniScript Element Properties Definitions.
See Also
Range Properties
Range properties are configurable from the Properties panel when you select a Range element. With the
Range element, enable users to enter an email address in your OmniScript.
Property Description
Step Specifies the increment value of the input range. For example, enter 2 so the user can select
2, 4, 6, 8, and 10 from a range of 2 to 10.
Minimum Value Sets the lowest selectable number in the range. Accepts dynamic and static values. For
example, to enter the value of an element whose name is Number1, enter the merge field
%Number1%. Acceptable static values include whole, negative, and decimal numbers, such as
1, -5, .5.
Maximum Value Sets the highest selectable number in the range. Accepts dynamic and static values. For
example, to enter the value of an element whose name is Number1, enter the merge field
%Number1%. Acceptable static values include whole, negative, and decimal numbers, such as
1, -5, .5.
See Also
1. Drag a Select element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. In Option Source, select where the list of options come from. Select from one of the following:
• Manual: (Default) Manually enter value/label pairs.
• Custom: Enter the Apex class and method that returns the options. Use the format
ClassName.method. See Populating Picklist Values From Apex.
• SObject: Retrieves the picklist values from the Salesforce object and field. Use the format
ObjectAPIName.FieldAPIName.
5. If you select Manual as an Option Source, for each option follow these steps:
a. Click + Add New Option.
b. Enter the Value and visible Label.
c. (Optional) Check Use as Default to make the option selected by default.
d. (Optional) Check Auto Advance to advance the user to the next step when they click this option.
6. If you select Custom as an Option Source, in the Source, enter the name of a method to call on a
class in the format class.method.
7. If you select SObject as an Option Source, in the Source, enter the name of a field on an object in
the format SObject.field.
8. (Optional) To display options based on the selection of another value, configure Controlling Field
Type by following these steps:
a. To define the source of the controlling field:
• To retrieve picklist options from an Apex class, select Custom.
• To retrieve dependent picklist values from a Salesforce object, select SObject.
b. In Controlling Field Source, enter an Apex class.
c. In Controlling Field Element, enter an OmniScript element name.
9. (Optional) For additional properties, see Common OmniScript Element Properties Definitions.
See Also
Select Properties
Select properties are configurable from the Properties panel when you select a Select element. With the
Select element, enable users to make a selection from a dropdown list in your OmniScript.
Property Description
Auto Advance Advances the user to the next step when they click this option.
Controlling Field Element The OmniScript element name on which to base the options displayed.
Controlling Field Source The Apex Class on which to base the options displayed.
Controlling Field Type Displays options based on the selection of another value. Select Custom to retrieve picklist
options from an Apex class. Select SObject to retrieve dependent picklist values from a
Salesforce object.
Label The option's visible label.
Options Specifies the options the user can choose from.
Option Source Specifies where the list of options come from. If Manual, enter value/label pairs. If Custom,
enter the Apex class and method in the format ClassName.method. If SObject, retrieves the
picklist values from the Salesforce object and field, in the format
ObjectAPIName.FieldAPIName. If Image, when Display Mode is Image, manually enter
value/label pairs and upload images to display.
Source Enter the source depending on the Option Source selected. If Custom, enter the name of a
method to call on a class in the format class.method. If SObject, enter the name of a field
on an object in the format SObject.field.
Use as Default Selects the option by default.
Value The value of the option.
See Also
1. Drag a Telephone element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. (Optional) In Mask, update the allowable format by entering a custom pattern. The default is (999)
999-9999. See Pattern Mask.
5. (Optional) In Minimum Length, update the minimum number of characters the user must enter.
6. (Optional) In Maximum length, update the maximum number of characters the user can enter.
7. (Optional) For Validation Options and other additional properties, see Common OmniScript Element
Properties Definitions.
See Also
1. Drag a Text Area element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. (Optional) In Minimum Length, enter the minimum number of characters the user must enter.
5. (Optional) In Maximum Length, enter the maximum number of characters the user can enter.
6. (Optional) For additional properties, see Common OmniScript Element Properties Definitions.
See Also
Property Description
Minimum Length The minimum number of characters the user must enter.
Maximum Length The maximum number of characters the user can enter.
See Also
1. Drag a Text element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. (Optional) To set the type of information and its format, enter a Mask such as (999)
999-9999[x9999], which accepts a North American phone number with an optional extension. See
Pattern Mask.
5. (Optional) In Minimum Length, set the minimum length of the text allowed, such as 1.
6. (Optional) In Maximum Length, set the maximum length of text allowed, such as 300.
7. (Optional) For Validation Options and other additional properties, see Common OmniScript Element
Properties Definitions.
See Also
Text Properties
Text properties are configurable from the Properties panel when you select a Text element. With the Text
element, enable users to enter a line of text in your OmniScript.
Property Description
Mask Specifies the allowable input and sets the input's format. Use A for any letter, 9 for any number, * for any
character, and [ ] to enclose optional characters. For additional pattern information, visit https://
imask.js.org/guide.html#masked-pattern, and review Pattern Mask.
Minimum Length The minimum number of characters the user must enter.
Maximum Length The maximum number of characters the user can enter.
See Also
1. Drag a Time element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. In Minimum Time, enter the earliest time the user can select, such as 12:00 am.
NOTE
The format entered must be the same as in the Time Format field. For example, to
set the minimum time to midnight, if the Time Format is hh:mm a, you must enter
12:00 am.
5. In Maximum Time, enter the latest time the user can select, such as 08:00 pm.
NOTE
The format entered must be the same as in the Time Format field. For example, to
set the maximum time to 8pm, if the Time Format is hh:mm a, you must enter 08:00
pm.
6. In Time Format, enter the format to display the time, such as hh:mm a, which is the default.
NOTE
Enter h or hh for hour, m or mm for minute, s or ss for seconds, and a for am/pm. A
single letter, such as h or m, has no leading zero. Remove the a to display 24 hour
time. For example, hh:mm a displays 03:30 pm, h:mm a displays 3:30 pm, and
hh:mm:ss. displays 15:30 01. For more format options, see Day.js.
7. In Time Interval, enter the intervals within an hour the user can select from the time dropdown. For
example, enter 15 for 15 minute periods within the hour such as 12:00, 12:15, 12:30, 12:45, and so on.
The default interval is 30.
8. (Optional) In the Advanced Options section, update values for the following properties:
• Data Type: Specifies how to display the time in the Data JSON.
• If set to String, the Model Time Format is applied. String is the default data type.
• If set to Date, the time is encoded as an ISO 8601 time.
• Model Time Format: Specifies how the time is formatted in the Data JSON when Data Type is set
to String. The default format is HH:mm:ss.sss'Z'. For more format options, see Day.js.
9. (Optional) For additional properties, see Common OmniScript Element Properties Definitions.
See Also
Time Properties
Time properties are configurable from the Properties panel when you select a Time element. With the Time
element, enable users to select a time from a dropdown list in your OmniScript.
Property Description
Data Type Specifies how to display the time in the Data JSON. If set to String, the Model Time Format
is applied. String is the default data type. If set to Date, the time is encoded as an ISO 8601
time.
Maximum Time The latest time the user can select. The format entered must be the same as in the Time
Format field. For example, to set the maximum time to 8pm, if the Time Format is hh:mm a,
you must enter 08:00 pm.
Minimum Time The earliest time the user can select. The format entered must be the same as in the Time
Format field. For example, to set the minimum time to midnight, if the Time Format is hh:mm
a, you must enter 12:00 am.
Model Time Format Specifies how the time is formatted in the Data JSON when Data Type is set to String. The
default format is HH:mm:ss.sss'Z'. For more format options, visit https://day.js.org/docs/en/
parse/string-format.
Time Format Specifies the format to display the time. Enter h or hh for hour, m or mm for minute, s or ss for
seconds, and a for am/pm. A single letter, such as h or m, has no leading zero. Remove the a
to display 24 hour time. For more format options, visit https://day.js.org/docs/en/parse/string-
format.
Property Description
Time Interval Specifies the intervals within an hour the user can select from the time dropdown. For
example, enter 15 for 15 minute periods within the hour such as 12:00, 12:15, 12:30, 12:45,
and so on.
See Also
1. Drag a URL element from the Build panel onto the canvas.
2. In the Properties panel, give the element a name in the Name field.
3. In Field Label, enter a label visible to the user.
4. (Optional) In the Error Text field of the Validation Options section, enter text to override the default
message displayed when the user does not enter the URL correctly.
5. (Optional) For additional properties, see Common OmniScript Element Properties Definitions.
See Also
URL Properties
URL properties are configurable from the Properties panel when you select a URL element. With the URL
element, enable users to enter a web address in your OmniScript.
Property Description
Error Text Overrides the default message displayed when the user does not enter the URL correctly.
See Also
NOTE
When using Vlocity admin tools in the Lightning Console, note that the process to launch a
Vlocity object home page (like the OmniScript Designer, Cards Designer, and so on) has
changed as of SFDC Winter '19. For the optimal experience, create a new primary tab by
CTRL-clicking the link (or Cmd-clicking on the Mac) in the Console's tab selection menu.
From the new primary tab, you can open objects in a sub-tab of that primary tab.
Cards are containers for a related group of information. They display Salesforce object information along
with discrete, clickable actions that change according to the context in which they appear and based on the
information that they contain. Build interfaces with Salesforce specific or external data sources.
The Vlocity Cards Framework features a card designer, a declarative tool used to build cards. Add content
to states and create conditions for any state to determine what content displays when. Accelerate
incremental development by previewing and testing your interface with actual data from a live Preview tab.
Save and activate the card to generate the component to add to your Lightning or Community page.
NOTE
Beginning with Vlocity Health and Insurance Summer '19, Vlocity supports Salesforce's
Lightning Web Components programming model with Vlocity Lightning Web Components.
Vlocity Lightning Web Components include components, functionalities, and templates
exclusive to LWC enabled cards. With LWC Cards you can use standard JavaScript and
HTML to modify and extend Vlocity products. See Vlocity Lightning Web Components.
Because everything gets built on industry-standard web technologies such as HTML5, CSS3, AngularJS
(for Angular Cards only), and Sass, you can perform deeper template branding and customization with your
web developers, as desired.
Enable Lighting Web Components in the Classic Card Designer to turn on LWC features and generate a
Lightning web component instead of an Angular component to add to your Lightning or Community page.
See LWC Cards.
FlexCard Designer
With the FlexCard Designer, build cards without code using a drag interface and WYSIWYG editing. Drag
elements, such as data fields, actions, data tables, charts, icons, images, and so forth, onto a canvas to
build the layout of your card. Create the look and feel of the card with graphic user interfaces (GUIs) built
into the designer to style individual elements. See FlexCards.
From one action element, add actions that enable your users to update OmniScripts, pass data from an
OmniScript to a FlexCard, embed cards inside each other, trigger events, create event listeners, and more.
Because the FlexCard Designer is built with the Lightning Web Components programming model, the
saved and activated FlexCard generates an LWC component to add to your Lightning or Community page.
FlexCards
Build customer-centric, industry-specific UI components and applications on the Salesforce platform with
FlexCards. Display Salesforce object information along with distinct, clickable actions that change
according to the context in which they appear and based on the information that they contain. Create and
design FlexCards with the FlexCard Designer, a declarative tool with a drag interface, WYSIWYG editing,
and graphic user interfaces to style individual elements. See FlexCard Designer.
Required Versions
Available beginning with Vlocity Insurance and Health Summer '20 and CME Fall '20.
Creating UI components with FlexCards is all about sourcing the data and displaying and organizing the
returned information in a meaningful way.
Cards
The FlexCard component contains a combination of pertinent information and links to processes within a
specific context based on the data source provided.
An account FlexCard, for example, can include unique account information, such as:
• Status
• Priority or service level agreement
• Creation date
• Company logo
• Closing a case
• Opening a new case
Each action can launch an OmniScript. Depending on the action type, an action can also update an
OmniScript, fire an event, open a web address or web app, display a flyout, or update a field values. See
Add an Action to a FlexCard.
Flyouts
You can design a card to launch an action that when clicked, opens a child card, Custom LWC, or an
OmniScript embedded in a popover or modal. A card flyout contains additional information and actions
related to the parent card. See Launch a Flyout from an Action on a FlexCard.
Data Sources
Choose from a number of data source options to retrieve data to display data from a Salesforce object or
API on your FlexCard. For a list of possible data source types, see FlexCards Data Source Reference.
Update the look of each element with the graphic user interfaces available in the Style panel when an
element is clicked. For example, to update the text for a data field, you can enter the name of a font, and
change the text color with a color picker interface. See Style FlexCard Elements.
Make your FlexCard responsive by setting widths for available viewport breakpoints. See Create
Responsive Elements on a FlexCard.
Publish Options
After activating your FlexCard, which generates a Lightning web component to add to a Lightning or
Community page, you can configure publishing options. For example, configure your component's icon, and
where your component is allowed to be published. See Configure Publish Options on a FlexCard.
Deploy FlexCards
After activating a FlexCard, you can add the generated LWC to a Lightning or Community page. See Add a
FlexCard to a Lightning Page. See Add a FlexCard to a Community Page.
FlexCard Designer
The FlexCard Designer is a declarative tool with a drag interface and WYSIWYG editing that makes it easy
to build user interface (UI) Lightning web components without code. Build interfaces rich in information and
with actions relevant to your customer's context. You can also create the look and feel of your FlexCard by
styling individual elements from graphic user interfaces (GUIs) built into the designer.
Required Versions
Available beginning with Vlocity Insurance and Health Summer '20.
Header (1), Canvas (2), Build panel (3), Properties panel (4), Style panel (5), Setup panel (6), Preview (7),
In-Product Help (8), Publish Options (9)
What's Next
Explore the FlexCard Designer. See Get to Know the FlexCard Designer.
Header (1), Canvas (2), Build panel (3), Properties panel (4), Style panel (5), Setup panel (6), Preview (7),
In-Product Help (8), Publish Options (9)
Header (1)
In the Header, view basic metadata about your FlexCard such as Author, Current Version, and Status.
Perform actions related to your FlexCard, such as Preview, Clone, Activate, Export, Add Custom CSS,
create a New Version, and access a list of resources from a Help link. When the FlexCard is active,
download its LWC, Deactivate, and configure Publish Options.
Publish Options (9) enables you to configure your generated FlexCard LWC's metadata values, such as
where the component can be published, API version, description, and more. Also add your own custom
component SVG icon to identify your generated LWC in the Experience Builder for Communities and
Lightning App Builder for Lightning pages. See Configure Publish Options on a FlexCard.
Canvas (2)
Build your card by dragging elements from the Build panel into a state on the Canvas. Rearrange, clone,
delete, and adjust the widths of your elements as needed.
Test the responsiveness of your FlexCard with the Viewport Dropdown. See how elements are positioned at
different viewport breakpoints. See View a FlexCard at Different Viewport Breakpoints.
Drag elements from the Build panel onto the Canvas to build the layout of your FlexCard. Drag all available
fields from a configured data source from the Fields list into a State. You can also add states to your
FlexCard, and embed Custom LWCs and reusable child FlexCards. See Add Elements to a FlexCard.
Configure element properties from the Properties panel when an element is selected on the Canvas. For
example, when a Field element is selected, you can update the Label, choose the data field value to
display, select the type of field it is, and more.
Style your FlexCard elements from the Style panel using a GUI that updates the look of elements in real-
time. Configure backgrounds, sizes, borders, padding, margins, height, fonts, and responsiveness. See
Style FlexCard Elements.
For custom design needs, create and apply custom CSS. Create CSS classes with an in-product code
editor with Intellisense features such as code completion, contextual prompts, and a color picker. Apply
custom classes created from the editor or from any style sheet accessible to the FlexCard, or apply inline
CSS styles. See FlexCards Element Custom CSS.
Save style settings on an element to use on multiple elements on the FlexCard. See Create a Custom Style
for a FlexCard Element.
Configure global options from the Setup panel. See Set Up a FlexCard in the FlexCard Designer.
Update your data source. Apply custom permissions to limit access to your FlexCard. Track Custom Data
on elements with tracking enabled.
Enable Multi-Language and OmniScript Support, set Session Variables, create Event Listeners, and more.
Preview (7)
(A) Preview your FlexCard in real-time to test its design and functionality. See Preview a FlexCard.
(B) Preview how a FlexCard appears on different devices, such as mobile, desktop, and tablet with
the Viewport Dropdown. See
(C) Add Test Parameters to preview your FlexCard with different parameters, such as record Ids, and
pagination limits.
Find context-sensitive help specific to an element or property using the FlexCard Designer's in-product help
feature.
(A) Access in-line information about specific properties by hovering over tooltip icons.
(B) View detailed documentation about an element's or feature's purpose and functionality with slide-out
help trays.
What's Next
Get started building FlexCards with the FlexCard Designer. See Get Started with FlexCards. Then, Create
a New FlexCard.
Required Versions
Available beginning with Vlocity Insurance and Health Summer '20.
• FlexCard Designer
With the FlexCard Designer, build dynamic, context-aware user interfaces using a drag UI with
WYSIWYG editing.
• Download FlexCard Sample DataPacks
Download sample DataPacks with configured FlexCard elements and feature implementations.
NOTE
A Managed FlexCard component is a component included in an org like those included in
Express or vertical orgs on install. An Unmanaged FlexCard component is one you create.
If you want to modify the component, you must open the managed FlexCard in the FlexCard Designer. A
managed component opened in the FlexCard Designer triggers the creation of an unmanaged component,
which is an exact copy of the managed component. Changes to the FlexCard only affect the unmanaged
version because the managed version can never be modified.
Required Versions
Available beginning with Vlocity Health and Insurance Spring '21 .
Beginning with Vlocity Insurance and Health Summer '20 , the FlexCard Designer enables you to preview
while you build dynamic context-specific user interfaces for customer interactions using a drag interface
with WYSIWYG editing. The FlexCard Designer is LWC only and does not support Angular. See FlexCard
Designer.
For latest changes and enhancements to the FLexCard Designer, see the releases notes.
Changes and Enhancements for Vlocity Health and Insurance Spring '21
Changes and Enhancements for Vlocity Health and Insurance Summer '20
Changes to UI Names
Changes in Functionality
See Also
• FlexCard Designer
Beginning with Vlocity Insurance and Health Summer '20 , the FlexCard Designer enables you to preview
while you build dynamic context-specific user interfaces for customer interactions using a drag interface
with WYSIWYG editing. The FlexCard Designer is LWC only and does not support Angular. See FlexCard
Designer.
Unsupported Features
• Smart Actions
• Add Metatags
• Templates
• Add Filter
• Edit Mode State
• Add Custom Page in Preview
• Edit JSON
• Refresh Preview
• Add Properties to a Target Name
• 'Copy to Clipboard' when viewing test data
See Also
• FlexCard Designer
Required Versions
Available beginning with Vlocity Insurance and Health Summer '20.
See Also
Preview FlexCard
Preview your FlexCard's appearance and functionality before publishing it to a Lightning or Community
page. See Preview a FlexCard.
Activate FlexCard
Activate your FlexCard to publish it to a Lightning or Community page. See Activate a FlexCard.
What's Next
Deploy your generated FlexCard LWC from the Lightning App Builder to a Lightning page or from the
Experience Builder to a Community page. See Add a FlexCard to a Lightning Page. See Add a FlexCard to
a Community Page.
See Also
• FlexCard Designer Changes and Enhancements
• FlexCard Designer Considerations
Beginning with Vlocity Insurance and Health Summer '20 , the FlexCard Designer enables you to preview
while you build dynamic context-specific user interfaces for customer interactions using a drag interface
with WYSIWYG editing. The FlexCard Designer is LWC only and does not support Angular. See FlexCard
Designer.
NOTE
You cannot change the theme once set. You will need to clone the FlexCard to change
the theme.
NOTE
You cannot change the author once set. You will need to clone the FlexCard to
change the author.
5. (Optional) Update the Title. The title is used to find your generated FlexCard LWC after activation in
the Lightning App Builder and Community Builder.
6. (Optional) Enable Is Child Card to embed the FlexCard inside another FlexCard. See Embed a
FlexCard Inside Another FlexCard.
7. (Optional) Enter the Description visible on the FlexCards home page.
8. Click Next.
1. In the Select Data Source Type step, select a data source type to retrieve data from a Salesforce
object or an external database. See FlexCards Data Source Reference.
2. Click Next.
3. In the Select Data Source step, configure the data source properties. For example, if you selected a
DataRaptor as your data source type, select an active DataRaptor, configure input parameters, and
additional options. See FlexCards Data Source Properties.
4. Click Next.
• If a Run-Time Variable has been added from the previous Select Data Source Type step, add the
Test Value.
• For each new variable, click + Add, and enter these properties:
1. Enter a Run-Time Variable, such as recordId. See FlexCards Context Variables.
2. Enter a Test Value, such as an Account record Id.
2. To drill down through the JSON data to pass a specific dataset to the FlexCard, enter the JSON path in
the Result JSON Path field. For example, enter Account.Cases to return data from the Cases node
only.
3. Click Fetch.
4. View a Table of the returned Test Response.
5. (Optional) Click JSON to view the returned results as JSON.
6. Click Save.
What's Next
Configure additional options. See FlexCard Setup Reference.
See Also
1. In the FlexCard Designer, drag the Action element from the Build panel into a state on the canvas.
2. (Optional) From the Properties panel, update the element name in the Element Name field.
3. Select the type of action to execute from the Action Type dropdown. For example, to launch an
OmniScript, select OmniScript. See FlexCards Actions Reference.
4. To configure settings specific to the type of action selected, see FlexCards Action Properties.
5. To disable tracking events, unselect Enable Tracking.
6. (Optional) To update the visible label for the action, enter a new label in the Label field.
7. (Optional) To update the action icon, from the Icon field, perform one of these tasks:
• Enter the name of the icon, such as utility:arrowdown. See Salesforce Lightning Design
System.
• Click the search icon in the input field, and perform one of the following tasks:
• Click to select an icon from the list available, and click Save.
• Search for an icon in the search field, click an icon to select it, and click Save.
8. (Optional) To show an icon without text, check Show Only Icon.
9. (Optional) To show a label without an icon, check Hide Icon.
10. (Optional) To display the action link as a button:
a. Check Display As Button.
b. Select a style option from the Variant dropdown. For a description of each variant, see Variations.
11. (Optional) To add conditions that must be met for the element to display, see Add Conditions to a
FlexCard Element.
What's Next
(Optional) To style your element, click Style to open the Style panel, and see Style FlexCard Elements.
1. From the FlexCard Designer, select a supported element on the canvas to add an action to. Or, drag a
supported element from the Build panel into a state on the canvas
2. From the Properties panel, click + Add Action.
3. Select the type of action to execute from the Action Type dropdown. For example, to launch an
OmniScript, select OmniScript. See FlexCards Actions Reference.
4. To configure settings specific to the type of action selected, see FlexCards Action Properties.
5. Click Save.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
Card Action
These properties are unique to the Card Action.
Property Description
Type Select the type of action to launch.
Type Description
Reload Reloads the FlexCard.
Remove Removes a card from the FlexCard component. For example, use for notifications and alerts.
Set Values Updates field values.
Update Data Source Changes the data source, or updates parameters of an existing data source.
Event Action
These properties are unique to the Event Action. See Trigger a Custom Event from an Action on a
FlexCard. See Trigger a Pubsub Event from an Action on a FlexCard.
Property Description
Bubbles Check to enable the event to bubble up through the DOM.
Channel Name Enter a channel name for the pubsub event.
Composed Check to enable the event to pass through the shadow boundary.
Event Name Enter the name of the custom event.
Event Type Select an event type.
Input Parameters Enter parameters to pass contextual data to the event as key/value pairs.
Flyout Action
These properties are unique to the Flyout Action. See Launch a Flyout from an Action on a FlexCard.
Property Description
Attributes Set attributes available from the flyout's component. For example, if an OmniScript requires a ContextId
be set, enter ContextId as Key and {recordId} as Value.
Data Node To pass parent data to the Child FlexCard, select a data node.
Flyout Select the component to display in the flyout.
Flyout Type Select the type of component to display.
Layout Type Select a theme for the flyout.
Open Flyout In Select the flyout's container type. When enabling a flyout as a clickable event on an element such as a
Block or Menu element, this feature defaults to modal and is disabled because popover positioning cannot
be controlled.
Reset Component On Resets the component to its on load state when the flyout closes.
Close
Navigate Action
These properties are unique to the Navigate Action. See Navigate from a FlexCard with the Navigate
Action. See PageReference Types.
OmniScript Action
These properties are unique to the OmniScript Action. See Launch an OmniScript from a FlexCard.
Property Description
Context ID Select a data field to use as the ContextId, such as {'AccountId'}.
Input Parameters Enter parameters to pass contextual data to the action as key/value pairs.
Layout Type Select a theme for the layout.
OmniScript Select the OmniScript to launch.
Open Target In Select whether to open the target page in the current window or a new tab/window.
Visualforce Page Override the default Visualforce Page that displays the OmniScript.
Property Description
Input Parameters Enter the OmniScript data fields to update.
Parent Node Point to a specific data node in the OmniScript JSON to update. Select from the merge fields available from the
data source or enter a data node manually.
Vlocity Action
These properties are unique to the Vlocity Action. See Add a Vlocity Action to a FlexCard.
Property Description
Action Name Enter a visible name for the action.
Context ID Select a data field to use as the ContextId, such as {'AccountId'}.
Fetch Action Name From Datasource Select the action name from a data source field.
Input Parameters Enter parameters to pass contextual data to the action as key/value pairs.
Object Select the sObject.
Open Target In (Disabled by default) Opens target in the current window or a new tab/window.
NOTE
To create an email link, see Create an Email Link from a FlexCard Navigation Action.
What's Next
To style your action element, click Style to open the Style panel, and see FlexCards Action Style
Properties.
What's Next
To style your action element, click Style to open the Style panel, and see FlexCards Action Style
Properties.
What's Next
To style your action element, click Style to open the Style panel, and see FlexCards Action Style
Properties.
CAUTION
When embedding a component, confirm that it isn’t called multiple times. See Fix Cyclic
Redundancy When Embedding FlexCard Components.
NOTE
The component must be active to select it from the list of available components.
5. (Optional) To use the data source from the parent FlexCard, click into Data Node and select what data
to send to the child.
Node Description
{records} Send all data.
{records[#]} Send all the data of a specific record. {records[0]} = first record. {records[1]} = second record. And so on.
{record} Send just the current record's data, such as when Repeat Records is disabled in the Setup panel or only
one record is requested from a query.
{record.FieldName} Send the record object that belongs to the State. For example, if {record.Product} is an object or array
with additional data, select it. But, if you want to send a data field, use the Attributes property.
{record.attributes} Send all Attributes for the current record.
6. (Optional) To set attributes available from the flyout's component to use on the child component, click +
Add New next to Attributes.
a. Enter the name of an attribute in the Key field, such as ContextId from an OmniScript
component whose ConetxtId must be passed to the FlexCard.
b. In the Value field, enter a value as a string or merge field, such as {Id}.
c. In the child component, use the {Parent} context variable in supported fields. For example,
enter {Parent.Id} in the child component's data source Input Map Value field to use the
parent's Account Id as the child's contextId.
7. (Optional) Select whether to display the flyout as a window or popover from the Open Flyout In
dropdown.
NOTE
When enabling a flyout as a clickable event on an element, this feature defaults to
Modal and is disabled because popover positioning can’t be controlled.
8. (Optional) To reset the component to its load state when the flyout closes, select Reset Component
On Close.
9. (Optional) To configure other options common among all Action properties, see FlexCards Action
Properties.
What's Next
To style your action element, click Style to open the Style panel, and see FlexCards Action Style
Properties.
8. (Optional) If you selected an LWC OmniScript, from Console Tab Icon, select an icon to display in the
subtab of a console after the OmniScript Action link is clicked. For example, select
standard:account for an OmniScript that updates account information.
9. (Optional) To pass contextual data as a key/value pair, click + Add New next to Input Parameters,
and perform the following tasks:
a. Enter a variable name in the Key field.
b. Enter the variable value in the Value field.
10. (Optional) Select whether to open the OmniScript in the current tab or a new tab, select from the Open
Target In dropdown.
11. (Optional) To configure other options common among all Action properties, see FlexCards Action
Properties.
What's Next
To style your action element, click Style to open the Style panel, and see FlexCards Action Style
Properties.
1. Add and configure the OmniScript Action element on a FlexCard. See Launch an OmniScript from a
FlexCard.
2. Add the FlexCard to a Lightning page. See Add a FlexCard to a Lightning Page.
See Also
1. Create a community page with the URL /lwcos. Enter any name as the Community page name. See
Creating Custom Pages with Community Builder.
2. Add a Vlocity LWC OmniScript Wrapper component to the /lwcos Community page. See Launch
an LWC OmniScript with LWC OmniScript Wrapper.
3. Add the card to the Community page that launches the action, such as the Home page or Record
Detail page. See Add a FlexCard to a Community Page.
1. Create a Community page with the URL /os. Enter any name for the page name. See Creating
Custom Pages with Community Builder.
2. Add a Vlocity OS Player component to the /os page. See Configuring the Vlocity OS Player Lightning
Component.
3. Add the card to a Community page from where you want your action to launch, such as the Home
page or Record Detail page. See Add a FlexCard to a Community Page.
First, you create the FlexCard that displays the customer's available devices. Each device has a name, an
image and a Toggle element.
Next, you configure an Update OmniScript Action on the Toggle element to pass the value of the action
(true or false), and other device or account information, to the OmniScript.
Finally, you build the OmniScript that walks a customer through the process of selecting the device and
suspension date range, before submitting the request.
What's Next
Embed the FlexCard inside an LWC OmniScript. See Embed FlexCards in an LWC OmniScript.
See Also
• Preview a FlexCard
The sample DataPack demonstrates how to prefill data in an OmniScript when a user clicks an Update
OmniScript action from a FlexCard embedded in the OmniScript. The FlexCard action passes data to the
OmniScript.
What's Included
See Also
You can also trigger a custom event from an element that notifies the FlexCard of the event occurring and
performs an action accordingly. For example, add a Toggle element to a FlexCard that when clicked,
updates Field values on the same FlexCard it's on.
IMPORTANT
Don’t use these reserved names: reload, updatedatasource, remove.
5. (Optional) To enable the event to pass through the shadow DOM boundary, select Compose. See
Configure Event Propagation.
6. (Optional) To enable the event to bubble up through the DOM, select Bubbles. See Configure Event
Propagation.
7. (Optional) To pass contextual data as a key/value pair, click + Add New next to Input Parameters,
and perform the following tasks:
a. Enter a variable name in the Key field.
b. Enter the variable value in the Value field.
8. (Optional) To configure other options common among all Action properties, see FlexCards Action
Properties.
9. To style your action element, click Style to open the Style panel, and see FlexCards Action Style
Properties.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
The sample DataPack demonstrates how to update a data field on a FlexCard from an Action element in an
embedded child FlexCard.
What's Included
NOTE
Activate the child FlexCard to see it in the parent.
Import DataPack
1. Download the DataPack here: demoParentChildCustomEvent.json.
2. Import the DataPack. See Import a FlexCard.
3. If you didn't activate the demoChildFlexCardCustomEvent FlexCard during the import process, from
the FlexCards home tab, click the FlexCard name, select the checkbox, and click Activate. The child
FlexCard must be active to view inside a parent.
4. Click the Trigger Parent action element on the demoParentFlexCardCustomEvent FlexCard to see
the Custom Event in action.
See Also
• FlexCards Action Properties
• Download FlexCard Sample DataPacks
The Filter FlexCard has Toggle elements and a Pubsub Event Action element. Each Toggle element has
a Set Values action that updates the data values with a user-selected value. The Pubsub Event Action
displayed as an Apply button, has an update event, which sends the updated data values as input
parameters to the Product List FlexCard.
When a user selects a filter, such as <$2000, and clicks the Apply button from the Filter FlexCard, only
products that cost less than $2000 are visible in the Product List FlexCard.
IMPORTANT
Don’t use these reserved names: reload, updatedatasource, remove.
6. (Optional) To pass contextual data as a key/value pair, click + Add New next to Input Parameters,
and perform the following tasks:
a. Enter a variable name in the Key field.
b. Enter the variable value in the Value field.
7. (Optional) To configure other options common among all Action properties, see FlexCards Action
Properties.
8. To style your action element, click Style to open the Style panel, and see FlexCards Action Style
Properties.
What's Next
Create an event listener on a FlexCard to listen for your event. See Add an Event Listener to a FlexCard.
See Also
The sample DataPack demonstrates how to trigger events that update the values of data fields.
What's Included
NOTE
The Record Index is set to 1 so that only the Field value in the second record
returned from the custom data source is updated.
See Also
IMPORTANT
If you select SOQL Query and SOSL Search, you can’t change the data source for
security reasons. However, you can update the parameters.
What's Next
To style your action element, click Style to open the Style panel, and see FlexCards Action Style
Properties.
5. In the Key field, enter the name of a field returned from a data source.
6. In the Value field, enter a new field value as a string or merge field, such as New Value or {Name}.
7. (Optional) To configure other options common among all Action properties, see FlexCards Action
Properties.
What's Next
To style your action element, click Style to open the Style panel, and see FlexCards Action Style
Properties.
What's Next
To style your action element, click Style to open the Style panel, and see FlexCards Action Style
Properties.
What's Next
To style your action element, click Style to open the Style panel, and see FlexCards Action Style
Properties.
Beginning with Vlocity Insurance and Health Summer '20 , the FlexCard Designer enables you to preview
while you build dynamic context-specific user interfaces for customer interactions using a drag interface
with WYSIWYG editing. The FlexCard Designer is LWC only and does not support Angular. See FlexCard
Designer.
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. (Optional) To adjust the width of the canvas while building your FlexCard, select a size from the canvas
size dropdown. See FlexCards Element Responsiveness.
3. To add an element to a state from the Build panel, perform one of these tasks:
a. To add an element from a search:
i. In the search field, enter the name of an element, such as Action, or a Field element, such as
Email.
ii. Drag the element from search results into a state on the canvas.
b. To add an element from the lists of available elements:
• To add data fields, perform one of these tasks:
• Click Fields, to reveal a list of data fields available from the data source, and drag one or
more fields into a state on the canvas.
• From the Elements list, drag the Field element into a state onto the canvas.
• To add other components such as an action, data table, menu, icon, custom LWC, and so forth,
drag the element from the Elements list into a state on the canvas. See FlexCards Elements
Reference.
NOTE
When you drag an element next to another element, it takes up the remaining with of
the container. For example, if you drag an Icon element next to a Field element whose
width is 10 parts of the 12 column grid, the Icon element will take up the remaining 2
columns. See FlexCards Element Responsiveness.
4. To configure the element, click the element to update its properties from the Properties panel.
TIP
To easily distinguish between elements, update the Element Name. When you hover
over or click an element on the canvas, the element name is viewable as a blue tab
with white text.
5. (Optional) To adjust the width of the element, hover over the square box on the right border until your
mouse pointer icon becomes a drag icon. Click and slide the square box right or left to increase or
decrease the width.
NOTE
To make the width of the element responsive to the viewport, see Create Responsive
Elements on a FlexCard.
6. (Optional) To style your element, click Style to open the Style panel, and see Style FlexCard Elements.
7. (Optional) To add conditions that must be met for the element to display, see Add Conditions to a
FlexCard Element.
8. (Optional) To add an additional state, drag the State element from the Elements list of the Build panel
onto the canvas, and follow steps 4 through 7. See Add a State to a FlexCard.
NOTE
Each FlexCard has a default state that cannot be deleted.
9. To rearrange, duplicate, or delete elements, see Arrange, Duplicate, and Remove Elements on a
FlexCard.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
• Activate a FlexCard
• Define Metadata Values from the FlexCard Designer
• Add a Custom Component SVG Icon to a FlexCard
5. (Optional) To add conditions that must be met for the element to display, see Add Conditions to a
FlexCard Element.
6. (Optional) To style your element, click Style to open the Style panel, and see Style FlexCard Elements.
1. To add an element from the Build panel, drag a field from the Fields list, or an element from the
Elements list into the block element.
For example, drag address related Account fields into a block element, such as BillingCity,
BillingCountry, and so on.
NOTE
The Element Name of any new element added to a block is prepended with the word
Block until you update the name in the Properties panel.
2. To add an element into a block element from a state, click, hold, and drag the element into the block
element.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
See Also
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. Drag a Chart element from the Build panel into a state on the canvas.
3. (Optional) From the Properties panel, update the element name in the Element Name field.
4. (Optional) To display a title at the top of the chart, which is hidden by default, update these properties:
• In the Title field, enter a title.
• Deselect Hide Header.
5. From the Type dropdown, select the type of chart to display.
6. (Optional) To adjust your chart's proportions, update the Aspect Ratio. See FlexCard Chart Element
Aspect Ratio.
7. (Optional) To manually set the height, overriding the Aspect Ratio, enter a number in the Chart
Height field. The height is in pixels, such as 300px. You can enter just the number without the 'px'
suffix, such as 300.
NOTE
This feature is visible when the Maintain Aspect Ratio feature is disabled.
8. From the Label Node dropdown, select the field whose values are used to categorize the data, such
as Name to display Account names.
9. From the Value Node dropdown, select the field whose values are used to populate the chart, such as
AnnualRevenue.
IMPORTANT
The values must be numbers and have the same count as the field selected in Label
Node.
10. Select the color scheme for your chart from the Color Palette dropdown.
NOTE
Each color palette has up to 6 unique colors. If there are more than 6 values in your
chart, the colors repeat from the beginning.
11. (Optional) To add conditions that must be met for the element to display, see Add Conditions to a
FlexCard Element.
12. (Optional) To style your element, click Style to open the Style panel, and see Style FlexCard Elements.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
The Aspect Ratio is the chart's width to height ratio. By default, the aspect ratio is 1, such as 1:1. The chart
width is always the maximum width available given the number of columns it spans on the 12-column grid
of the canvas in the designer. The height is proportionate to the chart's width. Adjusting the ratio adjusts the
height.
To make the chart shorter, given the width of the element, increase the number of the Aspect Ratio. For
example, if the ratio is at the default 1, enter 2 to make the height about half the default height. In other
words, if the original width and height of a 7 column Chart element are 600px and 300px, and the aspect
ratio is 2 then the height is 150px, and the width remains the same.
To make the chart taller, given the width of the element, decrease the number of the Aspect Ratio. For
example, if the ratio is at the default 1, decrease it to .5 to make the height twice the default height. In other
words, if the original width and height of a 7 column Chart element are 600px and 300px, and the aspect
ratio is .5, the height is 600px and the width remains the same.
To set fixed proportions, you can enable the Maintain Aspect Ratio feature. When this feature is enabled,
given the width, the height becomes exactly X times the width. For example, if the Aspect Ratio is 1, the
width and height are exactly the same so that your chart is a square. If the Aspect Ratio is 2, the height is
half of the width. In other words, if the width of a 7-column Chart element is 600px, and the aspect ratio is 2,
then the height is 300px.
To override the Aspect Ratio, manually set the height for your chart with the Chart Height feature. This
feature is visible when Maintain Aspect Ratio is disabled. The height is in pixels, such as 300px.
Here is a summary of how width and height are determined with each feature:
See Also
See Also
CAUTION
When embedding a component, confirm that it isn’t called multiple times. See Fix Cyclic
Redundancy When Embedding FlexCard Components.
1. In the FlexCard Designer, drag the FlexCard element from the Build panel into a state.
2. (Optional) From the Properties panel, update the element name in the Element Name field.
3. Click into the FlexCard Name field, and select a reusable FlexCard to embed. That is, a FlexCard
where Is Child Card is enabled.
IMPORTANT
If your parent FlexCard is OmniScript Support enabled, only an OmniScript
Support enabled child FlexCard can be embedded. See Enable OmniScript Support
on a FlexCard.
4. (Optional) To use the data source from the parent FlexCard instead of the child's data source:
a. Click into the Data Node field, and select an available data node to pass to the child FlexCard.
Node Description
{records} Send all data.
{records[#]} Send all the data of a specific record. {records[0]} = first record. {records[1]} = second record. And
so on.
{record} Send just the current record's data, such as when Repeat Records is disabled in the Setup panel
or only one record is requested from a query.
{record.FieldName} Send the record object that belongs to the State. For example, if {record.Product} is an object or
array with additional data, select it. But, if you want to send a data field, use the Attributes
property.
b. Open the child FlexCard selected in the FlexCard Name field, and enter data from the parent
FlexCard:
• As a merge field: Enter data fields available from the FlexCard as merge fields, such as {Name},
in any supported input field such as the Text element.
• As an element: Configure the child FlexCard with the same data source as the parent. This way
the same data fields available in the parent appear in the child. Drag Field elements, Datatable
elements, and so forth, onto the canvas.
5. (Optional) To pass attributes from the parent FlexCard to a child FlexCard, in the Attributes section:
a. Click + Add New.
b. In the Attribute field, enter a name for the attribute to pass, such as postalcode or Id.
c. Click into the Value field and select a merge field, such as {BillingPostalCode} or {Id}. Or
enter text.
d. Open the child FlexCard selected in the FlexCard Name field, and enter the {Parent} context
variable in a supported field.
Enter {Parent.Id} in the data source's Input Map Value field to use the parent's record object Id
as the value of the child's contextId.
Parent FlexCard: Attributes are defined and passed in the parent FlexCard on the FlexCard
Element.
Child FlexCard: Use attributes passed from the parent FlexCard in supported fields in the child
FlexCard.
IMPORTANT
To pass a parent attribute to a grand child, pass the {Parent} to the child, then pass
it again from the child to the grand child.
6. (Optional) To style your element, click Style to open the Style panel, and see Style FlexCard Elements.
NOTE
If your child FlexCard displays multiple records and you want to show them side by
side instead of stacked, see Display Records Side-By-Side on a FlexCard.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
See Also
The sample DataPack demonstrates how to pass data in two ways. Pass specific data from the parent
FlexCard as an attribute to a child FlexCard with its own data source. Pass all records from the parent
FlexCard to the child FlexCard which has no data source.
What's Included
The demoEmbedChildCFCpassAttribute child FlexCard in the DataPack includes the following features:
• A list of Contacts based on the Account Id of the parent FlexCard it's embedded into.
• A data source uses the {Parent.AccountId} context variable as the context Id to get the list of
Contacts.
The demoEmbedChildPFCpassRecords parent FlexCard in the DataPack includes the following features:
• The Repeat Records feature is disabled in the Setup panel to use the parent card only as a container for
the child card. See Disable Record Looping on a FlexCard.
• A SOQL Query data source gets a list of an Account's Cases.
• A FlexCard element passes all parent records through the {records} Data Node to the child FlexCard.
The demoEmbedChildFCpassRecords child FlexCard in the DataPack includes the following features:
See Also
For example, if you have a carousel with custom styling and functionality, you can embed it in a FlexCard
state. Then, configure the component's custom attributes, such as thumbnaillimit and mode.
CAUTION
When embedding a component, confirm that it isn’t called multiple times. See Fix Cyclic
Redundancy When Embedding FlexCard Components.
1. In the FlexCard Designer, drag a Custom LWC element from the Build panel into a state on the canvas.
2. (Optional) From the Properties panel, update the element name in the Element Name field.
3. Click into the Custom LWC Name field, and select a custom LWC to embed.
NOTE
The Custom LWC is rendered in Preview only.
NOTE
The names of Custom LWCs created in the FlexCard Designer are appended with cf.
For example, if your Child FlexCard name is AccountCases, the Custom LWC name
is cfAccountCases.
IMPORTANT
The Name of a custom LWC attribute must match the custom LWC attribute's
markup name. For example, the targetType attribute from the NavigateAction
LWC must be written as target-type.
c. Click into the Value field and select a merge field such as {Number}, or enter text such as 5.
5. (Optional) To add conditions that must be met for the element to display, see Add Conditions to a
FlexCard Element.
6. (Optional) To style your element, click Style to open the Style panel, and see Style FlexCard Elements.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
See Also
Configured Datatable
1. In the FlexCard Designer, drag a Datatable element from the Build panel into a state on the canvas.
2. (Optional) From the Properties panel, update the element name in the Element Name field.
3. To update columns, click the pencil icon next to Column to launch the Add DataTable Columns
modal.
• To add an available data field column, click Add Column.
• To delete a data field column, click the trash icon of the data field to remove.
• To update data field column labels, click into a field under Field Label.
• To update the ability to sort a specific data field column, change the value for Is Sortable to false or
true. Is Sortable must be selected under Attributes in the Properties panel.
• To update the ability to search a specific data field, change the value for Is Searchable to true or
false. Is Searchable must be selected under Attributes in the Properties panel.
• To update the type of data for a specific data field column, such as currency, date, number, and so
on, update Type.
• To update the ability to edit the value of a data field, change the value for Is Editable to true or false.
Cell Level Edit must be checked under Attributes in the Properties panel.
• To update the ability for a user to hide or show specific data field columns, change the value for Is
User Selectable to true or false. User Selectable Column must be checked under Attributes in the
Properties panel.
• To update whether a data field is hidden or shown by default, change the value for Is Visible to true
or false. If this property is set to false and Is User Selectable is set to true, the user can make the
column visible.
4. Click Save to save updates and close modal.
5. (Optional) To add pagination to the data table:
1. To set how many records per page to display, enter a number in the Page Size field.
2. To set a max number of pagination links to display, enter a number in the Page Limit field.
6. (Optional) To enable the ability to delete a row based on a data field value returning as false, enter the
name of the data field column in the Row Delete Dependent Column.
For example, let's say your table is a list of account cases and has a record field IsEscalated whose
value is either true or false. When a record's IsEscalated value is false, a user can delete the record. If
true, the trash icon is disabled and a user cannot delete the record.
IMPORTANT
Row Delete must be enabled, and the column must have a boolean (true or false)
value.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
Attributes
Property Description
Cell Level Edit Enable support for cell-level inline-editing. Select which columns are editable from the Column property.
Draggable Enable the ability to rearrange rows by dragging them up or down.
Extra Class Enter a class appended to the container of the element. Select from a class defined in the Add Custom
CSS feature of the FlexCard Designer or any style sheet available to the FlexCard.
Fire Event On Delete Fire a delete custom event when a row is deleted.
Confirm
Hide Table Header Hide the table header.
Is Searchable Enable the ability to search all column values. Limit which columns are searchable from the Column
Property.
Is Sortable Enable support for sorting all columns. Limit which columns are sortable from the Column Property.
Page Limit Specify how many page navigation links to add to pagination. The Page Size property must be enabled.
Page Size Enable pagination by specifying how many records to display on each page. If using Group By, the
Page Size is determined by the number of groups instead of the number of rows.
Row Delete Enable the ability to delete a row from the FlexCard. The record is not deleted in the database.
Row Delete Dependent Delete a row based on a data field value returning as false. The field must have a boolean (true or false)
Column value and Row Delete must be enabled.
Row Level Edit Enable support for row-level inline-editing.
Show Confirm Modal Display a confirmation modal before a row gets deleted.
Before Row Delete
User Selectable Column Let users select which columns are visible. Select specific columns from the Column property.
User Selectable Row Add a checkbox at the beginning of each row to let users select a row.
Group Attributes
Property Description
Active Groups Expand all groups.
Group By Group table rows by a data field.
Group Order Sort groups in ascending or descending order.
Group Wrapper Class Add a class to the wrapper surrounding each group name.
Hide Extra Column Remove the space below and above the group name.
Sort Across Groups Sort groups and rows within each group when a column head is clicked. By default, sorting happens within
each group when a column head is clicked. View functionality in Preview.
Column Properties
These properties are visible in the Add DataTable Columns modal when you click the Column property.
Property Description
Field Label Update the name of the field column. By default, the field label is the Field Name.
Field Name Select the field column to display.
Is Sortable Select which fields are sortable. Is Sortable must also be enabled under Attributes in the Properties panel.
Is Searchable Select which fields are searchable from the search form. Is Searchable must also be enabled under Attributes
in the Properties panel.
Type Select the type of data the field column displays. For example, if an Account field name is AnnualRevenue,
select Currency.
Is Editable Select which field column a user can edit. Cell Level Edit must also be enabled under Attributes in the
Properties panel.
Is User Selectable Select which field columns a user an hide or show. User Selectable Column must also be enabled under
Attributes in the Properties panel.
Is Visible Select which field columns are hidden or visible by default. Use with Is User Selectable to enable users to
display hidden field columns.
See Also
The sample DataPack demonstrates how to configure a data table with common settings, such as
searchability, sortability, and more.
What's Included
A FlexCard with a DataTable element with the following features:
See Also
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. To add a data field, from the Build panel, perform one of these tasks:
• Click Fields to view the list of available data fields, and drag a data field into a state on the canvas.
• Drag the Field element from the Elements list into a state on the canvas.
3. (Optional) From the Properties panel, update the element name in the Element Name field.
4. (Optional) Enter a visible label in the Label field.
5. (Optional) Add placeholder text in the Placeholder field.
6. (Optional) To set a data type, such as text, currency, and so forth, select one from the Field Type
dropdown. The default is Text.
NOTE
To configure additional properties for your selected Field Type, see FlexCards Field
Properties.
IMPORTANT
If you select Date as a Field Type, and the field element is a string that represents a
date, make sure that the date value matches the user locale format. For example, if
your date value comes from a Custom data source such as is [{"DOB" :
"28-03-2015"}, and your locale is en_US, which has a M/D/YYYY format, because
months only go up to 12, the number 28 will not read properly. The final date will be
displayed incorrectly. Instead, if your application does not require localization, update
the format to match the string output, such as DD/MM/YYYY. Or select Text as a
Field Type.
7. If you dragged the Field element from the Build panel, in the Output field, click into the field and select
from the available data fields returned from the data source.
8. (Optional) When Date is selected for Field Type, you can enable Use Absolute Date to prevent
converting the date based on the timezone when Format is updated.
NOTE
When this feature is not enabled, the date may display one day ahead or behind, such
as 12/16/2020 or 12/14/2020 instead of 12/15/2020 if the logged-in user's timezone is
not the same as the timezone where the record was created.
IMPORTANT
Do not enable if Date is the Field Type and your field element returns a date as a
string, such as data from a Custom data source that looks like [{"DOB" :
"28-03-2015"}], and does not match the defined format. This will throw an error.
See the notice in Step 6.
9. (Optional) If your FlexCard is used on an application accessible across different locales, enable Use
User Locale For Formatting to use the logged-in user's locale to determine the format of your date,
time, and currency.
NOTE
By default, the FlexCard Author's user locale determines the format.
IMPORTANT
Do not enable if Date is the Field Type and your field element returns a date as a
string, such as data from a Custom data source that looks like [{"DOB" :
"28-03-2015"}], and does not match the defined format. This will throw an error.
See the notice in Step 6.
10. (Optional) To add conditions that must be met for the element to display, see Add Conditions to a
FlexCard Element.
11. (Optional) To style your element, click Style to open the Style panel, and see FlexCards Field Style
Properties.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
1. From the FlexCard Designer, drag an Icon element from the Build panel into a state on the canvas.
2. (Optional) From the Properties panel, update the element name in the Element Name field.
3. From the Type dropdown, select an icon type.
4. To configure a Custom icon, enter the source of the icon in the Source field.
5. To configure Salesforce SVG icon properties:
a. To select the icon, from the Icon field, perform one of the following tasks:
• Enter the name of the icon, such as utility:arrowdown. See Salesforce Lightning Design
System.
• Click the search icon in the input field, and perform one of the following tasks:
• Click to select an icon from the list available, and click Save.
• Search for an icon in the search field, click an icon to select it, and click Save.
b. (Optional) Select a style variant from the Variant dropdown.
6. (Optional) To update the size of the icon, select a new size from the Size dropdown.
7. To link the icon to an action, click + Add Action. To configure action properties, see FlexCards Action
Properties.
8. (Optional) To add conditions that must be met for the element to display, see Add Conditions to a
FlexCard Element.
9. (Optional) To style your icon element, click Style to open the Style panel, and see FlexCards Icon Style
Properties.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
See Also
NOTE
All labels in the Properties panel have Custom Label support.
1. From the FlexCard Designer, drag an Image element from the Build panel into a state on the canvas.
2. (Optional) From the Properties panel, update the element name in the Element Name field.
3. Select the Image Source from one of these options:
• To display an image from an external source, enter the absolute URL of the image
IMPORTANT
If your image doesn't show, add the URL of the image to the CSP Trusted Sites list
in your org. If you're adding your FlexCard to a Community, you must add the URL
to the CSP Trusted Sites list. See Content Security Policy (CSP).
NOTE
Uploaded files are saved to your org's library of documents for reuse.
• To use a file from a library in your Salesforce CRM Content or Salesforce Files:
1. Click the search icon.
2. Select an image from the Select an Image from Content Document dropdown.
3. Click Save.
4. (Optional) To adjust the size of the image relative to the canvas size, select an option from the Size
dropdown.
NOTE
By default, Fit Content is selected, enabling the image to fill the container of the
Image element, or the container of a Block element if the image is inside a Block
element.
On the canvas, adjust the element size to fit your image as needed.
5. For accessibility, in the Alternative Text field, enter text describing the image.
6. (Optional) Enter a Newport, SLDS, or custom CSS class in the Extra Class field.
NOTE
By default, slds-image--card slds-align_absolute-center populate the
field.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
See Also
1. From the FlexCard Designer, drag a Menu element into a state on the canvas.
2. (Optional) From the Properties panel, update the element name in the Element Name field.
3. To add an action to the menu, see Add Actions.
4. (Optional) In the Label field, enter the visible label of the menu button.
5. (Optional) To change the default menu button icon, from the Icon field perform one of the following
tasks:
• Enter the name of the icon, such as utility:arrowdown. See Salesforce Lightning Design
System.
• Click the search icon in the input field, and perform one of the following tasks:
• Click to select an icon from the list available, and click Save.
• Search for an icon in the search field, click an icon to select it, and click Save.
6. (Optional) To disable scrolling in the dropdown when there are more than 5 menu items, uncheck
Enable Overflow.
7. (Optional) To change the position of the dropdown menu, select a new position from the Dropdown
Position dropdown. The default is left.
8. (Optional) To change the size of the dropdown menu, select a new size from the Dropdown Size
dropdown.
9. (Optional) To select a style variant, select a new style from the Variant dropdown.
10. (Optional) To change the position of the icon in the menu button relative to the label, select a new
position from the Icon Position dropdown.
11. (Optional) To adjust the size of the icon in the menu button, select a new size from the Icon Size
dropdown.
12. (Optional) To add conditions that must be met for the element to display, see Add Conditions to a
FlexCard Element.
13. (Optional) To style your menu element, click Style to open the Style panel, and see FlexCards Menu
Style Properties.
Add Actions
For each new action item, perform these tasks:
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
See Also
The Text element's rich text editor adds an HTML div for each text section to build the layout of the
element. Add SDLS and NDS classes and other formatting options to each div to style your text.
Add Text
1. In the FlexCard Designer, drag the Text element from the Build panel into a state on the canvas.
2. To update the default text, from the Properties panel, click into the rich text editor to override the
content.
3. (Optional) To add a new block of text, click return to create a new div.
4. (Optional) To add data field values, select from the Fields list in the rich text editor. You can also
manually add the field by entering the field name surrounded by single curly braces, such as {Type}.
5. (Optional) To add custom labels, enter the {Label.customLabelName} merge field anywhere in the rich
text editor. For example, to add a custom label for AccountName, enter {Label.AccountName}. See
Add Custom Labels to Supported Fields on a FlexCard.
6. (Optional) To add a context variable as a merge field, enter it any div. For example, enter
{User.userProfileName} to add the logged-in user's profile name. See FlexCards Context
Variables.
NOTE
The rendered User global context variable is visible at run time only, such as in
Preview or when FlexCard is published to a page.
What's Next
(Optional) To style your element, click Style to open the Style panel, and see Style FlexCard Elements.
See Also
See Also
You can also update the data source with the selected value of the Toggle element for all toggle types
except Checkbox Group and Checkbox Group Button.
1. In the FlexCard Designer, drag a Toggle element from the Build panel into a state on the canvas.
2. (Optional) From the Properties panel, update the element name in the Element Name field.
3. From the Toggle Type dropdown, select the type of toggle element to use. See FlexCard Toggle
Element Type Reference.
4. To configure the selected toggle type, see FlexCards Toggle Properties.
5. (Optional) To disable the element, from the Disabled field, select from one of the following options:
• Select true.
• To disable to toggle element based on the boolean (true or false) value of a merge field, select the
merge field from the dropdown.
For example, on a FlexCard whose data source returns Cases, you can disable a toggle element if
the record's IsEscalated field is set to true.
NOTE
The merge field must have a boolean (true or false) value. If the value is a string,
Disabled returns false.
6. To configure the action triggered on click of the element, see Add an Action below.
7.
8. (Optional) To add a class to the element's container, enter a class in the Extra Class field.
9. (Optional) To add conditions that must be met for the element to display, see Add Conditions to a
FlexCard Element.
10. (Optional) To style your element, click Style to open the Style panel, and see Style FlexCard Elements.
NOTE
If the selected Toggle Type is a Checkbox Button, see FlexCards Toggle Style
Properties.
Add an Action
To configure the action that gets triggered when the element is clicked:
NOTE
To pass the value to an action without Input Parameters, such as a Navigate action
whose target is a Web Page, enter the key/value pair as URL parameters. For
example, /apex?keyname={element.value}.
What's Next
Preview your FlexCard. See Preview a FlexCard.
Dual Stateful Diplays an icon button that enables switching between two options. Each state can display
Button a unique icon.
Stateful Button Displays an icon button that enables switching between selected and unselected options
when clicked, and a hover state on focus. Configurable options include adding a label and
unique icons for all three states, and adding a style variant, such as Brand.
Stateful Icon Displays an icon button that enables switching between two options. The same icon
displays for both states.
See Also
The sample DataPack demonstrates how the different toggle types look, and how to update data fields with
new values pass from the elements.
What's Included
The demoToggleDisplayActionUpdate FlexCard in the DataPack includes the following features:
• Displays all Toggle Types. See FlexCard Toggle Element Type Reference.
• Enables and configures the Checkbox Group, Checkbox Button, and Checkbox Toggle elements to
update the data source with new values. See FlexCards Toggle Properties.
• A Checkbox Group Button Toggle element with a Card action that updates a Field value. See Add an
Action to Update Field Values on a FlexCard.
See Also
See Also
IMPORTANT
Applied conditions are visible in Preview only.
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. Select an element to add conditions to, such as an Icon element.
3. In the Properties panel, click the pencil icon next to Conditions.
4. Click + Add Condition.
5. To create basic conditions:
a. Click into Data Field, from the list of data fields, select a data field to filter. For example, select
Status for a Case record.
b. To define the relationship between the data field and a value, celect the Operator from the
dropdown, such as =.
c. In the Value field, enter the value to check against. For example, enter Escalated.
d. If adding another condition, click + Add Condition and select AND or OR from the dropdown
between conditions:
• Select AND if all conditions must be met.
For example, Status is Escalated and Priority is High.
NOTE
If there is only one condition, that condition must be met to display cards.
NOTE
If there is only one condition, that condition does not need to be met to display
cards.
Property Description
Add Condition Add a condition that must be met based on data field values.
Add Group Create complex expressions by grouping conditions. A group is similar to enclosing a series of tests in parenthesis in
a programming language. For example, to add a condition for high priority cases that are either escalated or have an
account whose revenue is above a certain number, create two condition groups connected by an OR operator, such
as [Priority = High AND IsEscalated = true] OR [Priority = High AND AnnualRevenue >
500000].
Data Field Select the data field to evaluate.
Operator Select the equality or relational operator that evaluates the data field against the value, such as =, !=, >, and so on.
Value Enter the value to check against.
FlexCard States
FlexCards have states. Each state displays a list of fields a data source and one or more actions. You can
also associate a state with one or more flyouts, which shows supplemental data displayed as a modal or
popover.
FlexCard states enable the presentation of different CRM interactions per state. For example, closed cases
have reopen actions, while escalated cases are styled differently have an action to view the case.
FlexCards with different states present different data.
In addition to adding different elements depending on the state, you can also set conditions to determine if,
when, and how data displays on a FlexCard. The FlexCard selects the first state with true conditions to
display. See Add Conditions to a FlexCard State.
You can enable a Blank Card State to display information when no data is returned from the configured
data source.
You can customize each card by its state to display various clickable actions, information, and optional
visual cues. For example:
• If a Case is escalated, the Case FlexCard (via its state) could display with a red border, red text, and an
action, such as View Case.
• A FlexCard for a closed case could display the text as greyed out and an action to Reopen Case.
1. From the FlexCard Designer, drag a State element from the Build panel onto the canvas.
2. (Optional) To create a state to display when there are no records available, select the Blank Card
State checkbox. For example, when a data source returns no records from the Policy object, create a
state with an OmniScript action to add a Policy.
3. In the Name field, enter the name of the state, such as Active.
NOTE
The state Name is for internal use and does not appear on the generated LWC or in
Preview.
4. To add data fields and other elements, see Add Elements to a FlexCard.
5. To add conditions that must be met for the state to display, see Add Conditions to a FlexCard State.
6. (Optional) To style your state, click Style to open the Style panel, and see Style FlexCard Elements.
Clone a State
1. Click the double square plus icon on a selected state. The cloned state appears below the original
state.
2. (Optional) To create a state to display when there are no records available, select the Blank Card
State checkbox. For example, when a data source returns no records from the Policy object, create a
state with an OmniScript action to add a Policy.
3. In the Name field, enter a descriptive name for the state, such as No Data.
NOTE
The Name is for reference only and does not appear on the generated LWC or in
Preview.
4. To add data fields and other elements, see Add Elements to a FlexCard.
5. To add conditions that must be met for the state to display, see Add Conditions to a FlexCard State.
What's Next
Style your element. See Style FlexCard Elements.
See Also
• FlexCard States
• FlexCards State Properties
• Preview a FlexCard
NOTE
When arranging the order of your states on the canvas, place the states in a logical order,
where the first condition is checked against the next, and so on. Typically, states with
complex conditions precede states with simple ones, followed by a state with no
conditions, and then a Blank Card State. The FlexCard selects the first state with true
conditions to display.
For example, the order of the states for the example above would be:
IMPORTANT
Applied conditions are visible in Preview only.
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. Select a state, and click the pencil icon next Conditions in the Properties panel.
3. Click + Add Condition.
4. To create basic conditions:
a. Click into the Data Field, from the list of data fields, select a data field to filter, such as
DaysToExpiration.
b. To define the relationship between the data field and a value, select an operator from Operator
dropdown, such as <.
c. In the Value field, enter the value to check against the data field, such as 31.
d. If adding another condition, click + Add Condition and select AND or OR from the dropdown
between conditions:
• Select AND if all conditions must be met.
• For example, the policy status is purchased AND the expiration date is less than 31 days.
NOTE
If there is only one condition, that condition must be met to display cards.
NOTE
If there is only one condition, that condition does not need to be met to display
cards.
See Also
• FlexCard States
• FlexCards State Properties
• Preview a FlexCard
See Also
• FlexCard States
• Add Elements to a FlexCard
Configure a data source when creating a new FlexCard through a configuration wizard. Or, configure a data
source from the Setup panel in the FlexCard Designer. See Set Up a FlexCard in the FlexCard Designer.
NOTE
An administrator can enable or disable data sources for an org, profile, and user level. See
Enable and Disable Data Sources.
See Also
NOTE
If security is a concern, use a DataRaptor instead of a
SOQL query, because DataRaptors fully support field-level
security.
SOSL Search Uses a Salesforce Object Search Language (SOSL) to construct text-based Configure a SOSL Search
search queries against the search index. Data Source on a
FlexCard
Streaming Uses the Salesforce Streaming API to send notifications of general events that are Configure a Streaming
Channel not tied to Salesforce data changes. Channel Data Source on a
FlexCard
See Also
Property Description
Data Source Type Select the data source type.
Fetch Timeout(ms) Set an appropriate timeout value to enable the application and users to react accordingly to long wait times.
The timeout value controls the time that the framework waits for the designated data source to return a
response. Does not work in Design view, test in Preview.
Input Map When required, pass variables from the FlexCard to the data source.
Key Enter the variable to pass. For example, pass the contextId AccountId.
Order By Order the records by a specified field.
Refresh Interval(ms) Set an interval to enable recursive updates of records. The data source refreshes continuously at the given
interval and checks for changes in data source records. If changes are found, the FlexCard reloads.
Result JSON Path To drill down to a specific dataset enter a JSON path, such as ['Cases'].
Reverse Order Reverse the order of the returned records.
Test Parameters Preview a FlexCard using real data by adding test variables that the query can use to return live data.
Value Enter the value for the variable. For example, enter a merge field, such as {recordId} or a static value, such
as the alpha-numeric Account Id found in the URL of an Account record page.
Property Description
Asynchronous Calls the Apex class asynchronously using the long-polling method.
Options Map Send additional key/value pairs to the Input Map passed to the remote method. Enter a key in the first field, and its
value in the second field. The value supports merge field syntax such as {Name}.
Poll Interval Specifies the polling interval in milliseconds to check the response status.
Remote Class The Apex remote class to invoke.
Remote Method The Apex method to call.
Property Description
Apex Endpoint The URL of the Apex REST endpoint.
JSON Payload Enter the JSON formatted response.
Method Specifies what type of call to make: GET or POST.
Property Description
Interface Name Select the DataRaptor to fetch the data from.
Property Description
Name Select the Integration Procedure to fetch the data from.
Property Description
Endpoint Enter the relative path to get what you need from the API, such as My_Payroll_System/paystubs?
format=json.
Headers Pass additional information from an HTTP request or response with an HTTP header.
JSON Payload Enter the JSON formatted response.
Method Select a GET or POST method.
Named Credential Select a Named Credential created from Setup > Named Credential in your org.
REST type Select the type of REST endpoint to access.
Property Description
Query Enter an SOQL expression to search for specific information from an org's Salesforce database. For example, SELECT
Id, FirstName, LastName Email, Phone, Title FROM Contact WHERE Phone != Null.
Property Description
In Select which fields to search in.
Limit to Limit the maximum number of rows to return.
Returning sObject & Fields Select at least one sObject and field to search.
Search For Enter the search term to search for.
Property Description
Channel Enter the URL of the app you created.
Get All Messages Select whether to get all messages from the last 24 hours or get the latest data update.
Operations Select the type of operation to perform. Select Replace to overwrite the FlexCard with new data or Append to
add new data to the FlexCard.
Type Select a Streaming API type.
NOTE
For optimal flexibility and easier implementation, use an Integration Procedure as a data
source to execute multiple actions in a single server call. See Configure an Integration
Procedure Data Source on a FlexCard.
1. To configure the data source when creating a FlexCard, navigate to the Select Data Source Type
step, select DataRaptor, and click Next.
2. To configure the data source from the SetUp Panel in the FlexCard Designer, click Setup, and select
DataRaptor from the Data Source Type dropdown.
3. Click into the Interface Name field, and select a DataRaptor Extract.
4. To pass a variable to the DataRaptor, click + Add New next to Input Map.
1. In a new tab, go to the Vlocity DataRaptor Designer tab, open the DataRaptor Extract selected
from the Interface Name, and click the Preview tab to view the Input Parameters.
2. In the Key field of the Input Map, enter the variable representing the ContextId, such as
AccountId.
3. In the Value field of the Input Map, enter {recordId} as the value.
5. (Optional) To configure other options common among all data sources, see FlexCards Data Source
Properties.
6. To test data source settings, add test variables that the query can use to return live data, see Test Data
Source Settings on a FlexCard.
What's Next
Add elements to the FlexCard. See Add Elements to a FlexCard.
See Also
NOTE
An Integration Procedure doesn’t support the following data sources:
1. To configure the data source when creating a FlexCard, navigate to the Select Data Source Type
step, select Integration Procedures, and click Next.
2. To configure the data source from the SetUp Panel in the FlexCard Designer, click Setup, and select
Integration Procedures from the Data Source Type dropdown.
3. Click into the Name field and select an Integration Procedure to use.
4. To pass a variable to the Integration Procedure, click + Add New next to Input Map.
1. In a new tab, go to the Vlocity Integration Procedures tab, open the Integration Procedure selected
from the Name, and click the Preview tab to view the Input Parameters.
2. In the Key field of the Input Map, enter the variable representing the ContextId, such as
AccountId.
3. In the Value field of the Input Map, enter {recordId} as the value.
5. (Optional) To configure other options common among all data sources, see FlexCards Data Source
Properties.
6. To test data source settings, add test variables that the query can use to return live data, see Test Data
Source Settings on a FlexCard.
3. (Optional) If the Integration Procedure has other data sources, to return only the dummy data, select
the checkbox next to the Return Only Additional Output label.
4. In your FlexCard's Setup panel, confirm that the Integration Procedure with the dummy data is chosen
in the Name field.
5. To view your dummy data, click Save & Fetch.
What's Next
Add elements to the FlexCard. See Add Elements to a FlexCard.
See Also
NOTE
When mapping fields, only fields in the field picker that have non-null values for the
specific record in the test query are visible. Use a test record that you know has non-null
values for all the fields you want to map. Or use custom fields if the test record doesn't
have the fields that you want to map.
NOTE
For optimal flexibility and easier implementation, use an Integration Procedure as a data
source to execute multiple actions in a single server call. See Configure an Integration
Procedure Data Source on a FlexCard.
1. To configure the data source when creating a FlexCard, navigate to the Select Data Source Type
step, select SOQL Query, and click Next.
2. To configure the data source from the SetUp Panel in the FlexCard Designer, click Setup, and select
SOQL Query from the Data Source Type dropdown.
3. Enter a SOQL expression in the Query field.
For example, enter the following to get fields from the Contact object, limit it to 10 and return only
records that have an email address:
SELECT Id, Name, Email, Phone, Title FROM Contact WHERE Email != Null
LIMIT 10
4. (Optional) To configure other options common among all data sources, see FlexCards Data Source
Properties.
5. To test data source settings, add test variables that the query can use to return live data, see Test Data
Source Settings on a FlexCard.
What's Next
Add elements to the FlexCard. See Add Elements to a FlexCard.
See Also
1. To configure the data source when creating a FlexCard, navigate to the Select Data Source Type
step, select SOSL Search, and click Next.
2. To configure the data source from the SetUp Panel in the FlexCard Designer, click Setup, and select
SOSL Search from the Data Source Type dropdown.
3. Enter the search term in the Search For field.
4. Select which fields to search in from the In dropdown.
5. From the Returning sObject & Fields section, select at least one sObject to search:
a. Click into the sObject field and select an object, such as Account.
b. Select one or more data fields from the Field dropdown.
c. (Optional) To add additional objects and fields, click + Add sObject.
6. (Optional) To limit the maximum number of rows to return, enter a number in the Limit to field.
7. (Optional) To configure other options common among all data sources, see FlexCards Data Source
Properties.
8. To test data source settings, add test variables that the query can use to return live data, see Test Data
Source Settings on a FlexCard.
What's Next
Add elements to the FlexCard. See Add Elements to a FlexCard.
See Also
1. To configure the data source when creating a FlexCard, navigate to the Select Data Source Type
step, select Custom, and click Next.
2. To configure the data source from the SetUp Panel in the FlexCard Designer, click Setup, and select
Custom from the Data Source Type dropdown.
3. Enter custom JSON in the Custom JSON field.
},
"Name": "Robert0 Taylor",
"Id": "0033700000TOB6mAAH",
"Phone": "(888) 888-8888",
"AccountId": "00137000007D63JAAS",
"MailingAddress": {
"city": "SF",
"country": "US",
"geocodeAccuracy": null,
"latitude": null,
"longitude": null,
"postalCode": "99999",
"state": "CA",
"street": "50 Santa Rita St"
},
"CreatedDate": "2017-06-13T21:08:25.000+0000"
},
{
"attributes": {
"type": "Contact",
"url": "/services/data/v49.0/sobjects/Contact/
0033700000TNvK0AAL"
},
"Name": "c1",
"Id": "0033700000TNvK0AAL",
"AccountId": "0013700000NVE4tAAH",
"MailingAddress": null,
"CreatedDate": "2017-06-08T20:13:41.000+0000"
},
{
"attributes": {
"type": "Contact",
"url": "/services/data/v49.0/sobjects/Contact/
0033700000TNvKKAA1"
},
"Name": "c2",
"Id": "0033700000TNvKKAA1",
"AccountId": "0013700000NVE4tAAH",
"MailingAddress": null,
"CreatedDate": "2017-06-08T20:13:50.000+0000"
},
{
"attributes": {
"type": "Contact",
"url": "/services/data/v49.0/sobjects/Contact/
0033700000Vs6RzAAJ"
},
"Name": "Smith",
"Id": "0033700000Vs6RzAAJ",
"Phone": "(300) 333-3763",
"AccountId": "001370000098i8mAAA",
"MailingAddress": {
"city": "SF",
"country": "US",
"geocodeAccuracy": null,
"latitude": null,
"longitude": null,
"postalCode": "99999",
"state": "CA",
"street": "50 Fremont St"
},
"CreatedDate": "2017-08-16T20:26:07.000+0000"
}
]
4. (Optional) To configure other options common among all data sources, see FlexCards Data Source
Properties.
5. To test data source settings, add test variables that the query can use to return live data, see Test Data
Source Settings on a FlexCard.
What's Next
Add elements to the FlexCard. See Add Elements to a FlexCard.
See Also
• FlexCards Data Source Properties
NOTE
For optimal flexibility and easier implementation, use an Integration Procedure as a data
source to execute multiple actions in a single server call. See Configure an Integration
Procedure Data Source on a FlexCard.
1. To configure the data source when creating a FlexCard, navigate to the Select Data Source Type
step, select Apex Rest, and click Next.
2. To configure the data source from the SetUp Panel in the FlexCard Designer, click Setup, and select
Apex Rest from the Data Source Type dropdown.
3. Enter the endpoint URL in the Endpoint field. For example, /services/apexrest/{namespace}/
CardTestApexRestResource/{recordId}
4. Select a method type from the Method dropdown:
• Select GET to requests data specified by the parameters of the URL.
• Select POST to send JSON data.
• Enter the JSON data to send in the JSON Payload field.
NOTE
You can use Context Variables to pass inherited values with either method. See
FlexCards Context Variables.
5. (Optional) To configure other options common among all data sources, see FlexCards Data Source
Properties.
6. To test data source settings, add test variables that the query can use to return live data, see Test Data
Source Settings on a FlexCard.
What's Next
Add elements to the FlexCard. See Add Elements to a FlexCard.
See Also
NOTE
For optimal flexibility and easier implementation, use an Integration Procedure as a data
source to execute multiple actions in a single server call. See Configure an Integration
Procedure Data Source on a FlexCard.
1. To configure the data source when creating a FlexCard, navigate to the Select Data Source Type
step, select Apex Remote, and click Next.
2. To configure the data source from the SetUp Panel in the FlexCard Designer, click Setup, and select
Apex Remote from the Data Source Type dropdown.
3. Enter the name of the remote class in the Remote Class field.
IMPORTANT
The Apex Class must implement the Vlocity Open Interface otherwise an error
message displays.
4. Enter the name of the remote method in the Remote Method field.
For example, you can access the remote Apex method getStories from the remote Apex class
StoryListHandler.
5. (Optional) To pass a variable from the FlexCard to the remote class method, click + Add New next to
Input Map and perform the following tasks:
a. In the Key field, enter the variable to pass. For example, pass the ContextId AccountId.
b. In the Value field, enter the value of the variable. For example, enter a merge field, such as
{recordId} or a static value, such as the alpha-numeric Account Id found in the URL of an
Account record page.
6. (Optional) To send additional key/value pairs to the Input Map passed to the remote method, click
+Add New next to Options Map. Enter a key in the first field, and its value in the second field. The
value supports merge field syntax such as {Name}.
NOTE
By default the NS.IntegrationProcedureService continuation object is set for
you to use asynchronous callouts to make long-running requests from a Visualforce
page to an external Web service and process responses in callback methods. NS
represents your org's Namespace, such as vlocity_ins or vlocity_cmt, as in
vlocity_ins.IntegrationProcedureService.
What's Next
Add elements to the FlexCard. See Add Elements to a FlexCard.
See Also
NOTE
For optimal flexibility and easier implementation, use an Integration Procedure as a data
source to execute multiple actions in a single server call. See Configure an Integration
Procedure Data Source on a FlexCard.
1. To configure the data source when creating a FlexCard, navigate to the Select Data Source Type
step, select REST, and click Next.
2. To configure the data source from the SetUp Panel in the FlexCard Designer, click Setup, and select
REST from the Data Source Type dropdown.
3. Select Named Credential from the REST type dropdown.
4. From the Named Credential dropdown, select a Named Credential created from Setup > Named
Credential in your org.
5. Enter a relative path in the Endpoint field to get what you need from the API, such as
My_Payroll_System/paystubs?format=json.
6. Select a method type from the Method dropdown:
• Select GET to requests data specified by the parameters of the URL.
• Select POST to send JSON data.
• Enter the JSON data to send in the JSON Payload field.
NOTE
You can use Context Variables to pass inherited values with either method. See
FlexCards Context Variables.
7. (Optional) To add any request headers, click + Add New next to Headers to add any request headers.
NOTE
Most third-party APIs expect various headers such as tokens, public keys, and
content-type.
8. (Optional) To configure other options common among all data sources, see FlexCards Data Source
Properties.
9. To test data source settings, add test variables that the query can use to return live data, see Test Data
Source Settings on a FlexCard.
What's Next
Add elements to the FlexCard. See Add Elements to a FlexCard.
See Also
To configure a REST data source with Named Credentials to authenticate Apex callouts, see Configure a
REST Data Source Using Named Credentials on a FlexCard.
NOTE
For optimal flexibility and easier implementation, use an Integration Procedure as a data
source to execute multiple actions in a single server call. See Configure an Integration
Procedure Data Source on a FlexCard.
1. To configure the data source when creating a FlexCard, navigate to the Select Data Source Type
step, select REST, and click Next.
2. To configure the data source from the SetUp Panel in the FlexCard Designer, click Setup, and select
REST from the Data Source Type dropdown.
3. Select Web from the REST type dropdown.
4. In the Endpoint field, enter the REST endpoint URL. For example:
http://api.weatherstack.com/current?
access_key={Session.weatherAPIkey}&query={BillingCity}
5. Select a method type from the Method dropdown:
• Select GET to requests data specified by the parameters of the URL.
NOTE
You can use Context Variables to pass inherited values with either method. See
FlexCards Context Variables.
6. (Optional) To add any request headers, click + Add New next to Headers to add any request headers.
NOTE
Most third-party APIs expect various headers such as tokens, public keys, and
content-type.
7. (Optional) To configure other options common among all data sources, see FlexCards Data Source
Properties.
8. To test data source settings, add test variables that the query can use to return live data, see Test Data
Source Settings on a FlexCard.
What's Next
Add elements to the FlexCard. See Add Elements to a FlexCard.
See Also
1. Click the FlexCards home tab, click a version of a FlexCard to open the FlexCard Designer.
2. In the Setup panel, to configure test parameters, click + Add New in the Test Parameters section.
3. In the Key field, enter a test variable name. For example, enter the variable from the Input Map
representing a contextId such as recordId. See FlexCards Context Variables.
4. In the Value field, enter a test variable value. For example, enter a record Id, such as the one found in
the URL of an Account page.
5. (Optional) If your returned data has multiple arrays, to return a specific dataset enter its JSON path in
the Results JSON. For example, to return just the Cases dataset, enter [0]['Cases'] if your JSON
looks like this:
{
[
"Cases": [
{
"Priority": "High",
"IsEscalated": false,
"CaseId": "5006g00000FpEz5AAF",
"Created": "2020-07-22T00:22:42.000Z",
"Type": "Mechanical",
"Subject": "Generator won't start",
"Status": "New",
"Origin": "Web",
"Description": "Despite turn the power on and off several times, the
generator wouldn't start",
"CaseNumber": "00001028"
},
{
"Priority": "Medium",
"IsEscalated": false,
"CaseId": "5006g00000BsfKkAAJ",
"Created": "2020-02-27T22:28:20.000Z",
"Type": "Mechanical",
"Subject": "Shutting down of generator",
"Status": "Closed",
"Origin": "Web",
"CaseNumber": "00001017"
}
],
"Account": {
"Type": "Customer - Direct",
"Name": "Edge Communications",
"Street": "312 Constitution Place\nAustin, TX 78767\nUSA",
"State/Province": "TX",
"City": "Austin",
"Revenue": 139000000
}
]
}
6. Click Save & Fetch to view the Test Results.
See Also
Polling is the most traditional way to get data from a data source that produces the stream of events and
updates. The client makes requests periodically, and the server sends data if there’s a response. In case
there's no data to be sent by the server, an empty response is returned.
Streaming API uses push technology, which is a publish and subscribe model that transfers information that
is initiated from a server to the client. Push technology transfers information that is initiated from a server to
the client. This type of communication is the opposite of polling where a request for information is made
from a client to the server. The main benefits of using the Streaming API are a reduced number of API calls
and improved performance.
For details about the Streaming API, see Use Streaming API and Streaming API Developer Guide.
This illustration shows the difference between Polling and Streaming API:
A PushTopic is a SOQL query that returns a result that notifies listeners of changes to records in a
Salesforce organization. The PushTopic defines a Streaming API channel. For instance, if you want to get
notified when a case is created for a particular type or status or both, use a PushTopic.
The following example code creates a PushTopic that pushes data if a case of type Problem is created:
If you also need Status, you can simply add another condition:
You cannot use GROUP BY or ORDER BY clauses in a PushTopic. See Creating a PushTopic.
For another example, you could create an app that notifies a user any time a new task is created for that
user.
What's Next
Configure a PushTopic data source on your FlexCard. See Configure a PushTopic Data Source on a
FlexCard.
See Also
1. To configure a data source from the FlexCard configuration wizard, navigate to the Select Data
Source Type step, select Streaming API, and click Next.
2. To configure a data source from the SetUp Panel in the FlexCard Designer, click Setup, and select
Streaming API from the Data Source Type dropdown.
3. Select PushTopic from the Type dropdown.
4. In the Channel field, enter the URL of the PushTopic that you created.
5. From the Operation picklist, select Replace or Append.
• Select Replace to overwrite the Card with new data.
• Select Append to add new data to the Card.
6. From the Get All Messages picklist, select True or False.
• Select True to get all data from the last 24 hours.
• Select False to get the latest data update.
7. (Optional) To configure other options common among all data sources, see FlexCards Data Source
Properties.
8. To test data source settings, add test variables that the query can use to return live data, see Test Data
Source Settings on a FlexCard.
What's Next
Add elements to the FlexCard. See Add Elements to a FlexCard.
See Also
• An event-based model obtains information and can react to it in near real time when the event occurs.
• Event producers don’t know the consumers that receive the events. Any number of consumers can
receive and react to the same events.
• The only dependency between producers and consumers is the semantic of the message content.
• Unlike with an sObject, you can’t update or delete event records. You also can’t view event records in the
Salesforce user interface, and Platform Events don’t have page layouts.
The architecture is suitable for large distributed systems because it decouples event producers from event
consumers, simplifying the communication model in connected systems.
For details, see Delivering Custom Notifications with Platform Events in Salesforce Help.
For example, you can create a card that uses a Platform Event as a data source to display the current ink
level for a printer. To see a detailed demo, see End-to-End Example: Printer Supply Automation in
Salesforce Help.
What's Next
Configure a Platform Event data source on your FlexCard. See Configure a Platform Event Data Source on
a FlexCard.
See Also
1. To configure a data source from the FlexCard configuration wizard, navigate to the Select Data
Source Type step, select Streaming API, and click Next.
2. To configure a data source from the SetUp Panel in the FlexCard Designer, click Setup, and select
Streaming API from the Data Source Type dropdown.
3. Select Platform Event from the Type dropdown.
4. In the Channel field, enter the URL of the Platform Event that you created.
5. From the Operation picklist, select Replace or Append.
• Select Replace to overwrite the Card with new data.
• Select Append to add new data to the Card.
6. From the Get All Messages picklist, select True or False.
• Select True to get all data from the last 24 hours.
• Select False to get the latest data update.
7. (Optional) To configure other options common among all data sources, see FlexCards Data Source
Properties.
8. To test data source settings, add test variables that the query can use to return live data, see Test Data
Source Settings on a FlexCard.
What's Next
Add elements to the FlexCard. See Add Elements to a FlexCard.
See Also
For example, use the Streaming Channel data source for a Chat application for the users in your org.
What's Next
Configure a Streaming Channel data source on your FlexCard. See Configure a Streaming Channel Data
Source on a FlexCard.
See Also
1. To configure a data source from the FlexCard configuration wizard, navigate to the Select Data
Source Type step, select Streaming API, and click Next.
2. To configure a data source from the SetUp Panel in the FlexCard Designer, click Setup, and select
Streaming API from the Data Source Type dropdown.
3. Select Streaming Channel from the Type dropdown.
4. In the Channel field, enter the URL of the app that you created.
5. From the Operation picklist, select Replace or Append.
• Select Replace to overwrite the Card with new data.
• Select Append to add new data to the Card.
6. From the Get All Messages picklist, select True or False.
• Select True to get all data from the last 24 hours.
• Select False to get the latest data update.
7. (Optional) To configure other options common among all data sources, see FlexCards Data Source
Properties.
8. To test data source settings, add test variables that the query can use to return live data, see Test Data
Source Settings on a FlexCard.
What's Next
Add elements to the FlexCard. See Add Elements to a FlexCard.
See Also
1. From the FlexCard Designer, click Setup to open the Setup panel.
2. To configure specific options, see FlexCard Setup Reference.
What's Next
Build your FlexCard. See Add Elements to a FlexCard.
See Also
A FlexCard with multiple Field elements and an Action element. Repeat Records enabled.
To display data that doesn't need repeating, disable the Repeat Records feature. For example, disable the
feature to display one Account record, a Chart element that displays data from multiple Accounts, a
Datatable element that lists Account Cases, a Custom LWC element that serves as a header for a Console
app, or a child FlexCard that has it's own data source.
Repeatable Modes
This table displays how the Repeat Records feature works for an Active State and a Blank Card State
when records are available and not available:
See Also
IMPORTANT
You cannot use data source values as session variables.
5. Apply the session variable as a merge field to an element field. For example, enter
{Session.APIkey} to a REST data source Endpoint URL.
See Also
The Filter FlexCard has Toggle elements and a Pubsub Event Action element. Each Toggle element has
a Set Values action that updates the data values with a user-selected value. The Pubsub Event Action
displayed as an Apply button, has an update event, which sends the updated data values as input
parameters to the Product List FlexCard.
When a user selects a filter, such as <$2000, and clicks the Apply button from the Filter FlexCard, only
products that cost less than $2000 are visible in the Product List FlexCard.
a. In the Event Name field, enter the name of the event, such as reload.
b. In the Channel Name field, enter the channel in which the event is posted.
c. If your action type is Card, and type is remove, in the Record Index field, update the index to
indicate which record to remove. For example, enter 0, to remove the first record, or 3 to remove
the fourth record.
6. To create an action, see Create the Action.
1. In the Action Properties section, select an Action Type from the dropdown. See FlexCards Actions
Reference.
2. To configure the selected Action Type, see FlexCards Action Properties.
3. Click Save.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
The sample DataPack demonstrates how to enable a FlexCard to listen for an event from another
FlexCard, and to listen for an event from an action on the same card. Click actions to fire an event to reload
a FlexCard, to update data sources, and to update merge field values.
What's Included
• A demoUpdateDataSourceEvent FlexCard with two actions that when clicked, updates the data source
on another FlexCard.
• A demoEventListener FlexCard that listens for events and performs actions based on the event. This
FlexCard has the following elements and properties:
• Merge fields to display data from an SOQL Query data source.
• Merge fields to display data from a DataRaptor Extract data source.
• Event listeners that set values, updates the data source to an SOQL Query data source, updates the
data source to a DataRaptor, and reloads the FlexCard.
NOTE
To save and fetch test data from the getAccountCases DataRaptor Extract, update the
value of the action.setId in the Test Parameters of the PubsubUpdateDS:dataraptor
event listener.
• Two action elements that when clicked, fires an event to update values with new data.
• An action element that when clicked, reloads the FlexCard.
• A getAccountCases DataRaptor Extract to populate merge fields when the related event is triggered.
NOTE
To return data, check that you have Account Case records in your org.
See Also
What's Next
Add custom labels to supported fields. See Add Custom Labels to Supported Fields on a FlexCard.
See Also
1. From the FlexCard Designer, click Setup to open the Setup panel.
2. Enter a comma-separated list of custom permissions in the Required Permissions field. For example,
if you created custom permissions named Can_Edit_Policy and Can_View_Policy, enter them
as Can_Edit_Policy,Can_View_Policy.
NOTE
If this field is left empty, any user can see the FlexCard.
3. For the managed package in your org, confirm that the VlocityRequiredPermissionCheck Apex
Class exists at Setup > Apex Classes. If it doesn't exist, add it as follows:
a. From Setup, in the Quick Find menu, enter apex.
See Also
The following table lists tracked events and their available OmniAnaltics Keys. See Event Tracking Data for
Cards Framework.
NOTE
Keys with ActionContainer prefix always represents the root card. Keys with Card prefix
refers to the current card. Keys with ParentCard prefix refers to the immediate parent.
NOTE
Example: If a card has a single state but has 3 records for that state, loading of
that card includes 1 Card Load event and 3 State Load events.
UI Action Click • The Card keys along-with ActionContainer keys are always available.
• The ParentCard keys are not available.
See Also
Parent and Child FlexCards track the Card Load, Card Unload, and State Load events. The Action tracks
the UI Action event. See Tracked FlexCard Events.
By default, the Enable Tracking feature is enabled on a FlexCard that is not a Child FlexCard. For
example, on a parent FlexCard which has a Child FlexCard embedded, tracking is enabled on the parent by
default.
To track events on a Child FlexCard, you must enable the Enable Tracking feature, which is disabled by
default. To enable tracking on all nested Child FlexCards, you must enable the tracking feature on all parent
FlexCards.
On the Action element, the Enable Tracking feature is enabled by default. When disabled, the UI Action
event is not fired. Action click tracking is independent of Child FlexCard tracking.
1. In the FlexCard Designer, select an action on the canvas or drag a supported element, such as Action,
into a state on the canvas.
2. In the Properties panel, if the Enable Tracking feature is disabled, click to enable.
What's Next
Track custom data. See Track Custom Data on a FlexCard.
See Also
Configure your Business Event, Business Category, and Custom Fields on a FlexCard in the FlexCard
Designer. All FlexCard events support Business Event, Business Category, and Custom Fields. For Card
Load and Card Unload events, all merge fields, except record merge fields are selectable.
See Also
Save style settings on an element to use on multiple elements on the FlexCard. Create custom classes
from a code editor in the FlexCard Designer and apply them to individual elements. On supported
elements, add classes to specific fields inside the element, such as the label and value of a Text element.
Configure the height, minimum height, and maximum height of the element using CSS supported values.
See Adjust the Height of an Element on a FlexCard.
Enable responsiveness on one or more elements to set the width to change as the width of the visable area
of a page, called the viewport, changes. See Create Responsive Elements on a FlexCard.
The responsive sizing of elements is mobile-first. Sizing starts at the smallest visible viewport breakpoint
and is continuously applied upwards until the next wider breakpoint overrides it. When responsiveness is
enabled, the default width becomes the width of the smallest viewport breakpoint. See FlexCards Element
Responsiveness.
See Also
See Also
IMPORTANT
Percentage (%) is not supported for height.
1. In the FlexCard Designer, click an element on the canvas, and click Style to open the Style panel.
2. To update the height of your element, open the Dimensions section, and enter a CSS supported value
for one or more of the following properties:
NOTE
For example, enter 20, 150px, or calc(2em * 5), auto, and so on. If you enter
just a number, the length unit defaults to px.
• To set a fixed height, enter a CSS supported value in the Height field.
• To set a minimum height, enter a CSS supported value in the Minimum Height field.
• To set a maximum height, enter a CSS supported value in the Maximum Height field.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
When an element is dragged next to another element that is less than 12 columns wide, the new element
takes up the remaining width of the horizontal space available. And when the width of an element is
adjusted from less than 12 to 12 columns wide, any elements next to it will move below it.
3. To adjust the width from the Style panel for any element, including a state, perform these tasks:
a. Click Style to open the Style panel
b. In the Dimensions section, under Default, move the slider left or right to adjust the element width.
NOTE
Only Child FlexCards enable you to adjust the width of a State element, and only
from the Style panel. When you adjust the width of the state, if the width is less
than 6 columns wide, records display side by side, mimicking the behavior of
elements inside states. See Display Records Side-By-Side on a FlexCard.
See Also
• Create Responsive Elements on a FlexCard
• Adjust the Height of an Element on a FlexCard
• Style FlexCard Elements
When the Responsive feature is enabled in the Style panel of a FlexCard, the responsive sizing of
elements is mobile-first. Sizing starts at the smallest viewport breakpoint and is continuously applied
upwards until the next wider breakpoint overrides it. When responsiveness is enabled, the default width
becomes the width of the smallest viewport breakpoint.
TIP
Build with a mobile-first approach if most or all of your elements are responsive. Build your
FlexCard at the smallest canvas size by selecting Mobile L/S from the Viewport
Dropdown. After setting widths for all breakpoints for each element from the Style panel,
view your layout at different viewports by toggling through the Viewport Dropdown. See
View a FlexCard at Different Viewport Breakpoints
• Set the Subject field to 12 for Smaller and Small, and 10 for Medium and Large.
• Set the CaseId field to 12 for Smaller and Small, and 2 for Medium and Large.
Available Breakpoints
Viewport Breakpoint Device
Large (>=1024px) Laptop and desktop
Medium (>=768px) Large tablet
Small (>= 480px) Small or medium tablet, and large mobile device
Smaller (< 480px) Small or medium mobile device
See Also
• Create Responsive Elements on a FlexCard
• Adjust the Height of an Element on a FlexCard
• Style FlexCard Elements
By default, the width of an element is the same no matter the width of the viewport of the device your user
views the FlexCard. When responsiveness is enabled, the width of an element changes to the width set at
each viewport breakpoint. The default width becomes the width on the smallest viewport breakpoint for a
mobile-first approach. See FlexCards Element Responsiveness.
TIP
Build with a mobile-first approach if most or all of your elements are responsive. Build your
FlexCard at the smallest canvas size by selecting Mobile L/S from the Viewport
Dropdown. After setting widths for all breakpoints for each element from the Style panel,
view your layout at different viewports by toggling through the Viewport Dropdown. See
View a FlexCard at Different Viewport Breakpoints
1. In the FlexCard Designer, click an element on the canvas, and click Style to open the Style panel.
2. From the Dimensions section, enable Responsive.
NOTE
Easily identify responsive elements by selecting or hovering over the element. A
device icon displays next to the Component Name.
• Set the Subject field to 12 for Smaller and Small, and 10 for Medium and Large.
• Set the CaseId field to 12 for Smaller and Small, and 2 for Medium and Large.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
See Also
Property Description
Background Color Select a background color. Enter a Hex color code, such as #ff0000. Or click the colored box to select from a
color picker.
Background Image Enter the URL of the image to display as the background of your element. The image must be accessible.
Url
Background Position Set the position of the background image. Enter any value allowed by the background-position CSS
property, such as right bottom, center, 10px 30px, and so on.
Background Repeat Set how the background image repeats itself. Enter any value allowed by the background-repeat CSS
property, such as no-repeat, repeat, repeat-x, and so on.
Background Size Set the size of the background image. Enter a value allowed by the background-size CSS property, such
as cover, contain, and so on.
Border Color Select a border color. Enter a Hex color code, such as #ff0000. Or click the colored box to select from a color
picker.
Border Radius To round the edges of the element border, set a border radius. Enter a value allowed by the border-radius
CSS property, such as 25px, 25px 50px, and so on.
Border Style Select the type of border to display. Enter a value allowed by the border-style CSS property, such as solid,
dashed, inset, and so on. Default is solid.
Border Type Select one or more border locations such as top, bottom, right, and left. To remove a border location,
select it again from the dropdown.
Border Width Enter a number for the thickness of the border in pixels.
Salesforce Theme Select a predefined color scheme for your element.
Text Color Update the element's text color. Enter a Hex color code, such as #ff0000. Or click the colored box to select
from a color picker.
See Also
See Also
Property Description
Margin Size Select the size of the margins.
Margin Type Select where to add margins to your element, such as the bottom, both vertical spaces, both horizontal positions,
around the entire element, and so on.
Padding Size Select the size of the padding.
Padding Type Select where to add padding to your element, such as the bottom, both vertical spaces, both horizontal positions,
around the entire element, and so on.
Text Align Select text alignment, such as center, to update the alignment of the content within the element's container.
See Also
1. In the FlexCard Designer, click on an element in a state, and click Style to open the Style panel.
2. From the Padding Type dropdown, select where to add your padding. For example, to add padding on
all sides of the content, select Around. To add padding to both the top and the bottom, select
Horizontal.
3. From the Padding Size dropdown, select how much padding to add, such as Medium, x-Small, and
so on. See SLDS Padding.
4. Click the plus icon.
5. Repeat steps 1 through 3 to add more padding.
See Also
1. In the FlexCard Designer, click on an element in a state, and click Style to open the Style panel.
2. From the Margin Type dropdown, select where to add your margin. For example, to add space around
the entire element, select Around. To add space above and below your element, select Horizontal.
3. From the Margin Size dropdown, select how much spacing to add, such as Medium, x-Small, and so
on. See SLDS Padding.
4. Click the plus icon.
5. Repeat steps 1 through 3 to add more margins.
See Also
See Also
The custom CSS is a Salesforce attachment. When the FlexCard is saved, the attachment is updated.
A .css file is also packaged with the generated LWC.
1. In the FlexCard Designer, click an element on the canvas, and click Style to open the Style panel.
2. In the FlexCard Designer submenu, click the down arrow next to Activate, and select Add Custom
CSS.
NOTE
Your FlexCard must be inactive to use this feature.
4. To apply CSS classes at run time, such as in Preview, enable Load as Global CSS.
5. Click Save.
What's Next
Apply custom CSS classes to elements. See Apply Custom CSS to a FlexCard Element.
See Also
Property Description
Add Custom CSS Create and edit custom CSS classes. The custom CSS is a Salesforce attachment. When the FlexCard is
saved, the attachment is updated. A .css is also packaged with the generated LWC.
Load as Global CSS Enable to apply your CSS classes at run time, such as in Preview.
See Also
Apply classes from stylesheets available to the FlexCard, such as SLDS and NDS stylesheets. Also, apply
classes that you create inside the FlexCard Designer with the Add Custom CSS feature. See Create
Custom CSS Within the FlexCard Designer.
NOTE
Add custom CSS to edit the internal components of an element or a child element. Use
this feature as needed and sparingly to optimize performance.
The admin applies the alt-table-rows class to the element and the alt-bg-group-wrapper class to
the group heading.
4. If your custom classes were created with the Add Custom CSS feature, to apply your CSS classes at
run time and in Preview, perform these tasks:
a. In the submenu of the designer, click the down arrow next to Activate, and select Add Custom
CSS.
b. Enable Load as Global CSS to edit the internal sections of an element or a.
NOTE
Use this feature sparingly as it might slow down performance if used
c. Click Save.
d. Click Preview. See Preview a FlexCard.
What's Next
Activate your FlexCard. See Activate a FlexCard.
See Also
TIP
Use this feature as needed and sparingly to optimize performance.
1. In the FlexCard Designer, click an element on the canvas, and click Style to open the Style panel.
2. In the Inline CSS Styles field of the Custom section, enter CSS properties and their values. For
example, font-variant: small-caps; word-spacing: 30px;.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
Property Description
Container Class Add a class to the container of your element.
Custom Class Add a class directly to the element.
Inline CSS Styles Apply inline CSS styles to your element, such as font-variant: small-caps;.
See Also
Property Description
Color Enter a Hex color code or click the colored box to select a color from the color picker.
Font Family Enter a web-safe font or any font included in SLDS or Newport Design System.
Font Size Select a font-size. Enter any value allowed by the font-size CSS property, such as 1em, 6px, large or
calc(). If you enter just a number, the default unit used is px.
Size Select the size of the entire element, such as Medium.
Text Align Select text alignment, such as center. To align a Flyout content's text, select Text Align in the Alignment section
of the Style panel.
Text Decoration Set th apperance of decorative lines on the text. Enter a value allowed by the text-decoration CSS property,
such as underline, overline, and so on.
See Also
See Also
See Also
See Also
Property Description
Color Enter a Hex color code or click the colored box to select a color from the color picker.
Font Family Enter a web-safe font or any font included in SLDS or Newport Design System.
Font Size Select a font-size. Enter any value allowed by the font-size CSS property, such as 1em, 6px, large or
calc(). If you enter just a number, the default unit used is px.
Size Select the size of the entire element, such as Medium.
Text Decoration Set th apperance of decorative lines on the text. Enter a value allowed by the text-decoration CSS property,
such as underline, overline, and so on.
See Also
Checkbox Properties
These properties are unique to the Checkbox Toggle, Checkbox Button, Checkbox Group Button,
Checkbox Group toggle types.
Property Description
Font Family Enter a web-safe font or any font included in SLDS or Newport Design System.
Font Size Select a font-size. Enter any value allowed by the font-size CSS property, such as 1em, 6px, large or
calc(). If you enter just a number, the default unit used is px.
Text Align Select text alignment, such as center.
Property Description
Text Decoration Set th apperance of decorative lines on the text. Enter a value allowed by the text-decoration CSS property,
such as underline, overline, and so on.
IMPORTANT
In Vlocity Health and Insurance Spring '21, the Font Size property is not available for the
Checkbox Toggle and Checkbox Button toggle types.
Property Description
Checked Label Select the display color of the label when the toggle element is selected. Enter a Hex color code or click the
colored box to select a color from the color picker.
Unchecked Label Select the display color of the label when the toggle element is not selected. Enter a Hex color code or click the
colored box to select a color from the color picker.
Checkbox Button
These properties are unique to the Checkbox Button toggle type.
Property Description
Checked Icon Select the display color when the toggle element is selected. Enter a Hex color code or click the colored box to
select a color from the color picker.
Unchecked Icon Select the display color when the toggle element is not selected. Enter a Hex color code or click the colored box to
select a color from the color picker.
Property Description
Color Select a label color. Enter a Hex color code or click the colored box to select a color from the color picker.
IMPORTANT
In Vlocity Health and Insurance Spring '21, the Color property on the Checkbox Toggle
and Checkbox Button toggle types do not work and will be replaced with the Font Size
property in the next release.
See Also
The Custom Style feature saves any settings configured in the Style panel including classes, inline styles,
widths, and responsiveness.
1. In the FlexCard Designer, select an element from the canvas, and click Style to open the Style panel.
2. Style the element as needed. See Style FlexCard Elements.
3. To create a new style, from the Custom Styles section, click the down arrow, and select Save As.
1. In the FlexCard Designer, select an element on the canvas, and click Style to open the Style panel.
2. Click the Select Saved Style search icon in the Custom Styles section.
3. In the Select Saved Styles modal, click on the name of a style under Select Style.
4. View how your applied style will look in the Preview section of the modal.
5. Click Save.
What's Next
Preview your FlexCard. See Preview a FlexCard.
See Also
Property Description
Clear Styles Clear all styles configured from the Style panel including applied classes and responsiveness.
Create New Style Create a new Custom Style based on the current styles set.
Enter Style Name Enter the name of a new Custom Style.
Remove Default Removes the default style for the selected element type. For example, if the current style for a selected Action
element is Red Action, and you click Remove Default, the default style for any new Action element added to
the FlexCard will not have a default style.
Reset Changes Reset the changes to a saved Custom Style. Removes any styles applied to an element that is not part of the
applied Custom Style. For example, if you add a background image to an Action element whose Custom Style is
Red Action, clicking Reset Changes removes the background image but retains any settings that are part of
the Red Action Custom Style.
Save As Save current style settings as a Custom Style.
Search For Style Search from the list of saved Custom Styles.
Select Saved Style Apply a saved Custom Style to the element.
Property Description
Set As Default Set the current Custom Style as the default for the selected element type. For example, if the current style for a
selected Action element is Red Action, and you click Set As Default, the default style for any new Action
element added to the FlexCard will be Red Action.
See Also
1. Create a child FlexCard and add all the elements you want to display on each state. See Embed a
FlexCard Inside Another FlexCard
2. Click a state, and click Style to open the Style panel.
3. From the Dimensions section, under Default, use the slider to adjust the width of the state to at most
6.
For example, to display two records next to each other, select 6. To display 3 records next to each
other, select 4. To display 4 records next to each other, select 3.
TIP
Consider enabling responsiveness so that when your FlexCard is viewed on mobile
devices, your content looks good. For example, make the records full width when on
mobile devices, but 6 columns wide on tablets, and 3 columns wide on desktops. See
Create Responsive Elements on a FlexCard.
1. Create a new FlexCard. See Create a New FlexCard. Or open an existing FlexCard from the
FlexCards home tab.
2. From the Build panel, drag a FlexCard element into an active state.
3. Click into Card Name and select the name of the child FlexCard you created in the above steps.
4. Click Setup, and uncheck Repeat Records. See Disable Record Looping on a FlexCard.
5. Click Preview to see your records displayed next to each other.
6. Click Activate.
What's Next
Configure Publish Options to define metadata values and add a custom component SVG icon for your
generated LWC. See Configure Publish Options on a FlexCard.
1. To rearrange an element inside a state, or move an element between states, click and hold down the
element, then drag it to the desired position. Wait for the position indicator to appear at the desired
position before letting go.
2. To rearrange a state, click and hold down the state and move it up or down to the desired position.
3. To duplicate an element, click the element, and click the double square icon.
State
See Also
1. Download Newport Design System and edit the CSS with your customizations. See Apply Global
Branding to FlexCards.
2. Upload the changes to your Salesforce org. See Deploy Global Style Changes to FlexCards with the
Newport Design System.
See Also
1. Ensure that Node and NPM are installed on your local computer using the commands NPM outlines in
their documentation https://www.npmjs.com/get-npm. If you do not have Node or NPM, download them
from https://nodejs.org/en/download/.
2. Clone vlocityinc/newport-design-system from https://github.com/vlocityinc/newport-design-system
using a command-line interface. To see which components are provided by Newport, look at the UI/
components directory.
3. From the GitHub page, perform the latest steps to install the correct dependencies.
4. After installation is complete, launch the Storybook.js preview by issuing the command npm start.
5. Review the documentation in the Storybook preview.
What's Next
Deploy the CSS to your Salesforce org. See Deploy Global Style Changes to FlexCards with the Newport
Design System.
See Also
Deploy Global Style Changes to FlexCards with the Newport Design System
Add any changes to the Newport Design System theme by uploading the theme in a Salesforce org. Install
your theme so that all FlexCard Designer users can use it to preview their FlexCards. Apply modifications
to the Newport templates by adding a Static Resource that overrides the Newport preview wherever it is
available.
Required Versions
Available beginning with Spring '19.
1. In your Salesforce org, go to Setup and, in the Quick Find box, enter Custom Settings.
2. Find UISettings, click Manage, click New and configure the following settings:
• Name: You must name this newportZipUrl for the changes to be applied.
• Key: Enter any name.
• Value: The relative URL for the static resource. To obtain the relative URL, go to the Static Resource
(see 4 in the Before You Begin section), click View File, and copy the URL after the domain name,
removing the question mark at the end. For example, the bold text would be copied in this URL:
https://salesforce-org-test.na75.visual.force.com/resource/16679825000/vloc_customNewport?
3. Preview your FlexCard in the FlexCard Designer Preview tab.
See Also
Preview a FlexCard
Preview your FlexCard's appearance and functionality before publishing it to a Lightning or Community
page. In Preview mode, test how your FlexCard looks on multiple devices and test the functionality of action
links and other interactive elements.
NOTE
The Navigate and OmniScript actions do not work in Preview. You must add them to a
Lightning or Community page to view them.
IMPORTANT
If you don't see your content in the Preview canvas, check that you have granted
access to your org domains in Remote Site Settings. See Update Remote Site
Settings to Preview Your FlexCard.
2. (Optional) To add test parameters, click Add Test Params, and perform these tasks:
• Enter a Key, such as recordId. See FlexCards Context Variables.
• Enter a Value, such as an Account Id.
• Click Add to enter another parameter as a key/value pair.
3. To see how your FlexCard looks on different devices, select from the Viewport Dropdown.
NOTE
To enable elements to change widths in response to the width of the viewport, see
Create Responsive Elements on a FlexCard.
4. To test functionality, click actions and other interactive elements on your FlexCard.
What's Next
Activate your FlexCard. See Activate a FlexCard.
See Also
Property Description
Key Enter a variable to test how and what data displays on your FlexCard. For example, enter pagelimit to update how
many pages display for a datatable.
Property Description
Value Enter a test value. For example, if the Key is pagelimit, enter 2 to limit the number of pages to display on a datatable to
2.
The viewport size is saved when changed. After navigating away from the FlexCard Designer, toggling
between Design view and Preview, or reloading the page, the viewport size remains the same until you
change it.
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. In Design view, select a breakpoint from the Viewport Dropdown.
3. To view your FlexCard at different viewport breakpoints in Preview, see Preview a FlexCard.
What's Next
Enable elements to respond to different viewport widths. See Create Responsive Elements on a FlexCard.
See Also
Activate a FlexCard
Activate a FlexCard to generate an LWC and publish it to a Lightning or Community page. Activating a
FlexCard disables editing capabilities. You cannot add or edit elements on an active FlexCard.
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. Click Activate in the submenu to initiate the activation wizard.
3. Click Done.
1. In the FlexCards home tab in your org, click on a FlexCard to view available versions.
2. Select the checkbox next to the inactive FlexCard you want to activate.
3. Click Activate.
What's Next
Configure Publish Options to define metadata values and add a custom component SVG icon for your
generated LWC. See Configure Publish Options on a FlexCard.
See Also
WARNING
Do not redeploy the LWC back into your org.
Required Versions
Available beginning with Vlocity Health and Insurance Spring '21 .
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. From the FlexCard Designer submenu, click the down arrow next to Activate, and click Download
LWC.
3. Click Done.
See Also
WARNING
Do not redeploy anywhere. Download to view code only.
Required Versions
Available beginning with Vlocity Health and Insurance Spring '21 .
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. From the FlexCard Designer submenu, click the down arrow next to Activate, and click Download
Off-Platform LWC.
3. Click Done.
See Also
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. From the FlexCard Designer submenu, click the down arrow next to Activate, and click Publish
Options.
3. To configure metadata values, see Define Metadata Values from the FlexCard Designer.
4. To update the SVG resource with a custom icon, see Add a Custom Component SVG Icon to a
FlexCard.
What's Next
Publish your FlexCard to a Lightning or Community page. See Add a FlexCard to a Lightning Page. See
Add a FlexCard to a Community Page.
See Also
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. From the FlexCard Designer submenu, click the down arrow next to Activate, and click Publish
Options.
Property Description
Master Label Update the visible name of generated LWC as you want it to appear in the Lightning App Builder and
Community Builder. The default is the Name you used to create the FlexCard and, which is visible in the
Setup panel.
Description Enter a description for your generated LWC.
API Version Defines the API version of your generated LWC. The default is the API version used when creating the
FlexCard. When creating a new FlexCard, the default value is the current API version.
Runtime (Read-Only) Defines the Vlocity package namespace.
Namespace
Is Exposed When enabled, your card component is public. By default, this feature is enabled.
Targets Select where your generated LWC is accessible. By default, HomePage, RecordPage, and AppPage are
selected to enable use on a custom home page, a record page, and an app home page.
To enable the use of your LWC on a Community Page, select CommunityPage. To enable the use of your
generated LWC on a Community Page with configurable properties, select CommunityDefault.
What's Next
Add a custom component SVG icon to your generated FlexCard LWC. See Add a Custom Component SVG
Icon to a FlexCard.
See Also
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. From the FlexCard Designer submenu, click the down arrow next to Activate, and click Publish
Options.
3. To upload a custom SVG resource, under Add SVG resource / Drop it here, click Choose File or
drag a file from your computer inside the dashed box.
4. Click Save.
What's Next
Configure metadata values for your generated FlexCard LWC. See Define Metadata Values from the
FlexCard Designer.
See Also
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. Select a supported element, such as the Field element.
3. From the Properties panel, enter {Label.customLabelName} in a supported field. For example, to
display the AccountName custom label as the Label for a Field element that displays the name of an
Account, enter {Label.AccountName}.
What's Next
Enable multi-language support. See Enable Multi-Language Support on a FlexCard.
There are three ways to pass data from the LWC OmniScript to the embedded FlexCard:
The data fields on the LWC OmniScript must exist in the FlexCard even if the values are empty. For
example, if your OmniScript Data JSON has Id, Name, Email, and Phone fields, these field names must
exist even if the value of Email or any other fields are empty in the data source of the embedded FlexCard.
1. In your org, go to the FlexCards tab and click a version of a FlexCard to open the FlexCard Designer.
Or, create a new FlexCard. See Create a New FlexCard.
2. In the Setup panel, select and configure the data source with data fields you want the OmniScript to
map.
For example, if your data source is a DataRaptor that gets a list of Accounts, confirm that the
DataRaptor Output fields selected include those your OmniScript Data JSON maps to. If your
OmniScript Data JSON has a Name field, so should the Output from the DataRaptor, and so on.
3. Click Save & Fetch.
4. From the Build panel, add elements such as Fields, Datatables, and so on onto the canvas. See Add
Elements to a FlexCard.
5. In the Setup panel, check OmniScript Support.
6. Click Activate.
7. Embed your FlexCard in an LWC OmniScript with the Custom LWC element in the LWC OmniScript
Designer. See Embed FlexCards in an LWC OmniScript.
8. In the Custom Lightning Web Component Properties section of the Properties panel, add parent-
data as the Property Name, and set the Property Source value to true.
9. Click + Add New Property.
10. Enter records as the Property Name, and in the Property Source field, enter the object in the Data
JSON that lists records that map to those in your FlexCard. Enter the object as a merge field using
OmniScript merge field syntax, such as %objectname%.
For example, if your list of records is stored in a JSON object called accounts, enter %accounts%.
11. Click Activate.
12. Click Preview to preview the FlexCard inside the LWC OmniScript.
See Also
• Pass Data from an LWC OmniScript to an Embedded FlexCard
For example, if your FlexCard has a DataRaptor that gets Account Cases, the fields and actions get
updated based on the value of the recordId set in the LWC OmniScript Data JSON. If you use the {recordId}
merge field in your FlexCard such as in an SOQL query or a Text element, that data that relies on that
merge field is also updated based on the recordId coming from the LWC OmniScript Data JSON.
1. In your org, go to the FlexCards tab and click a version of a FlexCard to open the FlexCard Designer.
Or, create a new FlexCard. See Create a New FlexCard.
2. Configure your data source if you haven't already. See Configure a Data Source on a FlexCard.
3. Add data elements such as Fields, Actions, and so on, from the Build panel onto the canvas. See Add
Elements to a FlexCard.
4. In the Setup panel, check OmniScript Support.
5. Click Activate.
6. Embed your FlexCard in an LWC OmniScript with the Custom LWC element in the LWC OmniScript
Designer. See Embed FlexCards in an LWC OmniScript.
7. In the Custom Lightning Web Component Properties section of the Properties panel, add record-
id as the Property Name.
NOTE
Because the Property Name is an HTML attribute, it must be written in kebab case,
with words separated by a dash. See Property and Attribute Names.
8. Set the Property Source to a JSON node that contains a recordId. Use OmniScript merge field syntax,
such as %nodename%, to enter the node as a merge field.
For example, if your recordId is stored in a JSON node called ContextId, enter %ContextId%.
9. Click Activate.
10. Click Preview to preview the FlexCard inside the OmniScript.
See Also
The parent object in the OmniScript Data JSON can be named anything as long as it is an object with fields
that match the name of the parent attribute that you want the OmniScript to look for in the FlexCard. For
example, the JSON object name can be parent or account, such as "parent" : {"Id" :
"1234567"} or "account" : {"Id" : "1234567"}.
1. In your org, go to the FlexCards tab and click a version of a FlexCard to open the FlexCard Designer.
Or, create a new FlexCard. See Create a New FlexCard.
2. Configure your data source if you haven't already in Step 1. See Configure a Data Source on a
FlexCard.
3. Add data elements such as Fields, Datatables, and so on, from the Build panel onto the Canvas. See
Add Elements to a FlexCard.
4. Add a {Parent} merge field, such as {Parent.Id}, in your FlexCard where merge fields are
supported such as in an SOQL query, a Text element, an Input Parameter, and so forth.
5. In the Setup panel, check OmniScript Support.
6. Click Activate.
7. Embed your FlexCard in an LWC OmniScript with the Custom LWC element in the LWC OmniScript
Designer. See Embed FlexCards in an LWC OmniScript.
8. In the Custom Lightning Web Component Properties section of the Properties panel, add parent-
attribute as the Property Name, and set the Property Source to the parent JSON object that
contains parent attributes. Use OmniScript merge field syntax, such as %objectname%, to enter the
node as a merge field.
For example, if your parent object is stored in a JSON object called account, enter %account%.
9. Click Activate.
10. Click Preview to preview the FlexCard inside the OmniScript.
See Also
Download a Sample DataPack that Passes Data from an LWC OmniScript to a FlexCard
Download a sample DataPack that demonstrates how to pass data from an LWC OmniScript to a FlexCard.
Import the DataPack to your org. See Pass Data from an LWC OmniScript to an Embedded FlexCard.
The sample DataPack demonstrates how to pass a recordId, a Parent object, and a set of records from the
LWC OmniScript to the embedded FlexCards.
What's Included
• A demoPassDataParentAttributeFC FlexCard displays Account data and whose SOQL Query data
source uses the {Parent.Id} merge field to determine the contextId.
• A demoPassDataRecordIdFC FlexCard displays Account data and whose SOQL Query data source
uses the {recordId} merge field to determine the contextId.
• A demoPassDataRecordIdDRFC FlexCard displays Account Case data and whose DataRaptor data
source uses the {recordId} merge field to determine the contextId.
• A demoPassDataParentDataRecordsFC FlexCard displays a list of accounts as a data table. The data
source is a basic SOQL Query.
• A demoPassDataLWCOStoFC LWC OmniScript with the following features:
• A Set Values Action with three element values: one that defines a ContextId; one that defines a Parent
object; and one that displays a list of records.
• A Step with 4 Custom LWC elements that display 4 FlexCards.
• A getCases DataRaptor gets a list of Account Cases.
IMPORTANT
Do not activate yet.
3. Open the demoPassDataParentAttributeFC FlexCard, click Setup, and update the Parent.Id
under Test Parameters with the ID of an Account record in your org.
4. Open the demoPassDataRecordIdDRFC and demoPassDataRecordIdFC FlexCards, click Setup,
and update the recordId under Test Parameters with the ID of an Account record in your org.
5. Open the demoPassDataLWCOStoFC OmniScript, click SetValues1, click Properties, and click Edit
Properties as JSON. Replace the values of ContextId and parentObj:Id with an Ids of Account
records in your org.
6. Activate all four FlexCards.
7. To Preview the FlexCards in the LWC OmniScript, activate the LWC OmniScript, and click Preview.
See Also
1. Go to FlexCards home tab in your org and open a FlexCard in the FlexCard Designer. Or to create a
new one, see Create a New FlexCard.
2. To embed the LWC OmniScript in a flyout, drag an Action element from the Build panel onto the
canvas.
3. Select Flyout as the Action Type.
4. Click + Add New next to Attributes and enter the values for these settings as follows:
• Key: vlocEvents
• Value: Enter the name of the pubusb channel. This is typically the FlexCard you want to refresh. For
example, if the name of the FlexCard to refresh is AccountPolicy, enter that here.
5. If the FlexCard you want to refresh is different from this FlexCard, open that FlexCard from the
FlexCards home tab.
6. From the Setup panel click + Add New next to Event Listener, and enter the values for the settings as
follows:
• Event Type: Pubsub
• Channel Name: Enter the same of the vlocEvents attribute you entered in step 5. For example, if
your vlocEvents value is AccountPolicy, enter that here.
• Event Name: data
• Action Type: Card
• Type: Reload
1. In your org, go to Setup > Lightning App Builder and click Edit for an existing Lightning app to open the
Lightning App Builder. Or, on a Lightning record page, from the Setup menu, click Edit Page.
2. From the Components pane, find your generated FlexCard Lightning web component from the list of
Custom components, and drag it to the canvas area.
IMPORTANT
If you do not see your component listed, confirm that the appropriate Target is
checked in Publish Options. See Define Metadata Values from the FlexCard Designer
3. (Optional) In the properties panel, set Component Visibility. See Dynamic Lightning Pages.
4. To configure activation options, click Activation. See Activate Your Lightning App Page.
1. In your org, go to Service Setup > All Communities and click Builder for an existing Community.
2. Click the blue and white lightning bolt icon on the left to open the Components pane.
3. From the list of Custom Components in the Components pane, find the name of your generated
FlexCard LWC and drag it to the canvas area.
IMPORTANT
If you don't see your FlexCard, confirm that it is active and available to Community
pages. See Define Metadata Values from the FlexCard Designer.
4. (Optional) In the properties pane, set Component Visibility. See Dynamic Lightning Pages.
5. Click Preview. See Preview Your Lightning Community with Experience Builder.
6. Click Publish.
1. From an active FlexCard in the FlexCard Designer, click the down arrow next to Activate in the
submenu, and click Publish Options.
2. Under Targets, select the CommunityDefault checkbox.
3. Click the Editor tab.
4. Inside the targetConfig tag, add a property tag with the name recordId and the type String.
<targetConfig targets="lightningCommunity__Default">
<property name="recordId" type="String" ></property>
</targetConfig>
5. Add your FlexCard to your Community page. See Add a FlexCard to a Community Page.
6. In the recordId property field, enter {!recordId}.
1. Ensure that you are using the Original Profile Interface by disabling the Enhanced Profile User
Interface. See Disable Enhanced Profile User Interface.
2. Grant access to the necessary custom objects. See Configure Custom Object Permissions.
3. Grant access to the necessary Apex classes. See Grant Apex Class Access to a Community Profile.
1. From Setup, type User in the Quick Find box and click User Management Settings.
2. Set the Enhanced Profile User Interface option to Disabled.
See Also
1. From Setup, type Users in the Quick Find box and click Profiles.
2. Find the profile for the users who will be accessing the community and click Edit.
3. Scroll to the Custom Object Permissions section.
4. Check View All for the following objects:
• Vlocity Actions
• Vlocity Cards
NOTE
You can't change Custom Object Permissions for any of the default profiles. For these
profiles, the checkboxes in this section are not selectable.
5. Click Save.
See Also
1. From Setup, type Users in the Quick Find box and click Profiles.
2. Find the profile for the users who will be accessing the community and click the profile name.
If you click Edit, you won't see the Enabled Apex Class Access settings.
3. Scroll to the Enabled Apex Class Access section and click Edit.
4. If namespace.CardCanvasController is not in the Enabled Apex Classes list, select it from the list
of Available Apex Classes and click Add.
For namespace see Viewing the Namespace and Version of the Vlocity Package.
5. Click Save.
See Also
Versioning Vs Cloning
FlexCards Versioning
FlexCards supports versioning. You can create an identical copy of a FlexCard by creating a new version
and keeping other versions with the same name, and author, but with a new version number. Create a new
version when you want to make slight modifications to a FlexCard already published to Lighting or
Community pages, and elsewhere.
The name, author, and version combination must be unique for each component in an org. Only one
version of a component can be active at a time. When you create a new version of a FlexCard in the
FlexCard Designer, the version number increases by 1 and the Status is inactive. See Create a New
Version of a FlexCard.
Versioning Workflow
When you create a new version of a FlexCard in the FlexCard Designer, a new version is created
dynamically. You can't choose the author or name of the new version. To create a new FlexCard based on a
current FlexCard, and to update the Author and/or Name, you must clone your FlexCard. See Clone a
FlexCard.
The following table describes the fields involved in the versioning process:
Field Description
Name FlexCards are requested by name.
Author Specifies the user organization that created the FlexCard. Use author names that describe the team creating the content.
Version An integer that increases by one with every new version.
Active Indicates whether a record is active for run time use. One active record per name is allowed in an org. Activating a
component deactivates all other versions of the component with the same name. Only active records are exported when a
DataPack is created.
See Also
NOTE
To create a copy of a FlexCard with a new Name, or Author, or both, you must clone the
FlexCard. See Clone a FlexCard.
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. Click New Version in the submenu.
3. The new version of your FlexCard opens in a new tab and the Current Version is updated to the
previous version number plus one.
See Also
• FlexCards Versioning
FlexCards Cloning
FlexCards supports cloning. You can create a new FlexCard by cloning a current one to update the Author
and/or Name, and copy over layout and/or settings. See Clone a FlexCard.
The name, author, and version combination must be unique for each component in an org.
Cloning Workflow
If you need to create a new version of a FlexCard with the same Name and Author, and want to make slight
modifications to test behavior and layout between versions, version the FlexCard instead. See Create a
New Version of a FlexCard.
See Also
Clone a FlexCard
Create an identical copy of a FlexCard with the Clone feature in the FlexCard Designer. Cloning an existing
FlexCard creates a new FlexCard with a new Name, or Author, or both. The Name and Author must be
unique. See FlexCards Cloning.
NOTE
To create a new version of a FlexCard with the same name and author, make minor
modifications, and compare between versions, see Create a New Version of a FlexCard.
1. From the FlexCards tab, click a version of a FlexCard to open the FlexCard Designer.
2. Click Clone in the submenu.
3. If you're not changing the author, enter a new Name. Either the Name, or Author, or both must change.
4. If you're not changing the name, enter a new Author. Either the Name, or Author, or both must
change.
5. (Optional) Update the following properties:
• Update the Theme to Lightning (SLDS) or Newport.
• Update the Title of the rendered component visible in the component lists in the Lightning App
Builder and Community Builder.
• If disabled, enable Child Card to embed it inside another FlexCard.
• Update the Description that displays on the FlexCards tab.
6. Click Clone.
See Also
Create an identical copy of a FlexCard with the Clone feature in the FlexCard Designer. See Clone a
FlexCard.
Requirements Examples
The combination of the card Name and Author must be unique in your Org. For example, • Name = AccountActive, Author =
if importing a FlexCard with the same name and author of a current FlexCard, you will be CustomerSales
asked if you want overwrite the current FlexCard in your org. • Name = AccountClosed, Author =
CustomerSales
The name and author must only contain underscores and alphanumeric characters. It must Not acceptable:
be unique, begin with a letter, not include spaces, not end with an underscore, and not
contain two consecutive underscores. • account$card!
• 2account__card
• $$account__card_
• account card
If you have multiple versions of a FlexCard, only one version can be active at a time. See N/A
FlexCards Versioning.
FlexCard names cannot be changed. You must clone a FlexCard to change the name. See N/A
Clone a FlexCard.
Requirement Examples
• Element Names cannot contain spaces and must be unique in Acceptable:
a FlexCard. It can contain any string combination of
alphanumerical and special characters. • address_block
• View_Account
• $account_revenue!
Not acceptable:
• address block
• View Account
• $account revenue!
See Also
Delete a FlexCard
Delete a FlexCard from the FlexCards home tab in your org. Once deleted it cannot be retrieved.
1. From the FlexCards home tab, click a FlexCard to display available versions.
2. Click the checkbox next to the version to delete.
NOTE
You can delete an inactive version of a FlexCard added to a Lightning or Community
page if there is more than one version.
NOTE
If the trash icon is disabled, check that the FlexCard is deactivated.
Import a FlexCard
Import a FlexCard as a DataPack from another environment into your org. To export a DataPack to import,
see Export a FlexCard.
What's Next
Update the data source of the imported FlexCard, and configure other Setup properties. See FlexCard
Setup Properties.
See Also
Export a FlexCard
Export a FlexCard as a DataPack to import to other environments. You can export one or more FlexCards
from the FlexCards home tab or from within the FlexCard Designer. See Migrating Data with Vlocity
DataPacks.
What's Next
Import a FlexCard to another environment. See Import a FlexCard.
Global Variables
NOTE
Rendered User context variable is viewable at
run time only. View in Preview.
Available properties:
Local Variables
Solution
Confirm what components are called inside an embedded component before adding it to a FlexCard. Update the components that might
cause cyclic redundancy.
Depending on the package version installed in your org, you can dynamically or manually update the
Remote Site Settings. Select the method that applies to you.
Results
In your org, go to Setup > Security > Remote Site Settings to confirm the addition of two new Remote Site
URLs:
1. Click the Warnings button in the OmniStudio FlexCards home tab and copy the visualforce.com
URL.
2. In a new browser tab, go to Setup > Security > Remote Site Settings.
3. Click New Remote Site.
4. Enter a Remote Site Name without spaces for the visualforce.com domain. For example, enter
LWC_VF.
5. Enter your copied visualforce.com URL in Remote Site URL. For example, enter https://
whitmanco--vlocity-ins.visualforce.com.
6. Confirm that the Active checkbox is enabled.
7. Click Save.
8. In your original browser tab, copy the lightning.force.com URL from the Warnings popup on the
OmniStudio FlexCards home tab.
9. Go to Setup > Security > Remote Site Settings and click New Remote Site.
10. Enter a Remote Site Name without spaces for the lightning.force.com domain. For example, enter
LWC_LF.
11. Enter the copied lightning.force.com URL. For example, enter https://
whitmanco.lightning.force.com.
12. Repeat steps 6 and 7.
1. In your org, open any FlexCard to view the FlexCard Designer, and click the Preview link in the
submenu.
2. Right-click in the white space that contains your FlexCard content to view the menu options in a popup.
Select View Frame Source to open the iframe in a new browser tab, and copy your
visualforce.com domain from the address bar. For example, https://whitmanco--vlocity-
ins.visualforce.com.
Classic Cards
Classic Cards in the Vlocity Cards Framework are UI components rich in information and actions relevant to
the customer's context. The Classic Card Designer is a declarative tool to create cards and card layouts,
with minimal HTML, CSS, and AngularJS coding.
NOTE
Beginning with Vlocity Health and Insurance Summer '19, Vlocity supports Salesforce's
Lightning Web Components programming model with Vlocity Lightning Web Components.
Vlocity Lightning Web Components include components, functionalities, and templates
exclusive to LWC Cards. LWC Cards enables you to use standard JavaScript and HTML to
modify and extend Vlocity products. To learn more, see Vlocity Lightning Web
Components.
Cards
A Vlocity card is a block that contains a combination of pertinent information and links to processes within a
specific context. For LWC enabled cards, see, LWC Cards.
An account card, for example, includes unique account information, such as:
• Status
• Priority or service level agreement
• Creation date
• Closing a case
• Opening a new case
• Creating a new task
Each action can launch an OmniScript to begin a guided process. An action can also open an external web
address or application. With an LWC enabled card, you can fire a pubsub event from an action. See Using
Actions with Cards. If your card is LWC enabled, see Using Actions with LWC Cards.
Card Flyouts
You can design a card to have an action that, when clicked, opens or "flies out" an additional card. A card
flyout contains additional information and actions related to the parent card. See Creating a Flyout. If your
card is LWC enabled, see Creating an LWC Flyout.
Card Layouts
A card layout contains one or more cards. To create a new card, you must create a card layout for it. See
Vlocity Layouts. If your card is LWC enabled, see Creating an LWC Flyout.
The Template Designer is not supported when LWC is enabled. See LWC Cards Considerations.
The base templates, layouts, and cards are the base components used by the Vlocity Lightning Console.
They serve as examples for custom components you might want to create.
1. Go to the Vlocity Templates tab and select Install BaseUITemplates from the picklist on the upper-
right.
NOTE
If you use Vlocity Insurance or Vlocity Health, select the following:
1. From Setup, type User in the Quick Find box and click User Management Settings.
2. Set the Enhanced Profile User Interface option to Disabled.
1. From Setup, type Users in the Quick Find box and click Profiles.
2. Find the profile for the users who will be accessing the community and click Edit.
3. Scroll to the Custom Object Permissions section.
4. Check View All for the following objects:
• Vlocity Actions
• Vlocity Cards
• Vlocity UI Layouts
• Vlocity UI Templates
NOTE
You can't change Custom Object Permissions for any of the default profiles. For these
profiles, the checkboxes in this section are not selectable.
5. Click Save.
1. From Setup, type Users in the Quick Find box and click Profiles.
2. Find the profile for the users who will be accessing the community and click the profile name.
If you click Edit, you won't see the Enabled Visualforce Page Access settings.
3. Scroll to the Enabled Visualforce Page Access section and click Edit.
4. Make sure the following pages are in the Enabled Visualforce Pages list:
• namespace.CommunityCanvas
• namespace.ConsoleCards
• namespace.UniversalCardPage
For namespace see Viewing the Namespace and Version of the Vlocity Package.
5. Click Save.
1. From Setup, type Users in the Quick Find box and click Profiles.
2. Find the profile for the users who will be accessing the community and click the profile name.
If you click Edit, you won't see the Enabled Apex Class Access settings.
3. Scroll to the Enabled Apex Class Access section and click Edit.
4. Make sure that namespace.CardCanvasController is in the Enabled Apex Classes list. See Viewing
the Namespace and Version of the Vlocity Package.
5. Click Save.
LWC Cards
Beginning with the Vlocity Insurance and Health Summer '19 and Vlocity Communications, Media, and
Energy Fall '19 releases, Vlocity supports the Salesforce Lightning Web Component programming model.
Vlocity Lightning Web Components enables you to use standard JavaScript and HTML to modify and
extend Vlocity Cards. Vlocity Lightning Web Components enables embedding Vlocity Cards inside
OmniScripts, and leverages the Salesforce Lightning Web Components programming model for flyouts and
editable states. For information on Vlocity's Lightning web components, see Vlocity Lightning Web
Components.
NOTE
It is possible to switch a Card to either an LWC Card or an Angular Card at any time.
However, Angular Cards and LWC Cards do not support the same components and
functionalities. For more information on Card's Lightning web component support, see
LWC Cards Considerations.
NOTE
By default, LWC enabled Cards are exposed to the Lightning App Builder and are visible
as custom components. To change the visibility, use the Show XML Interface feature. See
Creating an LWC Card Layout.
Beginning with the Vlocity Insurance and Health Summer '19 and Vlocity Communications, Media, and
Energy Fall '19 releases, Vlocity supports the Salesforce Lightning Web Component programming model.
Changes and Enhancements for Vlocity Insurance and Health Summer '20
New Functionalities Exclusive to Vlocity Cards Lightning Web Components
Functionality Description
Enable Newport From the Layout panel of the Card Designer, when LWC is enabled, you can also enable the Newport Design
System to load the Newport CSS resource to your LWC Card layout. Your layout and card templates must have
Newport support.
Changes and Enhancements for Vlocity Insurance and Health Spring '20
Changes and Enhancements for Vlocity Insurance and Health Winter '20 and CME Winter
'20
Changes and Enhancements for Vlocity Insurance and Health Summer '19 and Vlocity
Communications, Media, and Energy Fall '19
Process Change
Accessing Base Card While base card templates are readily available in the Summer '19 release package, they are also
Templates available through IDX Workbench for customization.
Add LWC Cards to Pages In the Lightning App Builder and Community Builder, you can add a Card directly from the Custom
components list of the Components pane to the canvas area.
LWC Cards do not support all functions, features, and data sources that Angular Cards support.
IMPORTANT
See LWC Cards Changes and Enhancements for new features and enhancements.
Unsupported Features
Considerations for Vlocity Insurance and Health Summer '19 and Vlocity
Communications, Media, and Energy Fall '19
Unsupported Features
• Streaming API
• Async/Queueable support on Integration Procedures and Apex Remotes
Beginning with the Vlocity Insurance and Health Summer '19 and Vlocity Communications, Media, and
Energy Fall '19 releases, Vlocity supports the Salesforce Lightning Web Component programming model.
With Vlocity Lightning Web Components, use standard JavaScript and HTML to modify and extend Vlocity
Cards, embed LWC Cards inside OmniScripts, and embed other Vlocity Lightning Web Components inside
card states.
1. In your org, click the App Launcher, click Vlocity Cards, and click New.
2. Enter a unique Layout Name and follow Vlocity required naming conventions and best practices. See
Card and Card Layout Naming Conventions.
NOTE
Beginning with Vlocity Insurance and Health Spring '20, when creating a card or
layout, the name and author must only contain underscores and alphanumeric
characters. It must be unique, begin with a letter, not include spaces, not end with an
underscore, and not contain two consecutive underscores. Existing layout names and
card names are automatically updated to make them compliant. New cards and
layouts can not be saved without following these naming requirements.
1. In your org, click the App Launcher, click Vlocity Cards, and click a card layout version to open the
Card Designer.
2. If the card is active, deactivate it by clicking Activate in the Layout pane.
3. In the LWC Settings section of the Layout pane, click Enable LWC.
4. In the Layout LWC field, select an LWC card layout template, such as cardCanvasLayout. See
Base LWC Card and Layout Templates.
5. In the States pane, select a State LWC template for each card state, such as card-active-state.
6. Click Deploy in the Layout pane.
What's Next
Next steps, configure other layout properties in the Layout pane, such as configuring a data source. See
Configuring Card Layout Properties.
See Also
After creating an LWC card layout, configure the optional layout properties in the LWC Settings of the
Layout pane of the Card Designer.
IMPORTANT
If there are any changes to a card or card layout, a notification message appears
alerting you of changes to deploy.
2. Click Deploy in Preview If there are undeployed changes when attempting to preview your layout.
To learn more about a component's configuration file, see Component Configuration File.
1. Open the Vlocity Cards tab, and click a version of an LWC enabled layout to open the Card Designer.
2. In the Layout pane, click Show XML Interface.
IMPORTANT
You must activate the layout to enable the Show XML Interface feature.
Adding Properties Beginning with Vlocity Insurance and Health Spring '20
3. In the Select Property Type (Required) field, to specify the property data type, select Integer, String,
or Boolean.
4. In the Attributes Added section, enter a variable name for the name attribute, such as debug. The
name attribute is required for each property.
5. Select additional attributes to add to your property from the Attributes dropdown list. See
Configuration File Tags for descriptions of each available attribute.
8. Click Save.
1. Click the pencil icon for the Target Name whose property you want to edit or delete.
2. Click the radio button next to the property name.
1. Click the pencil icon for the Target Name whose property attribute you want to remove.
2. Click the radio button next to the property name.
3. Click the pencil icon for the property.
4. In the Attributes Added section, click the X next to the attribute you want to remove.
3. Add a variable name for the name attribute. The name attribute is required for each property, such as
debug.
4. In the Select Property Type (Required) field, to specify the property data type, select Integer, String,
or Boolean.
5. Select an additional attribute to add to your property from the Fields dropdown list. See Configuration
File Tags for descriptions of each available attribute.
7. (Optional) If your Target Name is RecordPage, click into the Object field and start typing to choose an
object from the picklist.
8. Click Save.
1. Click the pencil icon for the Target Name property to edit or delete.
2. Click the radio button next to the property name.
1. Click the pencil icon for the Target Name property attribute to remove.
2. Click the radio button next to the property name.
3. Click the pencil icon for the property.
4. From the Fields dropdown, select the attribute to remove. This removes the attribute from the list of
added attributes.
Create a custom LWC card template from an existing template, or from one of Vlocity's base mixins, such
as BaseState LWC for card states and BaseLayout LWC for layouts.
NOTE
Custom Lightning web components built outside of the package cannot use any Salesforce
Lightning web component that uses Salesforce resources or affects the component at run
time. For more information, see Salesforce Modules.
• To manage and develop your LWCs with Salesforce DX, see Set Up Your Development Environment.
• To manage and develop your LWCs with IDX Workbench, see IDX Workbench Desktop Application.
Create a new custom LWC card state template by extending the BaseState mixin. See Creating a New
Custom LWC Card State Template.
Create a custom LWC card state template by extending an existing state template. See Extending a
Template to Create a Custom LWC Card State Template.
1. To manage and develop Vlocity Lightning Web Components, use Salesforce DX with Visual Studio or
IDX Workbench with Visual Studio. Both development approaches have source control. However, we
recommend IDX Workbench because it enables you to migrate Vlocity components from one org to
another and compare both source and target files.
• To manage and develop your LWCs with Salesforce DX, see Set Up Your Development
Environment.
• To manage and develop your LWCs with IDX Workbench, see IDX Workbench Desktop Application.
2. Create a new component in your local development environment. See Create Lightning Web
Components.
1. Import the BaseLayout mixin from your Vlocity namespace. See Viewing the Namespace and Version
of the Vlocity Package.
For example, if your namespace is vlocity_cmt:
Example JS
The following example overwrites the render() method that returns the HTML template.
render() {
return temp;
}
}
• Inside the <template> tag, enter the HTML to create the structure and display the content of your
custom LWC layout template.
Example HTML
The following example shows a basic layout that uses the lightning-card component as a container to
group information.
<template>
<div class="via-slds">
<!-- spinner section shows while the data loads-->
<div class="slds-is-relative">
<vlocity_cmt-spinner
if:false={isLoaded}
variant="brand"
size="medium"
alternative-text="loading"
></vlocity_cmt-spinner>
</div>
<!-- wrapping the cards in a lightning-card to add a stylized container -->
<lightning-card title="My Title here">
<lightning-button label="Custom Button" slot="actions">
</lightning-button>
<p class="slds-p-horizontal_small">
<!-- card slot -->
<slot></slot>
</p>
</lightning-card>
</div>
</template>
• Set the runtimeNamespace metadata tag to your org's namespace. This enables your custom LWC
layout template to run within the Vlocity namespace, and access the BaseLayout mixin and other
components. See Viewing the Namespace and Version of the Vlocity Package.
NOTE
After deploying your LWC to your org, you can set or update other metadata values, such
as targets, masterLabel, apiVersion, and isExposed, with the Show XML Interface in the
Card Designer. See Configuring the Metadata Values for an LWC Card. The
runtimeNamespace cannot be set or updated in the Card Designer.
Example XML
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>46.0</apiVersion>
<isExposed>true</isExposed>
<masterLabel>Three Column Layout</masterLabel>
<runtimeNamespace>vlocity_cmt</runtimeNamespace>
</LightningComponentBundle>
1. To manage and develop Vlocity Lightning Web Components, use Salesforce DX with Visual Studio or
IDX Workbench with Visual Studio. Both development approaches have source control. However, we
recommend IDX Workbench because it enables you to migrate Vlocity components from one org to
another and compare both source and target files.
• To manage and develop your LWCs with Salesforce DX, see Set Up Your Development
Environment.
• To manage and develop your LWCs with IDX Workbench, see IDX Workbench Desktop Application.
2. Create a new component in your local development environment. See Create Lightning Web
Components.
In the JS file:
1. Import the LWC template you want to extend from your Vlocity namespace. See Viewing the
Namespace and Version of the Vlocity Package.
For example, to extend the CardCanvasLayout LWC template:
render() {
return temp;
}
4. Confirm that your class declaration has the extends keyword.
For example, if your class is threeColumnCanvas:
Example JS
The following example overwrites the render() method that returns the HTML template, and the
searchCard() method that searches for a record name.
render() {
return template;
}
searchName(recordName) {
this.allRecords = this.allRecords ? this.allRecords : this.records;
if (this.allRecords) {
if (recordName) {
let data = [...this.allRecords];
let filteredRecords = [];
data.forEach(element => {
let val = element['Name'];
if (val && typeof val == "string" &&
val.indexOf(recordName) !== -1) {
filteredRecords.push(element);
}
});
this.records = filteredRecords;
} else {
this.records = [...this.allRecords];
}
this.setCardsRecords();
}
}
}
• If you choose to overwrite the HTML from the extended LWC template, enter the HTML to create the
structure and display the content of your custom LWC layout template.
Example HTML
The following example shows a basic card that extends the CardCanvasLayout LWC template. The
template shows how to reference Vlocity base components, such as Input LWC.
<template>
<div class="via-slds">
<div class="slds-grid slds-gutters">
<div class="slds-col">
<vlocity_cmt-input
oninput={searchCard}
size="x-small"
icon-name-left="utility:search"
placeholder="Search name."
></vlocity_cmt-input>
</div>
<div class="slds-col"></div>
</div>
<slot></slot>
</div>
</template>
• Set the runtimeNamespace metadata tag to your org's namespace. This enables your custom LWC
layout template to run within the Vlocity namespace, and access the extended LWC layout template
and other components. See Viewing the Namespace and Version of the Vlocity Package.
NOTE
After deploying your LWC to your org, you can set or update other metadata values, such
as targets, masterLabel, apiVersion, and isExposed, with the Show XML Interface in the
Card Designer. See Configuring the Metadata Values for an LWC Card. The
runtimeNamespace cannot be set or updated in the Card Designer.
Example XML
The following example shows an LWC configured for visibility on a record page, app page, and home page.
<runtimeNamespace>vlocity_cmt</runtimeNamespace>
</LightningComponentBundle>
1. To manage and develop Vlocity Lightning Web Components, use Salesforce DX with Visual Studio or
IDX Workbench with Visual Studio. Both development approaches have source control. However, we
recommend IDX Workbench because it enables you to migrate Vlocity components from one org to
another and compare both source and target files.
• To manage and develop your LWCs with Salesforce DX, see Set Up Your Development
Environment.
• To manage and develop your LWCs with IDX Workbench, see IDX Workbench Desktop Application.
2. Create a new component in your local development environment. See Create Lightning Web
Components.
1. Import the BaseState mixin from your Vlocity namespace. See Viewing the Namespace and Version of
the Vlocity Package.
For example, if your namespace is vlocity_ins:
Example JS
The following example overwrites the render() method that returns the HTML template.
render() {
return temp;
}
}
• Inside the <template> tag, enter the HTML to create the structure and display the content of your
custom LWC card state template.
Example HTML
The following example shows a basic card that loops through fields and actions. The template shows how
to reference Vlocity base components like output-field and action.
<template>
<div if:true={selectedState} class="slds-p-top_small">
<div class="slds-card via-slds-card--active slds-m-bottom--small">
<div
class="slds-card__body slds-p-around-small slds-grid slds-wrap slds-
theme--default slds-p-around--medium"
>
<div class="slds-col--padded slds-size--1-of-2">
<!-- You can repeat over the fields - available inside of
state.fields -->
<div
key={field.name}
class="via-field slds-tile slds-p-bottom--medium"
for:each={state.fields}
for:item="field"
for:index="index"
onmouseleave={resetIcon}
>
<p
key={field.name}
class="slds-truncate slds-text-heading--label slds-p-right_large"
title={field.label}
>
{field.label}
</p>
<div
key={field.label}
class="slds-tile__detail slds-text-heading--small"
>
<!-- the output field will display the field values formatted -->
<vlocity_ins-output-field
record={obj}
field-name={field.name}
type={field.type}
></vlocity_ins-output-field>
</div>
</div>
</div>
• Set the runtimeNamespace metadata tag to your org's namespace. This enables you custom LWC
card state template to run within the Vlocity namespace, and access the BaseState mixin and other
components. See Viewing the Namespace and Version of the Vlocity Package.
NOTE
After deploying your LWC to your org, you can set or update other metadata values, such
as targets, masterLabel, apiVersion, and isExposed, with the Show XML Interface in the
Card Designer. See Configuring the Metadata Values for an LWC Card. The
runtimeNamespace cannot be set or updated in the Card Designer.
Example XML
1. To manage and develop Vlocity Lightning Web Components, use Salesforce DX with Visual Studio or
IDX Workbench with Visual Studio. Both development approaches have source control. However, we
recommend IDX Workbench because it enables you to migrate Vlocity components from one org to
another and compare both source and target files.
• To manage and develop your LWCs with Salesforce DX, see Set Up Your Development
Environment.
• To manage and develop your LWCs with IDX Workbench, see IDX Workbench Desktop Application.
2. Create a new component in your local development environment. See Create Lightning Web
Components.
In the JS file:
1. Import the LWC template you want to extend from your Vlocity namespace. See Viewing the
Namespace and Version of the Vlocity Package.
For example, to extend the CardActiveState LWC template:
render() {
return temp;
}
4. Confirm that your class declaration has the extends keyword.
For example, if your class is customCardActiveState:
Example JS
The following example overwrites the render() method that returns the HTML template, and the
trackInteraction() method that tracks interactions.
render() {
return temp;
}
trackInteraction(event) {
let element = event.target;
// custom code
}
}
• If you choose to overwrite the HTML from the extended LWC template, enter the HTML to create the
structure and display the content of your custom LWC card state template.
Example HTML
The following example shows a basic card that extends the CardActiveState LWC template. The template
shows how to reference Vlocity base components, such as Icon LWC.
<template>
<div if:true={selectedState} class="slds-p-top_small">
<div class="slds-card via-slds-card--active slds-m-bottom--small">
<table class="slds-card__body slds-p-around-small slds-wrap slds-
theme--default slds-p-around--medium">
<tr key={field.name} class="slds-tile slds-p-bottom--medium"
for:each={state.fields} for:item="field"
for:index="index" onmouseleave={resetIcon}>
<td key={field.name} class="slds-col slds-truncate slds-
text-heading--label slds-p-right_large"
title={field.label}>
{field.label}
</td>
<td key={field.label} class="slds-col slds-tile__detail
slds-text-heading--small">
<vlocity_ins-output-field record={obj} field-
name={field.name} type={field.type}>
</vlocity_ins-output-field>
</td>
<td class="slds-col slds-tile__detail slds-text-heading--
small">
<vlocity_ins-icon data-fieldindex={index}
onclick={trackInteraction} icon-name="utility:preview"
class="trackIcon" size="small"></vlocity_ins-icon>
</td>
</tr>
</table>
</div>
</div>
</template>
• Set the runtimeNamespace metadata tag to your org's namespace. This enables you custom LWC
card state template to run within the Vlocity namespace, and access the extended LWC card state
template and other components. See Viewing the Namespace and Version of the Vlocity Package.
NOTE
After deploying your LWC to your org, you can set or update other metadata values, such
as targets, masterLabel, apiVersion, and isExposed, with the Show XML Interface in the
Card Designer. See Configuring the Metadata Values for an LWC Card. The
runtimeNamespace cannot be set or updated in the Card Designer.
Example XML
The following example shows an LWC configured for visibility on a record page, app page, and home page.
IMPORTANT
Beginning with Vlocity Insurance and Health Spring '20, the download feature is enabled
for custom LWC templates and custom components only.
To download a custom LWC layout or card state template or component from the Card Designer:
1. In your org, click App Launcher, click Vlocity Cards, and click a version of a card layout to open the
Card Designer.
2. To download a custom layout LWC template or component, in the Layout pane, click the download icon
next to the Layout LWC field.
3. To download a custom state LWC template or component, in the States pane, click the download icon
next to the State LWC field.
With an LWC flyout, choose any LWC enabled component to use as a flyout, such as an LWC card layout,
an LWC OmniScript, and a custom LWC you've created.
Alternatively, create an LWC enabled flyout layout as you would create an Angular flyout.
1. Go to the Vlocity Cards tab and click New to create a new card layout.
2. On the New Layout screen, in the Type field, select Flyout.
3. Click Enable LWC in the Layout pane.
4. (Optional) Configure the flyout Data Source if your flyout does not need to use data from the parent
context variable of the card layout where you'll add your flyout. See Configuring Data Sources for
Cards Components.
5. Click Activate on the Layout pane and on each card.
NOTE
You must activate the LWC enabled component for it to appear in the dropdown list.
See Creating an LWC Card Layout.
3. To set the attributes of the LWC enabled component, click Add Attributes in the Flyout Properties
section.
For example, the dataTable component requires values for both records and columns attributes
whose values must be data references. Enter records and $scope.records as the first key-value
pair to get the list of records and then enter columns and $scope.session.columns as the second
key-value pair to set column titles.
A wrapper encases the custom LWC, which sits inside a slot and is fed data from the card's data source.
For example, if you have an LWC dataTable with custom styling, you can embed it in a card state. Then
configure the component's custom attributes, such as records and columns, on the card to determine how
and what data to pull from the card or card layout's data source.
1. Create a Custom LWC by extending an existing Vlocity Lightning web component. See Extend Vlocity
Lightning Web Components.
2. Create an LWC Card layout. See Creating an LWC Card Layout.
Embedding an LWC
To embed an LWC inside a card state:
1. Open the Vlocity Cards tab, and click a version of a card layout to open the Card Designer.
2. Check the Custom LWC checkbox of a card state.
3. Enter the name of a Lightning Web Component in the State LWC field. For example, enter dataTable
to show a list of accounts and related data from the card or card layout's data source.
4. In the Custom LWC Attributes section, enter attributes available to the embedded component as key-
value pairs.
For example, the dataTable component requires values for both records and columns attributes,
whose values must be data references. Enter records and $scope.records as the first key-value
pair to get the list of records, and then enter columns and $scope.session.columns as the
second key-value pair to set column titles.
IMPORTANT
The Name of a custom LWC attribute must match the custom LWC attribute's markup
name. For example, the targetType attribute from the NavigateAction LWC must be
written as target-type.
5. (Optional) In the Card Session Variables section of the card, enter a key-value pair for attributes
whose values have additional attributes, such as a JSON object.
For example, in the dataTable example, the columns attribute value must be a JSON object listing
record field names, used as column titles, and related properties. The session variable key is columns
and its value is [{"fieldName": "Name", "label": "Account", "sortable" : "true"},
{"fieldName": "Website", "label": "Website"},{"fieldName": "Phone",
"label": "Phone"}].
6. (Optional) To display a component once per record, check the Repeat state over records checkbox.
For example, if your Custom LWC gets account information, such as name, primary contact, and so
forth, select this option to display a component for each account record.
a. Open the Vlocity Cards tab and click a card layout to open a version in the Cards Designer.
b. Click Show XML Interface in the Cards pane.
c. Select the CommunityDefault checkbox.
d. Click the pencil icon next to CommunityDefault.
e. Click the + icon next to Add Properties.
f. Add recordId as the variable name for the name attribute.
g. In the Select Property Type (Required) section, select String.
h. Click Save to save the property.
i. Click Save to save changes to the Metadata Configuration file.
To add the recordId property from your LWC Card's configuration file:
a. In your configuration file, add the targetConfig tag.
b. Inside the targetConfig tag, add a property tag with the name recordId and the type String.
<targetConfig targets="lightningCommunity__Default">
<property name="recordId" type="String" ></property>
</targetConfig>
2. Add your LWC card to your Community page. See Adding an LWC Card to a Lightning or Community
Page.
3. In the recordId property field, enter {!recordId}.
• Vlocity Actions: Adds preconfigured actions created in the Vlocity Actions tool in your org. Vlocity
Actions are reusable on multiple cards. See Vlocity Actions.
• Custom Actions: Create an action unique to the card state. A custom action is not reusable on other
cards. See Adding a Custom Action to a Card.
• OS Actions: Launch an OmniScript from your card state. See Launching an OmniScript from an OS
Action on a Card.
NOTE
Beginning with the Vlocity Summer '19 release, launch an LWC OmniScript from an OS
Action. See Launching an LWC OmniScript from an OS Action on a Card.
• Smart Actions: Beginning with the Vlocity Summer '19 release, Vlocity supports generating and
returning actions to an LWC Card at runtime by using a Vlocity Integration Procedure, which reduces
server processing time, increasing performance. See Configuring Smart Actions on an LWC Card.
• PubSub Action: Beginning with Vlocity Insurance and Health Vlocity Spring '20, Vlocity supports firing
pubsub events from an action on an LWC Card. See Firing a Pubsub Event from an Action on an LWC
Card.
Beginning with the Summer '19 release, Vlocity supports Salesforce's Lightning Web Components
programming model with Vlocity Lightning Web Components. Vlocity Lightning Web Components include
components, functionalities, and templates exclusive to LWC Cards. See LWC Cards Considerations and
Configuring Smart Actions on an LWC Card.
NOTE
In the code samples below, replace NameSpace with your org's Vlocity namespace prefix.
See Viewing the Namespace and Version of the Vlocity Package.
1. Open a card from the Vlocity Cards tab and click Add Custom Action in the card state.
2. In the Id field, to distinguish the action from other actions in the card designer, enter a unique name.
For example, ActiveAccountUpdate.
3. In the Display Name field, enter the name to display to the user. For example, Update Account.
4. In the URL field, enter the URL to which the action links. See Target URL and URL Parameters.
5. Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, in LWC Cards,
Custom Actions support Salesforce PageReference Types that enable navigation within Lightning
Experience, within Communities, or to an external web address. See PageReference Types.
From the Target Type drop-down, select a page reference type:
• App: Navigates to a standard or custom app available from the App Launcher in an org.
Property Description
App Target The app that you are navigating to. Pass either the appId or appDeveloperName to the appTarget.
Type The standard or custom app available from the App Launcher.
Action Name Enter the name of the action.
API Name Enter the API name of the app.
RecordId Enter the record Id of the record to navigate to.
• Login: Navigate to a page for authentication into a community.
Property Description
Target Actions Enter a valid action name to call.
Target Parameters Click Add Parameters to pass contextual data as key-value pairs. See Add Query Parameters.
• Component: Navigates to a Lightning component or a Lightning Web Component, such as a card or
an OmniScript.
Property Description
Component Enter the component name. For example, NameSpace__vlocityLWCOmniWrapper.
Name
Property Description
Target Click Add Parameters to pass contextual data as key-value pairs. For example, enter parameters to get
Parameters a specific OmniScript and set the layout type to Newport Designing System instead. In the first key-value
pair, enter NameSpace__target as the key and NameSpace:GetAccountDetails as the value. In
the second key-value pair, enter layout as the key and newport as the value.
Property Description
Article URL Enter the article's urlName. For example, Client-Updates.
Target Article Type Enter the API name of the Knowledge Article record. For example, client_updates.
NOTE
In Lightning Knowledge, standard record types replace custom article types.
Property Description
Object API Name Enter the API name of the standard Salesforce object or custom object. For example, Account for a
standard object, or NameSpace_Application__c for a custom object.
Target Action Enter action names to call. Valid values are home, list and new. See PageReference Types.
Property Description
Object API Name Enter the API name of the object, such as Account.
Target Action Enter a valid action name to call. Valid values are clone, view, and edit. Communities do not support
clone or edit.
Target Id Enter the record ID.
• Record Relationship: Navigates to a relationship on a particular record. Only related lists are
supported.
Property Description
Object API Name Enter the API name of the object, such as Account.
Target Action Enter the valid action name to call. A valid value is view.
Target Id Enter the record ID that defines the relationship, such as an account's case record Id.
Target Relationship Enter the API name of the related object, such as Case.
Property Description
Page Name Enter the name of a standard page in Lightning Experience. For example, enter
NameSpace__VlocityCardHome to navigate to the Vlocity Cards tab or home to navigate to the
landing page of your org.
Target Click Add Parameters to pass contextual data as key-value pairs. See Add Query Parameters.
Parameters
• Navigation Item: Navigates to a Custom Tab. Visualforce tabs, web tabs, Lightning Pages, and
Lightning Component tabs are supported.
Property Description
Custom Tab Name Enter a custom tab name, such as NameSpace_Households for a Vlocity managed tab or
Console_Home for an unmanaged tab.
Target Parameters Click Add Parameters to pass contextual data as key-value pairs. See Add Query Parameters.
• Web Page: Navigates to a web address.
Property Description
URL Enter an external web address, such as https://vlocity.com/.
• Community Named Page: Navigates to a Community page.
Property Description
Community Page Name Enter a community page name. For example, contactsupport directs to the community url + '/
contactsupport'.
Target Parameters Click Add Parameters to pass contextual data as key-value pairs. See Add Query Parameters.
6. (Optional) Enter values for these properties:
• Vlocity Icon: Select a Vlocity icon or an SLDS icon to display next to the action link. For a complete
list of Vlocity Icons, go to the Vlocity Actions tab, open any action, and click the Vlocity Icons
header label to reveal the list of icons.
• Open URL in: Select Current Window or New Tab/Window to indicate where to open the URL.
To configure the action to invoke an Apex class, see Configuring Action Options.
Reduce server processing time and increase performance. Use a Vlocity Integration Procedure to generate
and return actions to an LWC Card at run time.
IMPORTANT
You must create an Integration Procedure before you can follow the steps on this page.
NOTE
Prior to Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, you must
click the Actions dropdown to select Smart Actions.
5. Click into the IP Name input field and select an existing Integration Procedure from the list that
appears. The Integration Procedure must include an Intelligence Action.
NOTE
Vlocity recommends using Vlocity Intelligence. However, you can use your own
machine learning framework with the schema outlined on this page.
IMPORTANT
The Integration Procedure must return the following schema. A Vlocity Intelligence
Action returns this schema by default.
[
{
"OfferRecommendation": "test",
"targetObjectType": "Vlocity Action",
"targetObjectKey": "open-claim",
"virtualResourceId": null,
"virtualResourceData": null,
"rejectLast": null,
"rejectDecay": 0,
"acceptLast": null,
"acceptDecay": 0,
"viewLast": null,
"viewDecay": 0,
"currentMachine": "smartCard",
"contextId": "02i3u0000099Ul0AAE",
"info": null,
"attachment": {
"Icons_-_Lightning_Design_System-3":
"00P3u00000dqZ1REAU",
"Smartcard": "00P3u00000dk5JvEAI",
"Ranking": "00P3u00000dZWuaEAG"
},
"scaledRawScore": 100,
"formattedAggregatedScore": 1,
"aggregatedScore": 1,
"componentScores": [
{
"scoreParameters": [
{
"score": 100,
"objectTypeString": "vlocityins2__Attribute__c",
"name": "OpenClaim",
"identifier": "openClaim"
}
],
"scaledScore": 1,
"normalizedScore": 1,
"rawMaxScore": 100,
"rawMinScore": 0,
"scaledRawScore": 100,
"rawMultiplier": 1,
"rawScore": 100,
"scoringComponentName": "VqScoringImplProfileMatch"
}
],
"resource": {
"vlocityins2__TargetObjectType__c": "Vlocity Action",
"vlocityins2__TargetObjectKey__c": "open-claim",
"vlocityins2__IsActive__c": true,
"vlocityins2__Headline__c": "There is open claim!",
"vlocityins2__EffectiveDate__c":
"2019-11-07T08:00:00.000Z",
"vlocityins2__Description__c": "There is open claim.
Please handle.",
"SystemModstamp": "2019-12-18T22:19:25.000Z",
"LastModifiedById": "0056A000000taWIQAY",
"LastModifiedDate": "2019-12-18T22:19:25.000Z",
"CreatedById": "0056A000000taWIQAY",
"CreatedDate": "2019-11-13T01:59:48.000Z",
"Name": "Open Claim",
"IsDeleted": false,
"OwnerId": "0056A000000taWIQAY",
"Id": "a3k3u000000OJ8NAAW"
}
},...
]
6. Enter the values for the following if the Integration Procedure requires them:
• Input Map. Enter name-value pairs in this field to send input parameters to the Integration
Procedure.
• Options Map. Enter name-value pairs in this field to send optional parameters to the Integration
Procedure.
For example, create an action link that fires a pubsub event called openPolicy that opens a Policy record
page from any component that listens for the event.
1. Open the Vlocity Cards tab, and click a layout to open a version in the Card Designer.
2. In the Actions section of a State, click + Add PubSub Action.
3. In the Id field, to distinguish the action from other actions in the Card Designer, enter a unique name.
For example, openPolicy.
4. In the Display Name field, enter the name to display to the user. For example, Go to Policy.
5. (Optional) In the Vlocity Icon field, select a Vlocity icon or an SLDS icon to display next to the action
link. For a complete list of Vlocity Icons, go to the Vlocity Actions tab, open any action, and click the
Vlocity Icons header label to reveal the list of icons.
6. In the Event Name field, enter the name of an event to fire.
7. In the Message field, enter a message for the event.
8. (Optional) Check the Actions Options checkbox to pass Custom Parameters and add Conditions.
See Configuring Action Options.
After enabling and activating your LWC Card, add your card to a Lightning Page or Community Page.
1. In your org, go to Setup > Lightning App Builder and click Edit for an existing Lightning app to open the
Lightning App Builder.
2. From the Lightning Components pane, find your generated Card Lightning web component from the list
of Custom components and drag it to the canvas area.
IMPORTANT
By default, active layouts are visible for all page types in the Lightning App Builder. If
you don't see your LWC Card, confirm that it is active and available to your Custom,
Home, or Record page app. In your Card, check that the correct Target Name is
checked in your Show XML Interface settings. See Configuring the Metadata Values
for an LWC Card.
3. (Optional) In the properties pane, set Component Visibility. See Dynamic Lightning Pages.
4. Save and Activate your app.
1. In your org, go to Service Setup > All Communities and click Builder for an existing Community to
open the Community Builder.
2. Click the blue and white lightning bolt icon on the left to open the Components pane.
3. From the list of Custom Components in the Components pane, find the name of your generated Card
Lightning web component and drag the Card to the canvas area.
IMPORTANT
If you don't see your LWC Card, confirm that it is active and available to the
Community Builder. In your Card, check that the appropriate Target Name is checked
in your Show XML Interface setting. See the Show XML Interface step in Creating an
LWC Card Layout.
IMPORTANT
If your LWC Card uses the {{params.id}} context variable in an Input Map to pass
a context Id to an Apex Remote, DataRaptor, or Integration Procedure data source, to
view the record data on the LWC Card on your Community page, you must create and
configure a recordId property. See Accessing the Context Id of an LWC Card on a
Community Page.
4. (Optional) In the properties pane, set Component Visibility. See Dynamic Lightning Pages.
5. Preview or Publish your community.
To learn how to add and configure the Vlocity Profiler component, see Adding Profile Attributes to a
Lightning or Community Page.
To learn how to add and configure Smart Actions on an LWC Card, see Configuring Smart Actions on an
LWC Card.
In the Layout Session Variables section of the LWC enabled story-slds card, the actions session stores
the preconfigured list of new record actions as a comma-separated list of objecType:label pairs:
Case:Case,Task:Task,Order:Order,Note:Note,Campaign:Campaign,Event:Event,Opportu
nity:Opportunity
The preconfigured list displays by default and when the data source of the story card return no records.
IMPORTANT
If there are no records for any one of the enabled new actions, the Customer Story
card displays the preconfigured list of actions defined in the actions session of the
LWC enabled story-slds card.
When spinning a new org or new installation, the Tooling API calls necessary for Vlocity LWC may fail if the
Remote Site Settings page in your org does not include the URLs required.
The required URLs are your org's lightning.force.com URL and the visualforce.com URL of the Visualforce
page that contains the Card Designer.
Results
In your org, go to Setup > Security > Remote Site Settings to confirm the addition of two new Remote Site
URLs:
1. In your org, click the App Launcher, click Vlocity Cards, right-click anywhere in the tab, select Frame
Source to open the iframe in a new browser tab, and copy your domain from the address bar. For
example, copy https://whitmanco--vlocity-ins.visualforce.com.
Beginning with the Vlocity Insurance and Health Summer '19 and Vlocity Communications, Media, and
Energy Fall '19 releases, Vlocity supports the Salesforce Lightning Web Component programming model.
1. In the Layout pane of a Vlocity Card, ensure the Type is set to Layout.
2. Enter a layout name in the Layout LWC field.
1. In the Cards pane of a Vlocity Card, ensure your card is not active.
2. In the States pane of a Vlocity Card, enter a card template name in the State LWC field.
cardActiveState Displays a card with an image and title in a header, and a two-column body Any
with a list of fields in the first column and a list of actions in the second
column. Has flyout functionality.
cardMiniActive Displays a two-column card with an image or icon in the first column, and Any
data and actions in the second column. Has max-height and truncates
descriptive text at 2 lines.
cardOpenState Displays a card as a centered image and text block that links to the first Any
action. Remaining actions display in an inline grid beneath the image and
text block. Has flyout functionality.
wideCard Displays a wide layout with an image, a list of actions, the status of the Any
card state, and a list of fields as an inline grid. Has flyout functionality.
wideCardSlim Displays a wide layout with an image, a list of actions, the status of the Any
card state, and a list of fields as an inline grid.
wideCardSmart Displays a wide layout with an image, the status of the card state, a list of Any
fields as an inline grid, and displays a list of Smart Actions. Has flyout
functionality. See Configuring Smart Actions on an LWC Card.
Flyout Templates
Flyout templates enable users to view information or access additional actions for the current record or a
child record. To create a flyout layout template, see Creating a Flyout.
1. In the Layout pane of a Vlocity Card, ensure the Type is set to Flyout.
2. Enter a layout name in the Layout LWC field:
storyNormalState Displays a story item as an image in the first column, and the storyCardCanvas
title and data fields in the second column.
Component Description
ActionGridState Displays a vertical list of actions as icons followed by labels, and an optional title at the top.
CardActiveState A card state template with a header
CardMiniActive A card state template without a header.
CardOpenState A simplified card state with a centered linked image and additional links below as actions.
LeftAccountInfoState A console card template displaying simplified account data.
LeftProfileState A console card template that displays acccount information with a google map as a background header and
limited data fields and actions.
ProfileCardState A console card template that displays account information with no limit on data and actions.
StoryEditStateFlyout Customery story console card template displays as a flyout.
StoryNormalState Customer story console card that displays story data as a card's default state.
StoryOngoingState Customer story console card that displays story data.
WideCard A card template with a wide layout for one-column layouts with a header.
WideCardSlim A card template with a wide layout for one-column layouts without a header.
WideCardSmart A card template with a wide layout for one-column layouts that work with Smart Actions.
Component Description
CardCanvas1x A one-column layout without a header.
CardCanvasLayout A one-column layout with a header.
StoryCardCanvas A one-column console layout for customer story cards.
Feature Description
theme Specifies which theme to use, slds or nds.
title If the session title variable is set, it displays as the card title. If the session title variable is not set, a card title is not
shown.
actions Lists the actions configured. Actions display as a vertical list. Each row has an action icon followed by the action label.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The CardActiveState LWC Card Template displays a card state template for a card active state. The layout
includes a header with image and title, has flyout functionality, and field tracking capability. The body is a
two-column section, where data fields display as block elements in the first column and actions display as
block elements in the second column.
Feature Description
theme Specifies which theme to use, slds or nds.
header icon Displays an icon in the header. By default, displays the sObject type icon.
header title Displays the title of the card. By default, the title of the card is the first field configured.
fields Lists the data fields configured. Data fields display in the first column.
actions Lists the actions configured. Actions display in the second column.
tracking On focus, each field displays an eye icon that triggers tracking when clicked.
flyout By default, this template has a flyout. When a user clicks the expand icon, the configured flyout displays in a modal.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The CardCanvas1x LWC Layout Template displays a one column LWC card layout template.
Feature Description
cards The layout displays cards with one card in each row.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The CardCanvasLayout LWC Layout Template displays a one column LWC card layout template with a
header that includes a title and a search box.
Feature Description
title Sets the layout title.
search bar When a user enters text into the search box, only cards containing that text displays.
cards The layout displays cards with one card in each row.
Feature Description
fields By default, the title of the card is the first data field configured. The remaining data fields display as blocks.
actions, smartActions By default, actions display below fields. Only two actions are visible at anypoint based on the order added.
session Specifies session variables to add to the card. See Available session Variables on this page.
Variable Description
leftImage Sets the left image URL. For example, /image-url.jpg. URL can be relative or absolute.
leftIcon Sets the left icon. For example, standard:icon
rightImage Sets the left image URL. For example, /image-url.jpg. URL can be relative or absolute.
rightIcon Sets the right icon. For example, standard:icon
imageStyle Sets the css style for both left and right images. For example, height: 100px; border: 1px;
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The CardMiniActive LWC Card Template displays a card state template with two columns. An icon or image
displays in one column, while the data fields and actions display in the other column. The user can
configure multiple images with session variables. However, one image is recommended.
Feature Description
fields By default, the title of the card is the first data field configured. The remaining data fields display as blocks.
actions, smartActions By default, all actions display below the fields.
session Specifies session variables to add to the card. See Available session Variables on this page.
Variable Description
leftImage Sets the left image URL. For example, /image-url.jpg. URL can be relative or absolute.
leftIcon Sets the left icon. For example, standard:icon
rightImage Sets the left image URL. For example, /image-url.jpg. URL can be relative or absolute.
rightIcon Sets the right icon. For example, standard:icon
imageStyle Sets the css style for both left and right images. For example, height: 100px; border: 1px;
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The CardOpenState LWC Card Template displays a card state template that displays actions only. The
layout includes a centered image and text block linked to the first action, and has flyout functionality.
Remaining actions display in an inline grid beneath the image and text block.
Feature Description
theme Specifies which theme to use, slds or nds.
icon By default, if the state has an action, the document icon displays at the center of the card. Icon links to the target URL of
the first action.
state name By default, if the state has an action, the state name displays at the center of the card, below the document icon. State
name links to the target URL of the first action.
actions By default, the state name at the center of the card gets the target link of the first action. The rest of the actions, display
inline at the bottom.
flyout By default, this template has a flyout. When a user clicks the expand icon, the configured flyout displays in a modal.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The LeftAccountInfoState LWC Card Template displays a card state template with account data listed in
rows.
Available LeftAccountInfoStateFeatures
Feature Description
fields The provided data fields display in an SLDS table.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The LeftProfileState LWC Card Template displays a card state template with account profile information.
The layout includes a google map image, up to three data fields, and up to three actions.
Feature Description
fields By default, if the first field is not present the string Name is returned. The first data field displays in a row below the google
map image. The other two data field display in the same row below the first data field.
actions Displays first three actions in a row. The remaining actions display in a menu.
session See Available session Variables on this page.
Variable Description
APIKEY Sets the API Key for the google map API to display the location passed to location variable.
location Defines the location of the account used in the static google map. Pass the address from account
{{obj.BillingAddress}}.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The profileCardState LWC Card Template displays a card state template with profile information added as
data fields, actions, and a static location map.
Feature Description
fields By default, the title of the card is obj Name. The remaining fields display as blocks.
actions By default, actions display below the fields.
session See Available session Variables on this page.
Variable Description
APIKEY Sets the API Key for the google map API to display the location passed to location field.
location Defines the location of the Account used in the static google map. You can pass the address from account
{{obj.BillingAddress}}.
showBadge Sets the badge icon for the respective user account. You can pass the customer value from account
{{obj.CustomerValue__c}}. Default value is false.
showActionLabel To display the action label. Default value is false.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The profileCardState LWC Card Template displays a card state template with profile information added as
fields, actions, and a static location map.
Feature Description
fields By default, the title of the card is obj Name. The remaining fields
display as blocks.
actions By default, actions display below the fields.
session See Available session Variables on this page.
Variable Description
APIKEY Sets the API Key for the google map API to display the location
passed to location field.
location Defines the location of the Account used in the static google map.
You can pass the address from account
{{obj.BillingAddress}}.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The StoryCardCanvas LWC Layout Template displays the layout and the containing cards with one card in
each row for a customer story. The layout also includes a title and search bar.
Feature Description
title See Available session Variables on this page.
menu for new item The menu list includes Case, Task, Order Note, Campaign, Event and Opportunity. On selecting a menu item
from the list, it opens the new item page for selected item type.
cards The layout shows containing story cards, if any.
Variable Description
title Sets the layout title
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The StoryOngoingState LWC Card Template displays the story item. The layout includes an icon, a title, a
subtitle, and fields in two columns. The icon displays in the first column, while the title, the subtitle, and
fields display in the second column. The fields are displayed inline. This template has flyout functionality.
Available StoryOngoingStateFeatures
Feature Description
icon By default, the icon is the sObject type. If there is no SLDS icon associated with the sObject, you can define one with a
card session variable using the iconName attribute. For example, to define an icon for the 'Order' sObject, set iconName
to standard:orders. See SLDS Icons.
title By default, the story item obj title is next to the icon. Clicking the title takes the user to the story item record page.
subtitle By default, the subtitle is the story item obj detailValueMap.Description.
fields By default, the fields display inline at the bottom.
flyout By default, this template has a flyout. When a user clicks the expand icon, the configured flyout displays in a modal.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The StoryNormalState LWC Card Template displays the story item. The layout includes an icon, a title and
fields in two columns. The icon displays in the first column, while the title and fields display in the second
column. The fields display inline.
Feature Description
icon By default, the icon is the sObject type. If there is no SLDS icon associated with the sObject, you can define one with a
card session variable using the iconName attribute. For example, to define an icon for the 'Order' sObject, set iconName
to standard:orders. See SLDS Icons.
title By default, the story item obj title is next to the icon. Clicking the title takes the user to the story item record page.
fields By default, the fields display inline with the title.
date By default, this template displays the story item monthNameLastActivityDate at the bottom of the card.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The StoryEditStateFlyout LWC Flyout Template displays the edit fields of the parent story item. The edit
fields display in a Lightning form.
Feature Description
fields By default, the template displays the parent story item's edit fields in a Lightning form. Each field has an edit icon, which on
click, enables fields in edit mode. The template shows 'Save' and 'Cancel' buttons in edit mode. Clicking 'Save' updates the
parent card.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The WideCard LWC Card Template displays a card state template with a wide layout. The layout includes
an image, has flyout functionality, has field tracking capability, and displays the status of the card state. The
data fields display in an inline grid.
Feature Description
fields By default, the title of the card is the first field configured. The remaining fields display as block elements.
actions By default, actions display below the fields.
session See Available session Variables on this page.
flyout By default, this template has a flyout. When a user clicks the expand icon, the configured flyout displays in a modal. To use
a card without a flyout, use the WideCardSlim LWC Card Templateinstead.
Variable Description
img Sets the image url. For example, /image-name.jpg. URL can be relative or absolute.
status Defines the status of the card. Is hidden if null or empty.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The WideCard LWC Card Template displays a card state template with a wide layout. The layout includes
an image, has flyout functionality and displays the status of the card state. The data fields display in an
inline grid.
Feature Description
fields By default, the title of the card is the first field configured. The remaining fields display as blocks.
actions By default, actions display below the fields.
session See Available session Variables on this page.
Feature Description
flyout By default, this template has a flyout. When a user clicks the expand icon, the configured flyout displays in a modal. To use
a card without a flyout, use the WideCardSlim LWC Card Template instead.
Variable Description
img Sets the image url. For example, <image url>
status Defines the status of the card. Is hidden if null or empty
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The WideCardSlim LWC Card Template displays a card state template with a wide layout. The layout
includes an image, displays the status of the card state, and has field tracking capability. The data fields
display in an inline grid.
Feature Description
fields By default, the title of the card is the first field configured. The remaining fields display as blocks.
actions By default, all actions display below the fields.
session See Available session Variables on this page.
Variable Description
img Sets the image url. For example, /image-url.jpg. URL can be relative or absolute.
status Defines the status of the card. Is hidden if null or empty.
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The WideCardSlim LWC Card Template displays a card state template with a wide layout. The layout
includes an image and displays the status of the card state. The data fields display in an inline grid.
Feature Description
fields By default, the title of the card is the first field configured. The remaining fields display as blocks.
actions By default, all actions display below the fields.
session See Available session Variables on this page.
Variable Description
img Sets the image url. For example, <image url>
status Defines the status of the card. Is hidden if null or empty.
Vlocity Insurance and Health Winter '20 and Vlocity CME Spring '20
The WideCardSmart LWC Card Template displays a card state template with a wide layout and uses Smart
Actions to generate actions on the card. See the Configuring Smart Actions on an LWC Card topic. The
layout includes an image, has flyout functionality, has field tracking capability, and displays the status of the
card state. The data fields display in an inline grid.
Feature Description
fields By default, the title of the card is the first field configured. The remaining fields display as blocks.
actions By default, the first action is the banner action. The action's visible Label displays as the banner title. Remaining
actions display under the fields.
session See Available session Variables on this page.
flyout By default, this template has a flyout. When a user clicks the expand icon, the configured flyout displays in a modal. To
use a card without a flyout, and if Smart Actions are not required, use the WideCardSlim LWC Card Template instead.
smartAction This lwc by default supports smartAction and works same way as actions. Refer IP output fields for more info.
Variable Description
img Sets the image url. For example, /image-url.jpg. URL can be relative or absolute.
height Defines the height of the card image
status Defines the status of the card. Is hidden if null or empty.
imageSyle Sets style for smart action banner image
Vlocity Insurance and Health Summer '19 and Vlocity CME Fall '19
The WideCardSmart LWC Card Template displays a card state template with a wide layout and uses Smart
Actions to generate actions on the card (see Configuring Smart Actions on an LWC Card). The layout
includes an image, has flyout functionality and displays the status of the card state. The data fields display
in an inline grid.
Feature Description
fields By default, the title of the card is the first field configured. The remaining fields display as blocks.
actions By default, the first action is the banner action. The action’s visible Label displays as the banner title. Remaining
actions display under the fields.
session See Available session Variables on this page.
flyout By default, this template has a flyout. When a user clicks the expand icon, the configured flyout displays in a modal. To
use a card without a flyout, and if Smart Actions are not required, use theWideCardSlim LWC Card Template instead.
smartAction This lwc by default supports smartAction and works same way as actions. Refer IP output fields for more info.
Variable Description
img Sets the image url. For example, <image url>
status Defines the status of the card. Is hidden if null or empty.
Variable Description
id Sets the name of the action.
type Sets the type of the action. Must be Vlocity Action by
default.
displayName Displays a visible label for the action.
iconName Sets the icon name for the action. Supports only SLDS icons.
Required Versions
Available beginning with Vlocity Insurance and Health Summer '19 and CME Fall '19.
1. Ensure that Node and NPM are installed on your local computer using the commands NPM outlines in
their documentation https://www.npmjs.com/get-npm. If you do not have Node or NPM, download them
from https://nodejs.org/en/download/.
2. Clone the latest Newport Design System package from newport-design-system, and follow the
instructions outlined in the GitHub repo.
3. Edit the CSS in a local text editor and save your changes.
4. Preview the changes using Storybook. For more information, see the instructions found in the newport-
design-system.
5. To deploy the CSS to Salesforce, see Deploy Card Template Changes with the Newport Design
System.
6. Preview the changes in your Salesforce org in the Card Designer Preview.
See Also
• For LWC Cards: Creating Custom LWC Card Templates
• For Angular Cards: Template Designer
Beginning with Spring '19, you can apply your customizations to the Newport templates by adding a Static
Resource that overrides the Newport templates wherever they are present.
1. In your Salesforce org, go to Setup and, in the Quick Find box, enter Custom Settings.
2. Find UISettings, click Manage, click New and configure the following settings:
• Name: You must name this newportZipUrl for the changes to be applied.
• Key: Enter any name.
• Value: The relative URL for the static resource. To obtain the relative URL, go to the Static Resource
(see 4 in the Before You Begin section), click View File, and copy the URL after the domain name,
removing the question mark at the end. For example, the bold text would be copied in this URL:
https://salesforce-org-test.na75.visual.force.com/resource/16679825000/vloc_customNewport?
3. To preview Card layouts that use the Newport Design System, in the Card Designer:
• For Angular Cards: Click Preview and add the following query parameter to the URL:
vlocitytheme=newport. For example, https://vloc-oui-designer-dev.na90.com/apex/ConsoleCards?
vlocitytheme=newport&layout=Grid&layoutId=a1a1K00000f25qe&previewMode=Universal.
• For LWC Cards: In the Layout pane, click Enable Newport when LWC is enabled, and then click
Preview.
IMPORTANT
Your LWC Card layout template and card templates must support Newport.
NOTE
Beginning with the Summer '19 release, Vlocity supports Salesforce's Lightning Web
Components programming model with Vlocity Lightning Web Components. For more
information about customizing Cards with Vlocity Lighting Web Components, see Creating
Custom LWC Card Templates.
In a card layout, cluster related cards into distinct visual areas called zones. See Creating Zones.
To populate card layouts and cards with data, bind them to data sources and actions in the Card Designer.
To insert fields populated from data sources into cards, create placeholders. See Creating a Placeholder.
To enable cards to change their appearance dynamically, configure the card states. See Card States.
Cards Designer
You can use the Cards Designer to interactively create and configure layouts, zones, cards, flyouts, and
card states.
The optional Preview tab displays changes as soon as you make them:
For information on how to use the Cards Designer to create and configure Card layouts, see Creating a
New Card Layout using Cards Designer.
Template Designer
Vlocity Templates provide the structure for OmniScript elements and Cards Framework components, such
as a layout that includes the associated cards and card states. The template enables you to work directly
with HTML to provide organizational structure, CSS/SASS to provide style, and AngularJS to loop through
data from data sources.
NOTE
To apply CSS and template changes to all card and OmniScript templates, see Apply
Global Branding to Vlocity Cards.
1. Go to the Vlocity Templates tab, click a template, then click a template version.
2. Click Settings.
1. Go to the Vlocity Templates tab, click a template, then click a template version.
2. Click Help.
3. Learn how to use the code and shortcuts the Template Designer supports:
• HTML: Learn how the Template Designer supports HTML.
• CSS/SCSS: Learn how the Template Designer supports CSS and SASS.
• JavaScript: Learn how the Template Designer supports AngularJS.
• Keyboard Shortcuts: Learn what keyboard shortcuts are available for the Template Designer.
NOTE
Beginning with the Vlocity Summer '19 release, Vlocity supports Salesforce's Lightning
Web Components programming model with Vlocity Lightning Web Components. Vlocity
Lightning Web Components include components, functionalities, and templates exclusive
to LWC Cards. To enable LWC on a card layout, see Creating an LWC Card Layout.
NOTE
Beginning with Vlocity Insurance and Health Spring '20, when creating a card or
layout, the name and author must only contain underscores and alphanumeric
characters. It must be unique, begin with a letter, not include spaces, not end with an
underscore, and not contain two consecutive underscores. Existing layout names and
card names are automatically updated to make them compliant. New cards and
layouts can not be saved without following these naming requirements.
NOTE
To create a Flyout, see Creating a Flyout.
4. (Optional) Update the author in the LayoutAuthor field. See Understanding the Author of a Card
Layout.
5. In the Template dropdown list, select a template, such as card-canvas-3x-slds to display cards in
a 3 column layout. See Base UI and Card Templates.
6. Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, Vlocity Cards
supports limiting user access to a card layout by entering a comma-separated list of custom
permissions in the Required Permissions field. For example, enter
Can_Edit_Card,Can_View_Card to only allow users with at least one of these custom permissions
to see the card layout. If this field is left empty, any user can see the layout. See Custom Permissions.
7. To configure card layout attributes, click the Add Session Variables button to enter a variable Name
and Value. For example, the layout template cardCanvasLayout has a configurable attribute called
title, which adds a title to the top of the layout. Enter title in the Name field and a value for the
title such as List of Accounts in the Value field.
8. Select a data source for the layout in the Data Source field.
The data source holds the master query that returns results in a JSON structure for cards in the layout.
For example, you might query every policy associated with an account, then create a card for each
policy type. For more information on how to configure a data source and to see a complete list of data
sources, see Configuring Data Sources.
NOTE
Cards can have data sources different from the layout data source.
9. After configuring your data source, to test data returned, click the +Add Test Variables button in the
Test Data Source Settings section. Enter values for these properties:
• Name: Enter the name of the variable to test, such as params.id. This gets the ID in a page
parameter for a record, such as an account record ID.
• Value: Enter the value of the variable. For example, the account ID found in the URL parameter of
an account record.
10. To use metatags to enable search engine optimization (SEO) options in your metadata, click +Add
Metatags. The metatags feature enables the layout to write metatags to a page header. Available card
metatags are:
• author
• description
• keywords
• viewport
The metatags are inserted after a layout or card loads, whether or not the data source is set.
Vlocity recommends that you replace metatags with the same name. Do not duplicate metatags. Web
crawlers ignore duplicate tags.
11. Click View Data to display the query results in JSON.
12. Click Activate.
NOTE
After editing a layout, activate it before you leave the Card Designer. If you attempt to use
an inactive layout, the layout throws the following error:
After creating a card layout, configure layout properties in the Layout pane of the Card Designer. See
Creating a Card Layout Using Card Designer. See Creating an LWC Card Layout.
See Also
1. In your org, go to the Vlocity Templates tab, and click New to open the Template Designer.
2. In the Template Name field, enter the name of your new template.
3. To organize your templates into categories, click into the Template Type field to select from the
available options, or enter the name of a new type.
4. In the Template Author field, enter an author name that describes the team creating the content. The
default author name is Vlocity Internal.
5. Click Done.
6. Enter your code in the code editors:
• HTML: Enter your HTML here.
• CSS: Enter your CSS and SASS styles here. Vlocity recommends using SASS.
• JS: Enter your AngularJS here.
NOTE
To learn how the Template Designer supports HTML, CSS, SASS, and AngularJS,
click Help.
7. (Optional) Click Edit to configure the following attributes and features of your template:
• Add Zone: Click to organize the display of your template by zones. For example, separate the
header, body, and footer of your template into sections.
• Add Placeholder: Click to insert fields in your template. For example, add a Title to a card state
to display when certain conditions are met.
8. Click Save.
NOTE
The asterisk next to the name of the template indicates that the template is not saved.
To make changes save automatically, select the Auto Save checkbox in Settings.
See Template Designer.
9. (Optional) To preview the template, click Preview. The template must have sample data in the Sample
field of the Edit tab.
To import a template:
2. From the Select File modal, click Browse to select a downloaded data pack from your computer. Or
drag and drop the data pack file from your computer directly onto the selection window.
3. Click Done.
To configure the look and behavior of the Template Designer, such as the color scheme of the code editors,
see Template Designer.
1. Go to Vlocity Templates, click to expand a template, and click to open a version of the template to
compare with another template.
2. Click New/Open.
3. Click the book icon of the template to compare it to the open template. For example, if you have
version 2 of the template trng-card-canvas-3x-zones-slds open, click the book icon of version
3 of that template to compare the differences between them.
4. Click HTML, CSS, or JS to view the differences between each and perform these tasks:
• In the right Editable column, edit the template that you are comparing to the original template. Click
Save when done.
• View the code in the original template in the left Read Only.
• Click Activate for either template. You must activate only one template version at a time.
• To see either template in full view, click Open.
• To return to the original template in full view, click Go Back.
Vlocity Layouts
Vlocity layouts consist of rectangular canvases that act as containers for cards. Cards display information
and clickable actions to support efficient navigation through complex CRM interactions.
For example, in a Salesforce Console for an insurance call center, you could use a layout to display all of a
customer's Account insurance policies. Each card represents an individual policy. A card representing a
Variable Annuity Policy could have information related to and an action for, for example, a loan request.
In addition to cards, you can add flyouts, that is, child objects that offer supplemental information inherited
from a parent card or layout. The flyout shares the context of its parent, including variable names and data.
Other examples of card layouts that contain sets of cards that appear in a given context are:
• A call center agent opens an account record and a card layout appears containing cards with account
information all its associated assets.
• An insurance agent views a card layout for an account including every policy the account holds.
• A case manager views a card layout displaying every benefit case that a case worker manages.
You can quickly change a page's content regions by switching to a different layout. For example, if your
current layout is has one full-width column, you can quickly change it to another layout, such as a 3-column,
1:1:2 ratio layout.
For some constructs, such as card templates, you must go to the Vlocity Templates tab and use the
Template Designer before you use the Card Designer.
The Vlocity Cards tab displays a list of available layouts, including their types, last modified dates, and
status.
Card States
Cards have states. Each state displays a list of fields from either the layout or the individual card data
source, plus a list of Vlocity Actions. You can also associate each state with a flyout, an extended version of
a card with supplemental data displayed in a larger area.
Cards states enable presentation of different CRM interactions per state. For example, when a customer
adds an auto insurance policy, the policy becomes active, but when a customer misses a payment the
policy state becomes past due. Cards with different states present different data.
You can customize each card via its state to display various clickable actions, information, and/or optional
visual cues. For example:
• If an Automobile policy remains unpurchased, the policy card (via its state) would likely offer a single
action, specifically, "Add [a New Policy]".
• A card for an active Automobile policy could display information such as the policy holder's name plus
relevant actions, such as, "File a Claim".
• If an Automobile policy falls past due, a card might include a red border, a balance due amount, and
Actions such as, "Pay [the] Premium", "[Request a] Billing Extension", and so on.
TIP
In the Cards Framework, an object returns only one state and creates one card, by default.
However, if you apply multiple state filter(s) to the parent field, there is a possibility of
getting a card for each filter state, as the filter is applied to all objects.
Field Description
Name Components are requested by name.
Author Specifies the user organization that created the record. Use author names that describe the team creating the content.
Vlocity-authored components have Vlocity as the author. You cannot modify these components, but you can clone them.
See Understanding the Author of a Card Layout.
Version An integer that increases by one with every new version.
Active Indicates whether a record is active for runtime use. One active record per name is allowed in an org. Activating a
component deactivates all other components of the same type that have the same name. Only active records are exported
when a DataPack is created.
Requirements Examples
The combination of the card Name and Author must be unique in your Org. If the Name is Name: account_layout
the same and Author is different, the card or layout is versioned. See Cards Framework
Versioning. Author: CustomerSales
Name: account_closed_layout
Author: CustomerSales
Beginning with Vlocity Insurance and Health Spring '20, when creating a card or layout, the Not acceptable: account$card!,
name and author must only contain underscores and alphanumeric characters. It must be 1account__card, $$account__card_,
unique, begin with a letter, not include spaces, not end with an underscore, and not contain account card
two consecutive underscores. Existing layout names and card names are automatically
updated to make them compliant. New cards and layouts can not be saved without following
these naming requirements.
Only one version of a card or layout can be active at the same time. N/A
Card and layout names cannot be changed. N/A
Requirements Examples
The combination of the card Name and Author must be unique in your Org. If the Name is the Name: account-layout
same and Author is different, the card or layout is versioned. See Cards Framework Versioning.
Author: CustomerSales
Name: account-closed-layout
Author: CustomerSales
Use ASCII characters. See ascii.cl.
Only one version of a card or layout can be active at the same time. N/A
Card and layout names cannot be changed. N/A
Vlocity delivers prebuilt templates, layouts, and cards, which have an Author value of Vlocity. Although
you can't alter these components, as an administrator, you can clone, rename, and version them. See
Cards Framework Versioning.
You may, however, edit templates, layouts, and cards if your org name is its Author. A child object such as
a card in a layout or zone inherits its author from its parent.
Consider Vlocity's requirements and best practices when updating an Author name. See Card and Card
Layout Naming Conventions.
• Vlocity Actions: Adds preconfigured actions created in the Vlocity Actions tool in your org. Vlocity
Actions are reusable on multiple cards. See Vlocity Actions.
• Custom Actions: Create an action unique to the card state. A custom action is not reusable on other
cards. See Adding a Custom Action to a Card.
• OS Actions: Launch an OmniScript from your card state. See Launching an OmniScript from an OS
Action on a Card.
NOTE
Beginning with the Vlocity Summer '19 release, launch an LWC OmniScript from an OS
Action. See Launching an LWC OmniScript from an OS Action on a Card.
Beginning with the Summer '19 release, Vlocity supports Salesforce's Lightning Web Components
programming model with Vlocity Lightning Web Components. Vlocity Lightning Web Components include
components, functionalities, and templates exclusive to LWC Cards. See LWC Cards Considerations and
Configuring Smart Actions on an LWC Card.
NOTE
In the code samples below, replace NameSpace with your org's Vlocity namespace prefix.
See Viewing the Namespace and Version of the Vlocity Package.
1. Open a card from the Vlocity Cards tab and click Add Custom Action in the card state.
2. In the Id field, to distinguish the action from other actions in the card designer, enter a unique name.
For example, ActiveAccountUpdate.
3. In the Display Name field, enter the name to display to the user. For example, Update Account.
4. In the URL field, enter the URL to which the action links. See Target URL and URL Parameters.
5. (Optional) Enter values for these properties:
• Vlocity Icon: Select a Vlocity icon or an SLDS icon to display next to the action link. For a complete
list of Vlocity Icons, go to the Vlocity Actions tab, open any action, and click the Vlocity Icons
header label to reveal the list of icons.
• Open URL in: Select Current Window or New Tab/Window to indicate where to open the URL.
• Check the Actions Options checkbox to add Custom Parameters, Conditions, and to invoke an
Apex class. See Configuring Action Options.
1. You must first create a Vlocity Action to add to your card. See Vlocity Actions.
2. In your org, click App Launcher, click Vlocity Cards, and select a card layout to open the Card
Designer.
3. In the Actions section of a card's state, click into the Salesforce Object Type input field, and select an
sObject from the picklist, such as Contact.
4. Click into the Id Field for Actions, and select a ContextId from the available list of fields returned from
the data source, such as ['ContactId'].
If Blank Card State is enabled:
• Click the Enable Id field for actions checkbox to display the Id Field for Actions input field.
• By default, the ContextId is params.id when Enable Id field for actions is disabled. When
enabled, in addition to entering a ContextId from a data source, use Id Field for Actions to set any
page parameter, session variable, or $root variable to fetch actions.
For example, use the $root.vlocity context variable, such as
$root.vlocity.userContactId to create an action for a logged-in user. For a list of available
context variables, see Cards Context Variables.
5. In the Actions section of a card state, next to the Add button, select a reusable action from the picklist.
IMPORTANT
If you do not see the action you are looking for, confirm you have selected the
appropriate sObject from the Salesforce Object Type dropdown.
6. (Optional) Check the Actions Options checkbox to add Custom Parameters and Conditions. See
Configuring Action Options.
• Custom Parameters: Enter additional parameters to send them with the request.
• Conditions: Enter conditions to hide actions from specific users. For example, to display an action only
to an account named Acme, select the ['Name'] field and set it equal to Acme. See Displaying
Conditional Actions on a Card.
• Invoke Class Name: Enter an Apex class name to invoke through the action. For example,
EmailManager.
• Invoke Method Name: Enter a method within the Apex class to invoke through the action. For example,
sendMail.
• Input Map: Enter key-value pairs to send as a Map object to the invoked Apex class. For more
information, see Maps.
• Options Map: Enter key-value pairs to send as an Options Map to the invoked Apex class.
NOTE
OS Actions are not reusable. To create an action that launches the same OmniScript from
different cards, see Using Actions with Cards.
3. Add a Vlocity OS Player component to the /os page. See Configuring the Vlocity OS Player Lightning
Component.
4. Add the card to a Community page from where you want your action to launch, such as the Home
page or Record Detail page. See Adding a Vlocity Card to a Lightning or Community Page.
Configuring an OS Action
To set up an OS Action:
1. Open the Vlocity Cards tab, and click on a version of a card to open the Card Designer.
2. Click Add OS Action in the Actions section of a card state
3. In the Id field, enter a unique name to distinguish the action from other actions in the Card Designer.
4. In the Display Name field, enter the name that the action displays to the user.
5. Click in the OmniScript typeahead field to choose an active OmniScript from the drop-down list.
Beginning with Vlocity Insurance and Health Winter '20 , the OmniScripts are listed as Type/
SubType/Language. For example, if you select CustomerInteractionAccountCMT/Creation/
English, the Type is the OmniScript name CustomerInteractionAccountCMT, the SubType is
Creation, and the Language is English.
6. (Optional) Enter values for these properties:
• Action Options: To add custom parameters, set conditions for when the OS Action displays, and
configure optional settings for LWC enabled cards, select this checkbox. See Configuring Action
Options.
• Icon: Select a Vlocity icon or an SLDS icon to display next to the action link. For a complete list of
Vlocity Icons, go to the Vlocity Actions tab, open any action, and click the Vlocity Icons header label
to reveal the list of icons.
• Open URL in: Select Current Window or New Tab/Window to indicate where to open the target
URL.
• Visualforce Page: Choose a Visualforce page to display the OmniScript on a custom page. For
example, if you have a custom template for your OmniScript, you might create a custom page to
display it.
• Layout: Select the Lightning or Newport for the layout. This feature works for Angular OmniScripts
only.
• LWC Enabled: If the selected OmniScript is an LWC OS, this checkbox is automatically selected.
• When LWC Enabled is checked, enter values for these properties:
• Context Id: Enter the sObject's ContextId associated with your OmniScript. For example, if your
LWC OmniScript updates account information, your context Id is an account record ID.
• Console Tab Icon: Select a Vlocity icon or an SLDS icon to display in the subtab of a console
after the OS action link is clicked. For example, select standard:account for an OmniScript
that updates account information.
• Console Tab Label: Enter the visible label of the Console Tab Icon. For example, Update
Account.
NOTE
OS Actions are not reusable. To create an action that launches the same LWC OmniScript
from different cards, see Using Actions with Cards.
3. Add a Vlocity LWC OmniScript Wrapper component to the /lwcos Community page. See Launch
an LWC OmniScript with LWC OmniScript Wrapper.
4. Add the card to the Community page that launches the action, such as the Home page or Record
Detail page. See Adding a Vlocity Card to a Lightning or Community Page.
5. (Optional) To reload the card when the LWC OmniScript updates, see Reloading a Card After Updating
an LWC OmniScript.
Configuring an OS Action
To set up an OS Action:
1. Open the Vlocity Cards tab, and click on a version of a card to open the Card Designer.
2. Click Add OS Action in the Actions section of a card state
3. In the Id field, enter a unique name to distinguish the action from other actions in the Card Designer.
4. In the Display Name field, enter the name that the action displays to the user.
5. Click in the OmniScript typeahead field to choose an active OmniScript from the drop-down list.
Beginning with Vlocity Insurance and Health Winter '20 , the OmniScripts are listed as Type/
SubType/Language. For example, if you select CustomerInteractionAccountCMT/Creation/
English, the Type is the OmniScript name CustomerInteractionAccountCMT, the SubType is
Creation, and the Language is English.
6. (Optional) Enter values for these properties:
• Action Options: To add custom parameters, set conditions for when the OS Action displays, and
configure optional settings for LWC enabled cards, select this checkbox. See Configuring Action
Options.
• Icon: Select a Vlocity icon or an SLDS icon to display next to the action link. For a complete list of
Vlocity Icons, go to the Vlocity Actions tab, open any action, and click the Vlocity Icons header label
to reveal the list of icons.
• Open URL in: Select Current Window or New Tab/Window to indicate where to open the target
URL.
• Visualforce Page: Choose a Visualforce page to display the OmniScript on a custom page. For
example, if you have a custom template for your OmniScript, you might create a custom page to
display it.
• Layout: Select the Lightning or Newport for the layout. This feature works for Angular OmniScripts
only.
• LWC Enabled: If the selected OmniScript is an LWC OS, this checkbox is automatically selected.
• When LWC Enabled is checked, enter values for these properties:
• Context Id: Enter the sObject's ContextId associated with your OmniScript. For example, if your
LWC OmniScript updates account information, your context Id is an account record ID.
• Console Tab Icon: Select a Vlocity icon or an SLDS icon to display in the subtab of a console
after the OS action link is clicked. For example, select standard:account for an OmniScript
that updates account information.
• Console Tab Label: Enter the visible label of the Console Tab Icon. For example, Update
Account.
NOTE
Using the generated LWC OS results in a boost in performance in Communities and in
Lightning Experience.
1. Go to Vlocity Cards tab, open a card, and navigate to the Actions section of a card state:
• To launch an LWC OmniScript with a Vlocity Action, select a reusable action from the picklist next to
the Add button.
• Click the link icon to open the Vlocity Action, and in the Target URL field, enter the relative path
from the Vlocity Aura Wrapper section in your generated LWC OS. See the section, Launching an
LWC OmniScript in Lightning, in Launch an LWC OmniScript with LWC OmniScript Wrapper
For additional Vlocity Action configuration options, see Adding a Vlocity Action to a Card.
• To launch an LWC OmniScript with a Custom Action, click Add Custom Action.
• In the URL field, enter the relative path from the Vlocity Aura Wrapper section in your generated
LWC OS. See the section, Launching an LWC OmniScript in Lightning, in Launch an LWC
OmniScript with LWC OmniScript Wrapper.
For additional Custom Action configuration options, see Adding a Custom Action to a Card.
2. Add the generated LWC OS to a Lightning page. See Adding an LWC OmniScript to a Community or
Lightning Page.
1. Add your generated LWC OS to a Community page. See Adding an LWC OmniScript to a Community
or Lightning Page.
2. Go to Vlocity Cards tab, open a card, and navigate to the Actions section of a card state:
• To launch an LWC OmniScript with a Vlocity Action, select a reusable action from the picklist next to
the Add button.
• Click the link icon to open the Vlocity Action, and in the Target URL field, enter the Community
page URL hosting the generated LWC OS. For example, if your generated LWC OS is on a
Community named AccountCommunity that has a page named AccountPage, your URL might
look like:
https://exampleURL.force.com/AccountCommunity/s/AccountPage
For additional Vlocity Action configuration options, see Adding a Vlocity Action to a Card.
• To launch an LWC OmniScript with a Custom Action, click Add Custom Action.
• In the URL field, enter the Community page URL hosting the LWC OS. For example, if your
generated LWC OS is on a Community named AccountCommunity that has a page named
AccountPage, your URL might look like:
https://exampleURL.force.com/AccountCommunity/s/AccountPage
For additional Custom Action configuration options, see Adding a Custom Action to a Card.
Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, Vlocity Cards supports
launching an LWC OmniScript, with parameters, from a card on a Community page
1. Add the Vlocity LWC OmniScript Wrapper component to a Community Page. See Adding an LWC
OmniScript to a Community or Lightning Page.
2. Go to Vlocity Cards tab, open a card, and navigate to the Actions section of a card state:
• To launch an LWC OmniScript with a Vlocity Action, select a reusable action from the picklist next to
the Add button, and click the link icon to open the Vlocity Action.
• In the Target URL field, enter the configured URL with parameters to access the Vlocity
OmniScript Wrapper component.
Previewing a Layout
Preview a card layout to see how your cards will look once published to a Lightning or Community page.
To preview a layout:
1. In your org, click App Launcher, click Vlocity Cards, and click a version of a layout to open the Card
Designer.
2. Click the Preview tab.
NOTE
Only active cards are visible in Run Time. All inactive and active cards are visible in
Design Time.
3. Click the 'open in new window' icon to view the layout on a Visualforce page.
4. Click the refresh icon to reload the layout in the Preview pane.
5. To preview how the layout looks on different pages and mobile devices, select a page from the
dropdown list of universal and custom pages. Universal is selected by default.
What's Next
Next steps, add your card to a Lightning or Community page. See Adding a Vlocity Card to a Lightning or
Community Page. See Adding an LWC Card to a Lightning or Community Page.
Add cards to your layout after creating the layout and fetching data. See Creating a Card Layout Using
Card Designer. See Creating an LWC Card Layout.
Because cards are portable components added to one or more layouts, changes made to existing cards
apply to that same card on any layout containing that card. For example, if you add a card named
CustServ Account Cases to a layout named public-accounts and a layout named account-
policies, updating the card on one of these layouts automatically updates that card on the other layout.
A card can have its own data source independent of the layout data source. See Configuring Data Sources
for Cards Components.
1. Create a card layout. See Creating a Card Layout Using Card Designer. See Creating an LWC Card
Layout.
1. In your org, click the App Launcher, click Vlocity Cards, click a version of card layout to open.
2. In the Cards section of your layout, click + Add Card.
3. To select an existing card, in the Choose Existing column, select the checkboxes next to one or more
cards.
4. To create a new card, in the Blank Card column, enter the values for these properties:
• Card Name: Create a unique name for your card, such as CustServ Account Cases.
• Card Title: Enter the visible name of your card, such as Cases.
• (Optional) Card Author: Update the user organization that created the record. The best practice is to
use author names that describe the team creating the content. For example, MeriCommCustServ.
See Understanding the Author of a Card Layout.
5. Click Add.
6. Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, if your layout is
LWC enabled, click the Deploy button next to Enable LWC in the Layout pane to save changes to the
card layout.
Configuring a Card
To configure a card on a layout, set these optional properties:
1. To create a new version of a card, click Create Version. The new version is added underneath the
current card. Creating a version of the card creates an exact copy of the card with a Version equal to
the latest version number plus one, such as Version 2. See Cards Framework Versioning.
2. To filter the output of the returned data from the data source:
1. In the Filter section of the card, click + Add Filter.
2. In the first column's input field, enter the name of a field returned from the data source. For
example, ['AccountName']. To view available data fields to filter, click View Data in the card or
the card layout.
3. In the second column's input field, enter the value to filter. For example, Acme.
3. To configure a card to store data from the data source, or to enable additional features from a card
template, in the Card Session Variables section, click + Add Session Variables to enter a variable
Name and Value.
4. To use metatags to enable search engine optimization (SEO) options in your metadata, click +Add
Metatags. The metatags feature enables the layout to write metatags to a page header. Available card
metatags are:
• author
• description
• keywords
• viewport
The metatags are inserted after a layout or card loads, whether or not the data source is set.
Vlocity recommends that you replace metatags with the same name. Do not duplicate metatags. Web
crawlers ignore duplicate tags.
5. Select a data source for the layout in the Data Source field.
The data source holds the master query that returns results in a JSON structure for cards in the layout.
For example, you might query every policy associated with an account, then create a card for each
policy type. For more information on how to configure a data source and to see a complete list of data
sources, see Configuring Data Sources.
NOTE
Cards can have data sources different from the layout data source.
What's Next
Next steps, add card states to your cards. See Adding a State to a Card.
See Also
• Previewing a Layout
• Adding a Vlocity Card to a Lightning or Community Page
• Adding an LWC Card to a Lightning or Community Page
1. From the Vlocity Cards tab, click a card layout to open in the Card Designer.
2. From the Layout panel, enter a comma-separated list of custom permissions in the Required
Permissions field. For example, if you created custom permissions named Can_Edit_Policy and
Can_View_Policy, enter them as Can_Edit_Policy,Can_View_Policy.
3. From Setup, in the Quick Find menu, enter apex.
After creating a card layout and adding cards, configure card properties in the Cards pane of the Card
Designer. See Creating a Card Layout Using Card Designer or Creating an LWC Card Layout. See Adding
a Card to a Layout.
Add card states to display data fields from the card or card layout data source, to present different
interactions and layouts based on specified conditions, to add actions, and to add flyouts to display
additional information about a record. For example, for cards displaying past due policy information, use a
card state template, and display actions, fields, and flyouts different from those on cards displaying
information for active policies in good standing.
1. In your org, click the App Launcher, click Vlocity Cards, and click a version of a card layout to open the
Card Designer.
2. In the Cards pane, click the black arrow on a card to expand it.
TIP
When adding multiple states with similar settings, click the Clone State icon to create
a copy of the card state. The cloned card state appears below the original card state.
4. (Optional) To create a card state to display when there are no records available, select the Blank Card
State checkbox. For example, if an Account or Contact does not have an insurance policy, create a
state with a card-open-slds template to display a linked action to add a policy.
5. (Optional) Beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20, if your
card is LWC enabled, select the Custom LWC checkbox to embed any Vlocity Lightning Web
Component inside an LWC card state. See Embedding a Vlocity Lightning Web Component Inside an
LWC Card State.
6. In the Name field, enter the name of the state, such as Active Policy.
NOTE
The state Name is for internal use and does not appear on the card.
NOTE
If you want to display data fields, only actions, or both, choose the appropriate
template. Some card templates display only actions, only data fields, and both.
For example:
• Select card-active-slds for an active card, such as a policy card that displays policy
information and related actions.
• Select card-open-slds for a Blank Card State, such as a policy card that only
displays a Create New Policy action link for an Account or Contact without a
policy.
8. (Optional) If the selected template has a placeholder, see Adding a Placeholder to a Card State.
NOTE
Your card state template must have a placeholder merge field. See Creating a
Placeholder.
NOTE
Fields come from the layout data source unless the card has its own data source.
IMPORTANT
If you do not see a list of available data fields, click View Data in the Card pane
or the Layout pane, whichever has the data source configured.
b. (Optional) To enter a field not listed in the dropdown, but that does exist in your data source, select
<<Custom Field>>, and click Add For example, if the current record used in the Test Data
Source Settings does not have a Description in the JSON schema, but is available in the
associated DataRaptor, the new field may not display in the Fields list.
c. (Optional) If you selected <<Custom Field>> from the Fields dropdown, in the first column,
enter the name of the field, such as ['Policy Description'].
d. To update the field type, in the middle column, delete the default string, and choose from the
available types in the picklist. For example, if the field is a date, select date.
e. To update the visible label of the field, in the last column, enter a label. For example, if the field is
['Created Date'], enter Policy Created.
10. (Optional) To add actions to the card state, see Using Actions with Cards.
11. (Optional) To add a flyout to display additional information about the record displayed on the card, see
Adding a Flyout to a Card State or Creating an LWC Flyout.
12. (Optional) To set conditions that must be met for the card state to be visible, see Adding Conditions to
a Card State.
13. To preview the card, and check that card states are working as expected, click the Preview tab. For
more preview options, see Previewing a Layout.
14. Click Activate on each card.
What's Next
Next steps, preview your cards. See Previewing a Layout.
See Also
If a card has multiple states, it must have logical conditions that determine which state is displayed and
when. For example, a card has an active state if there is data to display, and a blank or open state if there
is no data and limited actions.
1. In your org, click the App Launcher, click Vlocity Cards, and click a version of a card to open the Card
Designer.
2. In the Conditions section of a card state, click + Add Condition.
3. To create basic conditions:
NOTE
If there is only one condition, that condition must be met to display cards.
NOTE
If there is only one condition, that condition does not need to be met to display
cards.
b. Click into the first input field, from the list of data fields, select a data field to filter, such as
['DaysToExpiration'].
c. Select the operator from the dropdown in the middle column, such as <.
d. In the last input field, enter the value to filter, such as 31.
IMPORTANT
In an LWC enabled card, when adding params and $root.vlocity context
variables as values to check against in a condition, enclose them in double curly
braces. For example, {{params.id}} and
{{$root.vlocity.userAccountId}}.
The custom-type appears in the State Field type in the Card Designer:
You can review the custom type's structure as entered in the Template Designer via the Preview tab in the
Card Designer:
Cards can have data sources independent of the layout or flyout data source.
NOTE
An administrator can enable or disable data sources for an org, profile, and user level. See
Enable and Disable Data Sources.
IMPORTANT
Vlocity recommends using a Vlocity Integration Procedure as a data
source for optimal flexibility and easier implementation.
Apex Remote Uses an Apex Remote class and method to return data. An Apex Remote class is a standard Cards and
Apex class that implements the VlocityOpenInterface. Layouts
Apex REST Uses a REST endpoint of an Apex class to return data. Cards and
Layouts
DataRaptor Uses a Vlocity DataRaptor Extract interface to return data. Field-level security is fully Cards and
supported. See DataRaptors. Layouts
Dual Combines Apex Remote and Apex REST technologies to support hybrid applications available Cards and
for both web and mobile usage. For example, the Salesforce web environment uses Apex Layouts
Remote technology while its parallel mobile App uses the Apex REST API, requiring
configuration for multiple environments.
Parent On the card or card layout of a flyout, the Parent data source uses data from the parent card Flyouts
or card layout that a flyout is assigned. See Creating a Flyout.
REST Uses the standard REST API call to return data. The Vlocity Rest types include: Cards and
Layouts
• Web: Standard request from the URL of a callout endpoint.
• Named Credentials: Specifies the URL of a callout endpoint and its required authentication
parameters in one definition.
NOTE
Use +Add Header Variables to add any request headers. Most third-
party APIs expect various headers such as tokens, public keys, and
content-type.
SOQL Query Uses a Salesforce Object Query Language (SOQL) to search an org's Salesforce data for Cards and
specific information. For example, SELECT Name,Id FROM Account LIMIT 5. Layouts
NOTE
If security is a concern, use a DataRaptor instead of a SOQL query,
because DataRaptors fully support field-level security.
SOSL Query Uses a Salesforce Object Search Language (SOSL) to construct text-based search queries Cards and
against the search index. Layouts
Sample Uses sample JSON to set up a card with a temporary data source, which will eventually be Cards and
replaced with another data source. This allows you to embed the custom JSON directly into Layouts
the layout without depending on external data.
• Streaming Channel: Sends notifications of general events that are not tied to Salesforce
data changes.
• PushTopic: Uses an SOQL query to return a result that notifies listeners of changes to
records in a Salesforce organization.
• Platform Event: Uses Salesforce's Platform Events enterprise messaging platform, which
combines PushTopic and Streaming Channel to enable apps to communicate inside and
outside of Salesforce.
NOTE
An Integration Procedure doesn’t support the following data sources:
3. Enter the Name of the Integration Procedure to use. To create an Integration Procedure, see Create an
Integration Procedure.
4. Click + Add Input Map Variable to add one or more name-value pairs to pass to the Integration
Procedure. To determine the name-value pair to pass to the Integration Procedure, in your Integration
Procedure, view the Element Value Map on its SetValues action or the Input Parameters on its
Preview tab.
For example, to use the Page Parameters {{params}} context variable to dynamically set the
ContextId of your layouts and cards:
1. Open your Integration Procedure, click the Preview tab to view the Input Parameters.
TIP
To quickly access the Integration Procedure, click the link icon next to the
Integration Procedure name.
2. In the Data Source section of your card or layout, in the first field of the Input Map, enter the key of
the Input Parameter, such as AccountId.
3. In the second field of the Input Map, enter {{params.id}} as the value. Parameters passed to a
page are stored in the {{params}} context variable for use anywhere in the Vlocity Cards
framework. In this case, your card or layout inherits the Id of the record page it's on in order to
dynamically populate the cards with that record's data.
5. Optionally, enter the values for the following:
• Options Map: To pass additional parameters to the Integration Procedure, enter a name-value pair.
• Return JSON Path: To drill down through the JSON data to pass a specific dataset to the cards,
enter the JSON path. For example, enter Account.Cases to return data from the ‘Cases’ object only.
• OrderBy: To change the order of the data returned, choose the data field by which to order the
returned data.
IMPORTANT
The OrderBy feature works with one array of objects. The feature does not work
with multiple objects with or without internal arrays. For example, if you want to
order by Case.Number, and have Account, Cases and Contact objects in the
returned data, the OrderBy feature does not work.
• Reverse Order: To reverse the order of the data returned, select True from the picklist.
• Timeout (ms): To limit the time that the framework waits for the designated data source to return a
response, set a timeout value in milliseconds.
• Timeouts improve handling user interactions with long running processes. Setting an appropriate
timeout value allows the application and users to react accordingly to long wait times.
• Interval (ms): To continuously refresh the data and check for changes from the data source, set an
interval value in milliseconds.
• If changes are found, the layout or card component reloads. Setting an interval enables recursive
updates of records.
6. In Test Data Source Settings, add a test variable that the query can use to return live data in the
Preview pane. See Testing Data Source Settings.
3. (Optional) If the Integration Procedure has other data sources, to return only the dummy data, select
the checkbox next to the Return Only Additional Output label.
4. In the Card Designer, in the Layout or Cards pane, confirm that the Integration Procedure with the
dummy data is chosen in the Name field.
5. To view your dummy data, click the View Data button at the bottom of the Layout or Cards pane.
NOTE
When mapping fields, only fields in the field picker that have non-null values for the
specific record in the test query are visible. Use a test record that you know has non-null
values for all the fields you want to map. Or use custom fields if the test record doesn't
have the fields that you want to map.
The SOQL queries are encrypted so that Cards do not display query information on the client-side. If
security is a concern, use a DataRaptor instead of a SOQL query, because DataRaptors provide field-level
security.
NOTE
For optimal flexibility and easier implementation, use an Integration Procedure as a data
source to execute multiple actions in a single server call. See Configuring an Integration
Procedure Data Source.
• To drill down to a specific dataset, in the Result JSON Path field, enter a path. For example, enter
records.results, which drills down to the results array and passes the array to the card or
card layout.
• To sort data by a specific data field, enter the field name in the Order By input field.
• To reverse the order of the data returned, select True from the Reverse Order picklist.
You can search text, email, and phone fields for multiple objects to which you have access, including
custom objects, in a single query. See the SOSL and SOQL Reference in the Salesforce help. The SOSL
queries are encrypted so that Cards do not display query information on the client-side.
1. On the Vlocity Cards tab, click New to configure a data source for a new cards component, or select an
existing component to configure its data source.
2. In the Cards Designer, in the Layout or Cards pane, from the Data Source picklist, select SOSL
Search.
3. Select or enter values for the following:
DataRaptor is a mapping tool that enables you to read, transform, and write Salesforce data. See
DataRaptor Overview.
NOTE
For optimal flexibility and easier implementation, use an Integration Procedure as a data
source to execute multiple actions in a single server call. See Configuring an Integration
Procedure Data Source.
1. On the Vlocity Cards tab, click New to configure a data source for a new cards component, or select an
existing component to configure its data source.
2. In the Cards Designer, in the Layout or Cards pane, from the Data Source picklist, select DataRaptor.
For example, to use the Page Parameters {{params}} context variable to dynamically get the
ContextId of your layouts and cards:
1. Open your DataRaptor, click the Preview tab to view the Input Parameters.
TIP
To quickly access the DataRaptor, click the link icon next to the Interface Name.
2. In the Data Source section of your card or layout, in the first field of the Input Map, enter the key of
the Input Parameter, such as AccountId.
3. In the second field of the Input Map, enter {{params.id}} as the value. Parameters passed to
the page are stored in the {{params}} context variable for use anywhere in the Vlocity Cards
framework. In this case, your card or layout inherits the Id of the record page it's on in order to
dynamically populate the cards with that record's data.
5. (Optional). Enter values for these properties:
• To drill down to a specific dataset, in the Result JSON Path field, enter a path. For example, enter
records.results, which drills down to the results array and passes the array to the card or
card layout.
• To sort data by a specific data field, enter the field name in the Order By input field.
• To reverse the order of the data returned, select True from the Reverse Order picklist.
For example, pull in weather data from a weather API based on a policy holder's postal code.
NOTE
For optimal flexibility and easier implementation, use an Integration Procedure as a data
source to execute multiple actions in a single server call. See Configure an Integration
Procedure Data Source on a FlexCard.
1. On the Vlocity Cards tab, click New to configure a data source for a new cards component, or select
the component for which you want to configure a data source.
2. In the Cards Designer, in the Layout or Cards pane, from the Data Source picklist, select REST.
You can use Context Variables to pass inherited values with either method.
6. Click +Add Header Variable to add request headers.
Most third-party APIs expect headers, such as tokens, public keys, and content-type. For example:
If you are making a cross-domain REST API call, you must ensure that it abides by the Cross-Origin
Resource Sharing (CORS) policy. For example, an API response that contains a request header
named Access-Control-Allow-Origin: * enables CORS.
7. (Optional). Enter values for these properties:
• To drill down to a specific dataset, in the Result JSON Path field, enter a path. For example, enter
records.results, which drills down to the results array and passes the array to the card or
card layout.
• To sort data by a specific data field, enter the field name in the Order By input field.
• To reverse the order of the data returned, select True from the Reverse Order picklist.
A named credential specifies the URL of a callout endpoint and its required authentication parameters in
one definition. To create a named credential, see Named Credentials as Callout Endpoints.
1. On the Vlocity Cards tab, click New to configure a data source for a new card component, or select an
existing component to configure its data source.
2. In the Cards Designer, in the Layout or Cards pane, from the Data Source picklist, select REST.
You can use Context Variables to pass inherited values with either method.
6. Reusing topic #UUID-ae995bf9-95bf-810f-2f09-0d74d3ec2531
7. Reusing topic #UUID-253808e6-a3a8-7a43-b4ea-1b75844484d6
NOTE
For optimal flexibility and easier implementation, use an Integration Procedure as a data
source to execute multiple actions in a single server call. See Configuring an Integration
Procedure Data Source.
1. On the Vlocity Cards tab, click New to configure a data source for a new cards component, or select an
existing component to configure its data source.
2. In the Cards Designer, in the Layout or Cards pane, from the Data Source picklist, select Apex REST.
3. In the Endpoint field, enter the URL of the REST endpoint.
4. Specify the REST method:
• GET—Requests data specified by the parameters of the URL.
• POST—Sends JSON data specified in the Body text area.
You can use Context Variables to pass inherited values with either method.
5. (Optional). Enter values for these properties:
• To drill down to a specific dataset, in the Result JSON Path field, enter a path. For example, enter
records.results, which drills down to the results array and passes the array to the card or
card layout.
• To sort data by a specific data field, enter the field name in the Order By input field.
• To reverse the order of the data returned, select True from the Reverse Order picklist.
Apex remote data sources can run asynchronously through Apex. This increases the CPU time but ensures
that long-running transactions are not timed-out.
NOTE
For optimal flexibility and easier implementation, use an Integration Procedure as a data
source to execute multiple actions in a single server call. See Configuring an Integration
Procedure Data Source.
1. In your org, click the App Launcher, click Vlocity Cards, click a version of a card layout to open the
Card Designer.
2. In the Layout or Cards pane, from the Data Source picklist, select Apex Remote.
IMPORTANT
The Apex Class must implement the Vlocity Open Interface otherwise an error
message displays.
For example, to use the Page Parameters {{params}} context variable to dynamically get the
ContextId for your layouts and cards:
1. In the first field of the Input Map, enter a ContextId form your Apex class method, such as
AccountId.
2. In the second field of the Input Map, enter {{params.id}} as the value. Parameters passed to
the page are stored in the {{params}} context variable for use anywhere in the Vlocity Cards
framework. In this case, your card or layout inherits the Id of the record page it's on in order to
dynamically populate the card with that record's data. The remote method receives an inherited
value as an Account Id from the layout or card, not the literal string {{params.id}}.
6. Click +Add Options Map Variable to add option variables to the map passed to the remote method.
NOTE
By default the NS.IntegrationProcedureService continuation object is set for
you to use asynchronous callouts to make long-running requests from a Visualforce
page to an external Web service and process responses in callback methods. NS
represents your org's Namespace, such as vlocity_ins or vlocity_cmt, as in
vlocity_ins.IntegrationProcedureService.
• To drill down to a specific dataset, in the Result JSON Path field, enter a path. For example, enter
records.results, which drills down to the results array and passes the array to the card or
card layout.
• To sort data by a specific data field, enter the field name in the Order By input field.
• To reverse the order of the data returned, select True from the Reverse Order picklist.
NOTE
For optimal flexibility and easier implementation, use an Integration Procedure as a data
source to execute multiple actions in a single server call. See Configuring an Integration
Procedure Data Source.
1. On the Vlocity Cards tab, click New to configure a data source for a new cards component, or select an
existing component to configure its data source.
2. In the Cards Designer, in the Layout or Cards pane, from the Data Source picklist, select Dual.
e. In the Result JSON Path box, you can specify a path to a specific node in the JSON-formatted
response. If the information resides specifically in the CartId node, set the Result JSON Path to
CartId.
4. In the Mobile Hybrid RemoteApex Config section, follow these steps:
a. In the Endpoint box, enter the Apex REST endpoint URL.
You can use Context Variables to pass inherited values with either method.
c. (Optional). Enter values for these properties:
• To drill down to a specific dataset, in the Result JSON Path field, enter a path. For example,
enter records.results, which drills down to the results array and passes the array to the
card or card layout.
• To sort data by a specific data field, enter the field name in the Order By input field.
• To reverse the order of the data returned, select True from the Reverse Order picklist.
The card component's data source refreshes continuously at the given interval and checks for
changes in data source records. If changes are found, the layout or card component reloads.
Setting an interval enables recursive updates of records.
5. To preview a cards component using real data, add a test variable that the query can use to return live
data. See Testing Data Source Settings.
Streaming API uses push technology, a publish and subscribe model that transfers information that is
initiated from a server to the client. Push technology transfers information that is initiated from a server to
the client. This type of communication is the opposite of polling where a request for information is made
from a client to the server. The main benefits of using the Streaming API are a reduced number of API calls
and improved performance.
For details about the Streaming API, see the Use Streaming API topics and the Streaming API Developer
Guide in the Salesforce help.
This illustration shows the difference between Polling and Streaming API:
Use the Streaming Channel API when you want to send and receive notifications based on custom events
that you specify. You can use Streaming Channel API for any application that sends custom notifications,
such as a Chat application.
Streaming API is known as Generic Streaming in Salesforce. For details, see Generic Streaming in the
Salesforce Streaming API Developer's Guide.
For example, use the Streaming Channel data source for a Chat application for the users in your org.
The Streaming Channel API type enables the Streaming API to send notifications of general events that are
not tied to Salesforce data changes. See Streaming Channel Data Source.
1. In the Cards Designer, in the Layout or Cards pane, from the Data Source picklist, select Streaming
API.
2. From the Type picklist, select Streaming Channel.
3. In the Channel field, select the URL of the app that you created.
This field is auto-populated for Streaming Channel and PushTopic.
4. From the Operation picklist, select Replace or Append.
• To drill down to a specific dataset, in the Result JSON Path field, enter a path. For example, enter
records.results, which drills down to the results array and passes the array to the card or
card layout.
• To sort data by a specific data field, enter the field name in the Order By input field.
• To reverse the order of the data returned, select True from the Reverse Order picklist.
The card component's data source refreshes continuously at the given interval and checks for
changes in data source records. If changes are found, the layout or card component reloads. Setting
an interval enables recursive updates of records.
6. To preview a card using real data, add a test variable in the Test Data Source Settings fields. See
Testing Data Source Settings.
IMPORTANT
After configuring a Streaming API data source for an LWC card, you cannot preview
the card in the Card Designer's Preview pane. To view the LWC card, you must deploy
it, and then add the LWC card to a Lightning or Community page. For more
information on deploying an LWC card, see Creating an LWC Card Layout. For more
information on adding an LWC card to a page, see Adding an LWC Card to a
Lightning or Community Page.
For details, see Generic Streaming in the Salesforce Streaming API Developer's Guide.
A PushTopic is a SOQL query that returns a result that notifies listeners of changes to records in a
Salesforce organization. The PushTopic defines a Streaming API channel. For instance, if you want to get
notified when a case is created for a particular type or status or both, use a PushTopic.
The following example code creates a PushTopic that pushes data if a case of type Problem is created:
If you also need Status, you can simply add another condition:
For another example, you could create an app that notifies a user any time a new task is created for that
user.
The PushTopic defines a Streaming API channel. For instance, if you want to get notified when a case is
created for a particular type or status or both, use a PushTopic. For more information on how a Streaming
API PushTopic data source works, see PushTopic Data Source.
1. In the Cards Designer, in the Layout or Cards pane, from the Data Source picklist, select Streaming
API.
2. From the Type picklist, select PushTopic.
3. In the Channel field, select the URL of the PushTopic that you created.
This field is auto-populated for Streaming Channel and PushTopic.
4. From the Operation picklist, select Replace or Append.
• To drill down to a specific dataset, in the Result JSON Path field, enter a path. For example, enter
records.results, which drills down to the results array and passes the array to the card or
card layout.
• To sort data by a specific data field, enter the field name in the Order By input field.
• To reverse the order of the data returned, select True from the Reverse Order picklist.
The card component's data source refreshes continuously at the given interval and checks for
changes in data source records. If changes are found, the layout or card component reloads. Setting
an interval enables recursive updates of records.
6. To preview a card using real data, add a test variable in the Test Data Source Settings fields. See
Testing Data Source Settings.
IMPORTANT
After configuring a Streaming API data source for an LWC card, you cannot preview
the card in the Card Designer's Preview pane. To view the LWC card, you must deploy
it, and then add the LWC card to a Lightning or Community page. For more
information on deploying an LWC card, see Creating an LWC Card Layout. For more
information on adding an LWC card to a page, see Adding an LWC Card to a
Lightning or Community Page.
Platform Events are part of Salesforce’s enterprise messaging platform. A Platform Event combines
PushTopic and Streaming Channel. Instead of working with an sObject, Platform Events work with custom
objects.
The architecture is suitable for large distributed systems because it decouples event producers from event
consumers, thereby simplifying the communication model in connected systems.
For details, see Delivering Custom Notifications with Platform Events in the Salesforce Help.
For example, you might create a Card that uses a Platform Event as a data source to display the current ink
level for a printer. You must first create your Platform event. To see a detailed demo, see End-to-End
Example: Printer Supply Automation in the Salesforce Help.
Platform Events are part of Salesforce’s enterprise messaging platform. A Platform Event combines
PushTopic and Streaming Channel. Instead of working with an sObject, Platform Events work with custom
objects. See Platform Event Data Source.
1. In the Cards Designer, in the Layout or Cards pane, from the Data Source picklist, select Streaming
API.
2. From the Type picklist, select Platform Event.
3. In the Channel field, enter the URL of the Platform Event that you created.
4. From the Operation picklist, select Replace or Append.
• To drill down to a specific dataset, in the Result JSON Path field, enter a path. For example, enter
records.results, which drills down to the results array and passes the array to the card or
card layout.
• To sort data by a specific data field, enter the field name in the Order By input field.
• To reverse the order of the data returned, select True from the Reverse Order picklist.
IMPORTANT
After configuring a Streaming API data source for an LWC card, you cannot preview
the card in the Card Designer's Preview pane. To view the LWC card, you must deploy
it, and then add the LWC card to a Lightning or Community page. For more
information on deploying an LWC card, see Creating an LWC Card Layout. For more
information on adding an LWC card to a page, see Adding an LWC Card to a
Lightning or Community Page.
Preview a FlexCard using real data by adding test variables that the query can use to return live data.
1. In the Test Data Source Settings section, click + Add Test Variables.
/apex/consolecards?layout=MyLayout&layoutId=3141592653589793
• layoutId—for testing purposes, the layout ID is passed so you can view the layout regardless of its
version or status.
By default, layout and layoutId get passed as URL parameters. For example:
/apex/ConsoleCards?layout=Test&layoutId=0011500001ChJqa.
IMPORTANT
If either layout or layoutId are not set, the framework loads the default Grid layout.
Consequently, any other parameters passed to the page get stored in the {{params}}
context variable to use on that page.
Creating Zones
Zones enable you to arrange the information on a card layout into sections. Create zones in the Template
Designer, add the zones to a layout in the Card Designer, then add cards or nested layouts inside the
zones.
For example, to create a layout where account information takes the entire width of the layout, and related
information displays beneath it as a 3-column grid, create a Header zone with a nested layout for the
account information, and one or more Body zones for cards displaying related information, such as cases,
policies, and so forth.
To create a zone:
1. In your org, click App Launcher, click Vlocity Templates, and click a version of a template to open the
Template Designer.
TIP
Clone a template that has zones, such as card-canvas-3x-zones-slds. Then
update, remove, or add zones as needed.
4. Enter a unique zone Name and descriptive zone Label, such as footer and Footer, respectively.
5. Click Save.
6. Click the HTML tab.
7. To reference the zone by Zone Name in the HTML add data.zones['Zone Name'].cards to an
ng-repeat directive, such as in card-canvas-3x-zones-slds:
1. In your org, click App Launcher, click Vlocity Cards, and click a version of a card layout to open the
Card Designer.
3. Click Add.
1. Expand a zone, and click into the Layouts input field to select an active card layout from the
dropdown.
Creating a Placeholder
Create placeholders in the Template Designer to insert additional fields into card states in the Card
Designer. For example, to add a unique title for escalated case cards, select the card-active-
placeholders-slds card template, and enter Escalated for the value of the Title placeholder.
1. In your org, click the App Launcher, click Vlocity Templates, and click to open a version of a template in
the Card Designer.
TIP
Clone a template that has placeholders, such as card-active-placeholder-
slds. Then update, remove, or add placeholders as needed. See Cloning a
Template.
IMPORTANT
The Placeholder Name is the API name, which can have underscores, but no spaces.
For example, Case_Title or CaseTitle is permitted. However, Case Title is
not.
5. Click Save.
6. Click the HTML tab.
7. Enter the placeholder label, type, and value merge fields inside the HTML:
• To reference the placeholder value in the HTML, add
{{placeholder.PlaceholderAPIName.value}} where you want the value to display on the
card.
• (Optional) To reference the placeholder label in the HTML, add
{{placeholder.PlaceholderAPIName.label}} where you want the label to display on the
card.
• (Optional) To reference the placeholder type in the HTML, add
{{placeholder.PlaceholderAPIName.type}} to display the type of data, such as
String or Address.
<!--
{{placeholder.<placeholderName>.type}}
// For placeholder Type
-->
<span class="slds-text-heading--small">
{{placeholder.CaseTitle.label}}: {{placeholder.CaseTitle.value}}: </span>
</a>
</div
8. Click Save.
IMPORTANT
Your card template must support placeholders. For a list of Vlocity base card state
templates that support placeholders, see Base UI and Card Templates. To create a custom
card state template that supports placeholders, see Creating a Placeholder.
NOTE
By default, a list of data fields available from the card or card layout data source is
visible when you click into this input field. However, any value is acceptable.
• (Optional) Placeholder type: To update the field type, in the second input field, delete the default
string, and choose from the available types in the picklist.
• (Optional) Label: If your template displays a label, enter a label for the placeholder. For example:
NOTE
By default, a list of data fields available from the card or card layout data source is
visible when you click into this input field. However, any value is acceptable.
For example, display an alert for high priority cases using a card state template that displays both the
placeholder label and its value in the header of a card. Enter Priority as the label of the alert, and
the context variable ['Priority'] as the placeholder value.
Creating a Flyout
Create a flyout to display additional information about the record displayed on the card when you click the
card. For example, a flyout can display information from long text strings that do not fit in the standard card
field, or data from child records, such as open cases for an account, or additional actions.
To create a flyout:
1. In your org, click the App Launcher, click Vlocity Cards, and click New to create a new card layout.
2. On the New Layout screen, in the Type field, select Flyout.
3. Select the flyout Data Source:
• To use the parent context variable of the card layout where you'll add your flyout, select Parent as
the data source. To display specific data in the flyout:
• Click View Data on the Layout or Card pane in the card layout where you'll add your flyout and
copy the JSON data by clicking Copy to clipboard.
• Choose Sample as the Data Source on your flyout layout and paste the copied JSON inside the
input field.
• If your flyout does not use data from the parent context variable of the card layout from where you'll
add your flyout, add a data source to the layout, and optionally, to a card. See Configuring Data
Sources for Cards Components.
1. In your org, click the App Launcher, click Vlocity Cards, and click a version of a card to open the Card
Designer.
2. In the Flyouts section of a card state, select a flyout layout template from the Flyout Layout
dropdown. See Creating a Flyout. Only active flyouts are visible in the list.
3. To display specific records, set the Flyout Data Object:
NOTE
The parent context variable always gets passed into the flyout. See Creating a Flyout.
• null: leave the field blank to pass in the parent context of the card.
• $scope.obj.[children]: where [children] represents an array inside the data source object such
as PolicyLineItems for a Policy.
1. Go to the Vlocity Cards tab and click on an existing card layout to reveal the list of card layout versions.
2. Select a card layout version, click the dropdown arrow, and click Clone.
3. In the Layout Name field, update the name of the card layout.
NOTE
Vlocity recommends that you create a unique name when cloning a layout. Only one
layout with the same layout name can be active at a time.
Creating a version of a template creates an exact copy of the template with a version equal to the latest
version number plus one. For example, if the name of your card layout template is trng-card-
canvas-3x-zones-slds the first version is trng-card-canvas-3x-zones-slds (Version 1), the
next is trng-card-canvas-3x-zones-slds (Version 2), and so forth.
IMPORTANT
To assign a template to a component, one version of the template must be active, and only
one version of a template can be active at a time. For example, in the Cards Designer, to
assign a card layout template named trng-card-canvas-3x-zones-slds to a card
layout, activate one version so that it displays in the Template dropdown.
NOTE
To learn best practices and how versioning works throughout the Vlocity Cards
Framework, see Cards Framework Versioning.
1. Go to the Vlocity Templates tab, click to expand a template, and click a version to open.
NOTE
If the template is a Vlocity base template, it cannot be versioned. You must clone the
template instead, or clone then create a version. See Cloning a Template.
Cloning a Template
NOTE
Beginning with the Summer '19 release, Vlocity supports Salesforce's Lightning Web
Components programming model with Vlocity Lightning Web Components. Vlocity
Lightning Web Components include components, functionalities, and templates exclusive
to LWC Cards. To clone an LWC Card template, see Creating Custom LWC Card
Templates.
Edit a template without overriding existing code and settings by cloning an OmniScript element or Cards
Framework component template with the Template Designer.
To create a new template or import a template, see Creating a Template with the Template Designer,
1. Go to the Vlocity Templates tab, click to expand a template you want to clone.
• Open template version: Click to open the template version you want to clone, then click Clone.
3. Enter a Template Name, Template Type, and Template Author, then click Clone.
NOTE
A template is unique as a result of the combination of its Name, Author, and Version
attributes. See Cards Framework Versioning.
NOTE
To configure a Vlocity LWC component to render an LWC enabled Card Layout, see
Adding an LWC Card to a Lightning or Community Page.
1. In your org, go to Setup > Lightning App Builder. Click the New button to create a new app. Or, choose
an existing app to open by clicking Edit next to its name. For information on the Lightning App Builder,
see Lightning App Builder.
2. From the Lightning components pane, drag the Vlocity Cards component from the list of Custom -
Managed components into the canvas area.
3. In the properties pane, select a Card Layout in the Layout Name dropdown list.
1. In your org, go to Setup > All Communities. Click the New Community button to create a new
community. Or, choose an existing community to open by clicking Builder next to its name. For
information on the Community Builder, see Community Builder Overview.
2. Click the blue and white lightning icon to open the Components pane. From the list of Custom
Components, select Vlocity Cards and drag it to the canvas area.
3. In the properties pane that pops up, select a Card Layout from the Layout Name dropdown list.
IMPORTANT
Record ID: The record Id for the object on the community page is automatically
passed into the Record Id field as the {!recordId} parameter.
• Custom Community Page URL: If the Card component uses OmniScripts, add the relative URL of
the community page created to display OmniScripts, such as "/omnipage".
• Disable Cache: Select this checkbox to prevent the Layout, Cards and Templates from being read
from the offline cache.
• Max Height(px): To restrict the height and make the component scrollable, add a height in pixels,
such as 600.
• Custom Visualforce Page: To override the default Visualforce page used to render Cards, select a
custom Visualforce page from the dropdown list.
• Background: To override the default #FFFFFF background color, enter a hex color code such as
#000000.
• Theme: To set the CSS style sheet, select slds or newport from the dropdown list.
1. In your org, go to Setup > Lighting App Builder. Click the New button to create a new app. Or, choose
an existing app to open by clicking Edit next to its name. For information on the Lightning App Builder,
see Lightning App Builder.
2. In the properties pane, drag the Vlocity Lightning Profiler component from the list of Custom -
Managed components into the canvas area.
3. In the Profile Title field, enter a visible title for the component.
4. If the Vlocity Profiler component is not used on a record page, enter a specific sObject ID in the
Context ID field.
5. (Optional) Enter the values for these properties:
• Take Context ID from field on current record: To enable the Profiler to get attributes based on the
relationship field, if present, enter the relationship field name. For example AccountId.
• Use Category Color Codes: To enable category color codes, select this checkbox. To learn how to
set category colors, see Create New Profile Attribute Categories.
6. Save and Activate the app to view the profile attributes on a record page.
1. In your org, go to Setup > All Communities. Click the New Community button to create a new
community. Or, choose an existing community to open by clicking Builder next to its name. For more
information on the Community Builder, see Community Builder Overview.
2. Click the blue and white lightning icon to open the Components pane. From the list of Custom
Components, select Vlocity Lightning Profiler component and drag it to the canvas area.
3. In the properties pane that pops up, enter a visible title for the component in the Profile Title field.
4. (Optional) If the Vlocity Profiler component is not used on a record page, enter a specific sObject ID in
the Context ID field.
5. (Optional) Enter the values for these properties:
• Take Context ID from field on current record: Based on a relationship field on the page, enter the
relationship field name. For example, AccountId.
• Use Category Color Codes: To enable category color codes, select this checkbox. To learn how to
set attribute category colors, see Create New Profile Attributes.
6. View the profile attributes in the canvas area or click the Preview button to view page in preview mode.
IMPORTANT
A Vlocity Cards component and a Vlocity Lightning Profiler component must be on the
same Lightning Page or Community Page as the Vlocity Cards Component Events
component.
IMPORTANT
Vlocity Cards Component Events component does not work with LWC enabled Vlocity
Card Layouts.
1. In your org, go to Setup > Lighting App Builder. Click the New button to create a new app. Or, choose
an existing app to open by clicking Edit next to its name. For information on the Lightning App Builder,
see Lightning App Builder.
2. From the Lightning components pane, drag the Vlocity Cards Component Events component from
the list of Custom - Managed components onto the canvas area.
3. In the Layout Name input field in the properties pane, add the name of the Card Layout that is on the
same Lightning page.
4. The Vlocity Cards Component Events component does not display content. To check that your
component is configured properly, visit your Lightning page. Make a change to the available profile
attributes to see the Card Layout reload.
1. In your org, go to Setup > All Communities, and click the New Community button to create a new
community. Or, choose an existing community to open by clicking Builder next to its name. For more
information on using the Community Builder, see Community Builder Overview.
2. Click the blue and white lightning icon to open the Components pane. From the list of Custom
Components, select Vlocity Cards and drag it to the canvas area.
3. In the properties pane, enter the name of a Card Layout in the Layout Name input field.
4. The Vlocity Cards Component Events component does not display content. To validate if your
component is configured properly, visit your Community page. Make a change to the available profile
attributes to see the Card Layout reload.
NOTE
All variables are case sensitive.
<div class="info">
<h2 ng-click="$root.showContent = !
$root.showContent; importedScope.url =
'';">
<span class="icon icon-v-left-caret">
</span>Back
</h2>
<iframe ng-src="{{importedScope.url}}"
onload="iframeLoaded()"ng-
show="importedScope.loaded">
</iframe>
</div>
Controller imported:
.controller('infoCtrl',
function($scope, $rootScope,
remoteActions, force, $sce)
{ $scope.loaded = false;
$rootScope.$on('actionSelected',function(ev
ent, action) {
console.log(action.url);
$scope.loaded = false;
$rootScope.showContent = false;
$scope.url =
$sce.trustAsResourceUrl(action.url);
});
window.iframeLoaded = function() {
if ($scope.url) {
console.log('Community frame loaded');
$scope.loaded = true;
$scope.$apply();
}
};
});
Keep in mind, certain features require the connection in order to function. Be mindful of API usage, as
every call will cost an API hit to the Salesforce org. Use DataPack side-loading and batch calls to reduce
hits.
1. Upload the following resources from your org to your deployment server. See Cards Framework
Required Resources.
• vlocity_core_assets.js
• $Resource.angular_strap_bundle_1_6
• $Resource.SldsAngular.js
• $Resource.cardframework_core_assets , '/latest/cardframework_assets.js'
• $Resource.cardframework_core_assets , '/latest/cardframework.js'
2. Add the downloaded resources either to your index.html file or in the page that will use Vlocity
Cards:
app.run(function(force) {
force.init({
proxyURL: 'https://omniproxy.herokuapp.com'
});
force.login().then(
function (oAuth) {
/* all logged in /*
$rootScope.showCards = true;
});
});
5. Load the layouts, cards and templates, depending on your connection to Salesforce.
• With a Salesforce connection, reference the layouts inside your application, like you would inside the
org:
<vloc-layout layout-name="myLayout"><vloc-layout>
Once the connection is made, the framework will fetch the required metadata.
• Without a Salesforce connection, you need to preload multiple components and cache them so you
can reference all layouts, cards, and templates included in the sideloaded DataPack:
$http.get('datapacks/myDatapack.json').then(function(data) {
/* call the service to sideload DataPack components */
configService.loadCardframeworkDefinitions(data).then(function(result) {
$rootScope.showCards = true;
}, function(err) {
console.log('err ',err);
});
});
• Without a Salesforce connection, use REST or Sample data sources. Only Custom Actions are
supported and components must be sideloaded from a DataPack using the
configService.loadCardFrameworkDefinitions.
1. Create a page in Adobe Experience Manager. The page does not contain any components yet.
2. Open the Sidebar. Click the Toggle Sidebar button in the upper-left hand corner.
3. Click the Add Component button and type the keyword card in the Search box.
NOTE
5. Double click the component to display the Card Component that you added.
queries:
- VlocityDataPackType: VlocityUITemplate
The templates you queried appear in the expansionPath folder in the DataPack.
5. If you need to make changes to the templates:
a. Edit the templates using your favorite IDE and store them in source control.
b. Run the packBuildFile job to compress the resources to a DataPack that will be stored in the
buildFile directory.
6. Upload the DataPack to your desired location.
7. Use the configService.loadCardframeworkDefinitions function to load your DataPack into
the Cards Framework.
NOTE
Beginning with the Vlocity Summer '19 release, Vlocity supports Salesforce's Lightning
Web Components programming model with Vlocity Lightning Web Components. Vlocity
Lightning Web Components include components, functionalities, and templates exclusive
to LWC Cards. For base templates compatible with LWC Cards, see Base LWC Card and
Layout Templates.
NOTE
You cannot modify base Vlocity Cards authored by Vlocity. If you need to make changes to
the card, such as to the configuration settings, card states or data sources, clone the card.
See Cloning a Card Layout.
Layout dropdown. The Vlocity Cards component is available in the Community Builder and the Lightning
App Builder.
Card Layouts
Layout templates act as containers for Card templates and control how the cards display. For more
information on Layouts, see Vlocity Layouts.
1. In the Layout section of a Vlocity Card, ensure the Type is set to Layout.
2. Enter a Layout Template into the Template field.
card-active-placeholders-slds
card-active-slds
card-active-slds-VlocityTrack
card-highlight-totals
card-horiz-actions-slds
card-horiz-noActions-slds
large-card-slds
action-grid-card-slds
card-active-placeholders-slds
card-active-slds
card-active-slds-VlocityTrack
card-highlight-totals
card-horiz-actions-slds
card-horiz-noActions-slds
large-card-slds
card-canvas-3x-slds Three-column container with search feature action-grid-card
action-grid-card-slds
card-active-placeholders-slds
card-active-slds
card-active-slds-VlocityTrack
card-horiz-open-slds
card-open-slds
card-simple-slds
offer-card-active-slds
card-canvas-3x- Three column card container with search action-grid-card
zones-slds feature and zones
action-grid-card-slds
card-active-placeholders-slds
card-active-slds
card-active-slds-VlocityTrack
card-horiz-open-slds
card-open-slds
card-simple-slds
offer-card-active-slds
action-grid-card-slds
card-active-placeholders-slds
card-active-slds
card-active-slds-VlocityTrack
card-highlight-totals
card-horiz-actions-slds
card-horiz-noActions-slds
large-card-slds
infinite-list List template with infinite scrolling for records See list-card- list-card-slds
using pagination canvas
list-card-canvas One-column container with each card's fields list-card
and actions displayed in a row
Cards
To apply a Card Template:
1. In the Cards section of Vlocity Cards, ensure your Card is not active.
2. In the States section of Vlocity Cards, enter a Card template name into the Template field.
card-canvas-3x-slds
card-canvas-3x-zones-slds
column
action-grid-card-slds Displays actions (icon and label) in a card-canvas-1x-slds
responsive grid format using SLDS.
card-canvas-1x-simple-slds
card-canvas-3x-slds
card-canvas-3x-zones-slds
column
card-active- Displays a list of fields and an adjacent list of card-canvas-1x-slds
placeholders-slds actions along with placeholder.
card-canvas-1x-simple-slds
card-canvas-3x-slds
card-canvas-3x-zones-slds
column
card-active-slds Displays a list of fields and an adjacent list of card-canvas-1x-slds
actions.
card-canvas-1x-simple-slds
card-canvas-3x-slds
card-canvas-3x-zones-slds
column
card-active-slds- Displays a list of fields and an adjacent list of card-canvas-1x-slds
VlocityTrack actions, using SLDS with tracking. For more
information on tracking, see Vlocity Tracking card-canvas-1x-simple-slds
Service.
card-canvas-3x-slds
card-canvas-3x-zones-slds
column
card-highlight-totals Displays entire card in single column with card-canvas-1x-slds
pagination, with four fields per page.
card-canvas-1x-simple-slds
column
card-horiz-actions- Displays entire card in single column with card-canvas-1x-slds
slds horizontal fields. Actions display horizontally
under fields. card-canvas-1x-simple-slds
column
card-horiz-noActions- Displays entire card in single column with card-canvas-1x-slds
slds horizontal fields. Actions available only in
dropdown. card-canvas-1x-simple-slds
column
card-canvas-3x-zones-slds
card-canvas-3x-zones-slds
Flyout Templates
Flyout Templates enable users to view information or access additional actions for the current record or a
child record. Similar to Cards, Flyouts are created in Vlocity Cards and use a Flyout Layout template to
contain Flyout Card Templates. Once active, the resulting Flyout becomes available in the Flyout Template
dropdown.
1. In the Layout section of a Vlocity Card, ensure the Type is set to Flyout.
2. Enter a Flyout Template into the Template field.
1. In the Cards section of Vlocity Cards, ensure your Card is not active.
2. In the States section of Vlocity Cards, enter a Flyout Card template name into the Template field.
flyout-grid-noActions-slds
• AngularJS 1.6.8
• jQuery 3.2.1
• Lodash 4.17.4
• Moment 2.17
• Angular-animate
• Angular-sanitize
• Angular-messages
• Angular-aria
• Angular-hotkeys
• CurrencyFormatter.js 1.x
• Vlocity internal providers and services:
• Vlocity.js
• RemoteActions.js
• promiseQueue.js
• localizable.js
• InteractionTracking.js
• currencyInfo
AngularStrap $Resource.angular_strap_bundle_1_6 Incorporates bootstrap directives in the
framework to be used whenever necessary.
SldsAngular $Resource.SldsAngular Angular directives that use the Salesforce
Lightning Design System
CardFramework_Assets $Resource.cardframework_core_assets , Compilation of specific libraries needed for
'/latest/cardframework_assets.js' Cards Framework functionality, including:
• ForceTK
• ForceNG
• tmhDynamicLocale
• Moment with Locales
• Moment-timezone
• Ng-Table
• SVG4Everybody
• IFrameResizer
• CometD
CardFramework.js $Resource.cardframework_core_assets , The main framework file including all the
'/latest/cardframework.js' directives, services, factories, and providers
that house the functionality
where the ng-app tag relates to your Angular application. If you are including CPQ, you can reference
the "hybridCPQ" app directly, otherwise include your own app.
3. Add these resources to your page:
<script src="{!
URLFOR($Resource.nsPrefix__VlocityDynamicForm__vlocity_core_assets, '/
latest/vlocity_core_assets.js')}"></script>
<script src="{!
URLFOR($Resource.nsPrefix__VlocityDynamicForm__angular_strap_bundle_1_6)}">
</script>
<script src="{!$Resource.nsPrefix__VlocityDynamicForm__SldsAngular}"></
script>
<script src="{!
URLFOR($Resource.nsPrefix__VlocityDynamicForm__cardframework_core_assets,
'/latest/cardframework_assets.js')}"></script>
<script src="{!$Resource.nsPrefix__VlocityDynamicForm}"></script>
<script src="{!
URLFOR($Resource.nsPrefix__VlocityDynamicForm__cardframework_core_assets,
'/latest/cardframework.js')}"></script>
<script src="{!$Resource.nsPrefix__HybridCPQ}"></script>
4. Include your layout name in the body of your page:
Complete code:
<head>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<apex:stylesheet value="{!IF(isLanguageRTL,
URLFOR($Resource.vlocity_cmt__slds, '/assets/styles/salesforce-lightning-
design-system-vf.rtl.min.css'), URLFOR($Resource.vlocity_cmt__slds, '/assets/
styles/salesforce-lightning-design-system-vf.min.css'))}" />
<!-- Custom CSS here -->
<body>
<div class="">
<!-use your layout name->
<button type="button" class="btn btn-default">Left</button>
<vloc-layout layout-name="AccountConsoleCards"
ctrl="CPQController"></vloc-layout>
</div>
<script src="{!$Resource.vlocity_cmt__SldsAngular}"></script>
<script src="{!URLFOR($Resource.vlocity_cmt__cardframework_core_assets, '/
latest/cardframework_assets.js')}"></script>
<script src="{!$Resource.vlocity_cmt__VlocityDynamicForm}"></script>
<script src="{!URLFOR($Resource.vlocity_cmt__cardframework_core_assets, '/
latest/cardframework.js')}"></script>
<script src="{!$Resource.vlocity_cmt__HybridCPQ}"></script>
<script type="text/javascript">
var sessionId = '
{!$Api.Session_ID}';
var vlocCPQ = {
'accessToken': '{!$Api.Session_ID}
',
'staticResourceURL': {
'slds': '
{!URLFOR($Resource.vlocity_cmt__slds)}
',
}
};
</script>
</body>
</html>
</apex:page>
Required Versions
Beginning with Vlocity Insurance and Health Summer '20.
https://org-name.lightning.force.com/lightning/r/Account/1234567890aBcdefhgp/
view?
ns__contactId=0987654321kqaBPAAY&ns__primaryContactId=0987654321kqaBPAAY
To confirm your org has enough space allocated to the VlocityMetadata partition or to allocate more space,
see Allocating Space in the Platform Cache Partitions.
Clearing Caches
Remove stored data by clearing specific types of data from the Vlocity platform and user session caches to
get the latest available data from the database. See Clear Vlocity Platform and User Session Caches.
To confirm your org has enough space allocated to the VlocityMetadata partition or to allocate more space,
see Allocating Space in the Platform Cache Partitions.
Required Versions
Available beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20,
2. To clear org caches, click one or more of the Platform Org Cache checkboxes:
• Layouts: To clear cached card layouts, check this box.
• Cards: To clear cached cards, check this box.
• Templates: To clear cached card templates from the Vlocity Cards Framework, check this box.
• Custom Labels: To clear cached Custom Labels across the Vlocity Cards Framework, check this
box. To learn more about Custom Labels, see Custom Labels.
NOTE
Beginning with Vlocity Insurance and Health Vlocity Spring '20, Vlocity supports
disabling the Vlocity platform cache. See Disable Vlocity Platform Cache.
NOTE
Beginning with Vlocity Insurance and Health Vlocity Spring '20, enabling async calls
on the Vlocity platform cache. See Enable Future Method Calls on the Vlocity Platform
Cache.
3. To clear cached data specific to the logged-in user across the Vlocity Cards Framework, select the
User Profile checkbox in the Platform Session Cache column.
NOTE
The user info data cleared are: User Id, Name, LanguageLocaleKey,
LocaleSidKey, TimeZoneSidKey, UserType, UserRole.Name, ProfileId,
Profile.Name, AccountId, and ContactID.
NOTE
Beginning with Vlocity Insurance and Health Vlocity Winter '20 Minor Release
107.1.0.2, Vlocity supports disabling the user session cache. See Disable User
Information Caching.
4. Click Clear.
To confirm your org has enough space allocated to the VlocityMetadata partition or to allocate more space,
see Allocating Space in the Platform Cache Partitions.
Required Versions
Available beginning with Vlocity Insurance and Health Spring '20.
1. Go to Setup > Custom Settings, and click manage next to Card Framework Configuration.
2. Click Edit.
3. Check the Disable Cache checkbox.
4. Click Save.
Required Versions
Available beginning with Vlocity Insurance and Health Winter '20 Minor Release 107.1.0.2.
1. In your org, go to Setup > Custom Settings, and click manage next to TriggerSetup.
2. Click Edit next to Cards.UserTrigger.
3. Uncheck the Trigger On checkbox.
Required Versions
Available beginning with Vlocity CME Spring '20.
1. In your org, go to Setup > Custom Settings, and click Manage next to Card Framework
Configuration.
2. Click Edit.
3. Check the Enable Future Method checkbox.
4. Click Save.
3. Click Manage.
The Card Framework Configuration Custom Settings page appears.
4. Click Edit.
The Edit Card Framework Configuration page appears.
5. Check or uncheck a checkbox for each data source that you want to enable or disable for your org and
click Save.
3. Click Manage.
The Card Framework Configuration Custom Settings page appears.
4. Click Edit.
The Edit Card Framework Configuration page appears.
5. Check or uncheck a checkbox for each Data Source you want to enable or disable for your org and
click Save.
6. In the Setup Owner pane, click New.
7. On the Card Framework Configuration Edit page, select Profile or User from the Location list.
A Vlocity Service Console app enables you to manage interactions that streamline common tasks. For
example, if you are a call service agent, you can use the Vlocity interaction launcher to search accounts,
verify your customers, and use Vlocity actions to optimize different processes and improve the overall
customer experience.
This section explains how to use the Salesforce Lightning App Builder to create a Lightning Record Page
for a Vlocity Service Console app by dragging and dropping Vlocity cards and OmniStudio components into
the page.
• Service Console Apps, which contain multiple tabs and a way to navigate between them. You create and
edit Service Console Apps in the App Manager in Setup. Each tab contains a Lightning Record Page.
• Lightning Record Pages, which contain multiple screen components that display data based on a specific
Salesforce object type, such as Accounts. You create and edit Lightning Record Pages in the Lightning
App Builder in Setup. Screen components in a Lightning page include:
• Prebuilt Salesforce Lightning Components
• Prebuilt Vlocity Lightning Components
• Cards, which display data and launch actions
Prebuilt Vlocity Service Console Apps use console navigation mode, which is also recommended for any
custom Service Console Apps that you build. This mode lets you display an object type, such as Accounts,
in a primary tab, and specific object records in subtabs. Vlocity provides Lightning components and Action
behaviors to support console navigation. You can customize, clone, and reuse these apps as needed.
This multiple-tab structure allows you to have all of your customer service information and links to actions at
your fingertips for each customer. You can work quickly through a list of customer records and follow
industry-specific guided flows.
TIP
Learn more about the Salesforce Console in the Salesforce Help. This Salesforce article
discusses console navigation, implementation, and limitations.
You can use the Lightning App Builder to quickly create and customize Lightning Record Pages for your
own Vlocity Service Console App. Components on these pages use the main platform applications: Cards
Framework, OmniScript, and DataRaptor.
• Cards Framework enables you to build, edit, and define the look and feel of cards.
• Data sources enable you to use DataRaptors to provide the information displayed on the card.
• Actions are embedded links on cards that launch guided workflows built as OmniScripts.
There are many additional components, but this section introduces the basic platform components.
• A left sidebar that displays basic account information and the customer story, which is a record of
previous customer activity and interaction.
• A center card canvas that contains cards focused on different contexts.
• A right sidebar that displays dynamic information such as offers, and profile "tags" to describe
characteristics of the company, such as culture, concerns, and news.
Before you begin creating your own Vlocity Service Console app, see Installing and Activating Vlocity
Templates and Cards.
To create a simple Lightning Record Page for a Service Console app, see Building an Account Lightning
Record Page.
1. From Setup in Lightning Experience, enter Apps in the Quick Find box, then select App Manager.
2. Click the dropdown next to the console app that to add Vlocity interaction launcher, and click Edit.
3. Under the Utility Items, click Add Utility Item.
4. To add a class-based or object-based Interaction Launcher, select Vlocity Interaction Launcher.
NOTE
To create an OmniScript-based Interaction Launcher, see Create an OmniScript-
Based Interaction Launcher.
6. (Optional) To update the layout of your Interaction Launcher by configuring options, such as updating
the icon or enabling the scratchpad, see Update the Layout of an Interaction Launcher.
7. Click Save.
8. Click Done.
NOTE
To see more information about Lightning page activation, see how to Activate Lightning
Experience Record Pages.
a.
b. Select your Vlocity app and search for an account. Verify that the three-column page appears as
you expected.
NOTE
If your Lightning Record Page does not appear, update or remove activation rules for a
conflicting Lightning Record Page. Clear your cache and open a new browser tab.
• Product Overview tab with a Vlocity card. (In this example, we used a demo vdo-asset-layout-grid
layout, but you must choose a layout that is active within your organization.)
• Related Lists tab with a standard Related Lists component
• Record Details tab with a standard Record Details component
1. On the App Builder Desktop tab, click the middle Add Component(s) Here area.
2. From the Lightning Components panel, drag a standard Tabs component into the middle column of
the page.
a. In the right panel, under Page > Tabs, select <First Tab> from the Default Tab picklist and click
the Add Tab button.
b. Click the new tab (it will have the same label as the tab above it) and select Custom from the Tab
Label picklist.
c. In the Custom Tab Label field, type Product Overview and click Done.
d. In the right panel, under Page > Tabs, drag the Product Overview tab up to the first tab position.
e. Click Save.
3. From the Lightning Components panel, expand the Custom Managed list, and drag a Vlocity Cards
component into the Product Overview tab.
a. In the right panel, under Page > Tabs, select a Layout from the Layout Name picklist. (In this
example, we used a demo vdo-asset-layout-grid layout, but you must choose a layout that is
active in your organization.)
b. Click Save.
Now finally, it is time to activate the page so your users can see it, so go to the topic Activating the Custom
Lightning Page.
1. On the App Builder Desktop tab, click the right Add Component(s) Here area.
2. Scroll down to the Custom Managed Component section in the Lightning Components panel.
3. Click the Vlocity Cards component in the Lightning Components panel and drag it into the highlighted
insertion point on the right of your desktop.
4. On the right sidebar, under Page > Vlocity Cards, select console-right-sidebar-slds from the Layout
Name picklist.
5. Click the Vlocity Lightning Profiler component in the Lightning Components panel and drag it into the
right sidebar.
6. Click the Vlocity Cards Component Events in the Lightning Components panel and drag it into the
right sidebar beneath the Vlocity Lightning Profiler. This component provides real-time refresh when
Profile tags are changed.
7. On the right sidebar, under Pages > Vlocity Cards, enter console-right-sidebar-slds in the
Layout Name field.
8. Click Save.
Next, build page navigation by Adding a Primary Tab and Subtabs to the Page.
1. Open the Service Console on the App Builder Desktop tab. Click the left Add Component(s) Here
area.
2. Scroll down to the Custom Managed Component section in the Lightning Components panel.
3. Click the Vlocity Cards component in the Lightning Components panel and drag it into the highlighted
insertion point on the left of your desktop.
4. On the right sidebar, under Page > Vlocity Cards, select console-sidebar-slds from the Layout
Name picklist.
5. Click Save.
Next, complete the Lightning page by Adding a Right Sidebar Component to the Page.
Create a new Lightning Record Page by selecting a template, adding template components, adding primary
tabs and sub-tabs to the template, then finally activating the page.
Next, you will start configuring the page by Adding Left Sidebar Component to the Page.
For more information, see Create and Configure Lightning Experience Record Pages in the Salesforce
Help.
1. If you are viewing the console using Salesforce Classic, select Org Developer > Switch to Lightning
Experience.
2. Click Setup in the upper right corner and click the App Launcher in the upper left corner.
Next, see Add a Tab and a Cards Component to the Tabs Page.
Then add a Story component. First, add a tab and name it Story, then drag a Vlocity Cards component
onto the Story tab and select the story-slds Customer Story Layout. The Customer Story layout keeps
track of customer details for any service agent.
c. Click Save.
NOTE
You can use the drop-down menu in the Layout Name picklist to select a different
template for your component.
1. To add the story-slds component to a Lightning page, open an Account, Contact, Household, or
Opportunity record and click Edit Page from the Setup menu.
2. Drag the story-slds component from the list of Custom components in the Components pane onto the
canvas.
3. Click Save.
1. From the Vlocity Cards home tab, click story-slds, select the checkbox next to story-slds (Version 3)
card layout., and click Clone.
1. Go to the Vlocity Cards tab in your org, and search for story-slds, and click story-slds (Version 3) to
open the story card layout in the Vlocity Card Designer.
NOTE
Beginning with Vlocity Health and Insurance Summer '19, select Version 3 for an LWC
enabled story-slds. For an Angular story-slds component, select Version 2.
NOTE
If using an Angular story-slds, use story-slds (Version 2).
3. In the Cards pane, click Activate for each object you want to display in the story and disable Activate
for those you want to hide.
4. In the Layout pane, click Activate.
11. Click the Properties button—the wrench icon, located in the upper right corner of the section—to open
the Visualforce Page Properties dialog box.
What's Next
Add your new Visualforce component to a page layout. See Add a Customer Story to a Page as a
Visualforce Component.
1. Navigate to Setup > Custom Settings in your org, and click Story Object Configuration.
2. Select Manage.
3. Select New.
4. Fill out the Story Object form. For example, for an Opportunity, enter the following data:
• Name: Opportunity_Event
• Detail Fields: Description
• Parent Object Name: Opportunity
• Has Owner: checked
• Story Object Lookup Field: WhatId
• Story Object Name: Event
• Story Object Sort Field: StartDateTime
• Summary Fields: Title:Subject,Title_Highlight:Type,Subtitle:Location
5. Click Save.
6. Click Back to List.
7. Repeat Steps 1-6 for Opportunity_Note and Opportunity_Task using the values below:
• Name: Opportunity_Note
• Detail Fields: Body
• Parent Object Name: Opportunity
• Has Owner: checked
• Story Object Lookup Field: ParentId
• Story Object Name: Note
• Story Object Sort Field: LastModifiedDate
• Summary Fields: Title:Title
• Name: Opportunity_Task
• Detail Fields: Description
• Parent Object Name: Opportunity
• Has Owner: checked
• Story Object Lookup Field: WhatId
• Story Object Name: Task
• Story Object Sort Field: ActivityDate
• Summary Fields: Title:Subject,Title_Highlight:Status,Subtitle:Priority,Type:Type
Parent Object
Story Object
Reference Object
Object Id
Junction Object
Card Details
Title:
Title_Highlight:
Subtitle:
Detail Fields The field displayed at the bottom of the card, under the title Description
and subtitles. Can accommodate long text fields.
Body
Navigation Contains a URL. If this field is not null, clicking on the story ResumeLink__c
card launches the URL.
Field
Name
• Event
• Policy
• Non-Held Policy
• Claim
• Campaign
• Opportunity
• Cases
• Orders
See Also
What's Next
Configure your customer story configuration settings. See Configure the Objects Displayed in a Customer
Story.
TIP
If person accounts are enabled, and you want to add a story object to a person account,
add a new story object as if Contact were the Parent Object. For Parent Object Name,
enter Account. For Parent Object Field, enter PersonContactId.
6. Click Save.
What's Next
Add the new object to the story-slds card layout. See Add a New Object to the Story-SLDS Component.
NOTE
Beginning with Vlocity Health and Insurance Summer '19, select Version 3 for an
LWC enabled story-slds. For an Angular story-slds component, select Version 2.
b. If active, unselect Activate in the Layout pane to deactivate the card layout.
c. From the Cards pane, select an active story object card, and unselect Activate to deactivate the
card.
d. From the Layout pane, click Activate to actiavte the card layout.
NOTE
Beginning with Vlocity Health and Insurance Summer '19, select Version 3 for an LWC
enabled story-slds. For an Angular story-slds component, select Version 2.
3. In the Data Source, in the Input Map section, update the value of the pageSize parameter.
4. Click Activate.
To modify the icon for a particular object type, you can update its associated LWC template. See Extending
a Template to Create a Custom LWC Card State Template.
If using the Angular story-slds (Version 2) card layout, see Creating a Template with the Template Designer.
The Vlocity Customer Story displays a timeline of all interactions with the customer in a single,
chronological feed. See Vlocity Customer Story.
Vlocity Actions
Vlocity Actions are automatically generated URLS that launch Vlocity OmniScripts, Vlocity Cards
components, web pages, or external applications. Actions are typically specific to a given object type, such
as Account, Contact, Policy, or Asset.
The Vlocity Action API returns the actions associated with an object. The icons, links, and display text
enable users to invoke the action from the object context. See Using Actions with Cards.
NOTE
If a field is missing, confirm that the field is available in the Vlocity Action Layout
page layout for the Vlocity Action object.
To add values to the Applicable Type picklist, use the API name of the object, such as
Household__c. The value can be an sObject name or any string. If the action has a Filter, the
Applicable Type must be the sObject name, such as Policy__c, which is used in an SOQL
query.
Applicable User Profile To choose what action to display for a user profile, select an option from the list. Default value is
All. An admin can add other user profiles to the picklist. For example, if the current login user's
profile is Vlocity Health, only the actions where Applicable User Profile is set to All or
Vlocity Health displays.
Active To make the action visible, check this option.
Display Label Required. Enter a visible label for the action.
Display Sequence Required. Enter the sequence in which the action displays on a sub-tab or component. Lowest
number in the sequence displays first.
Display On Required. To filter where the action displays, select All, Web Client, or Mobile from the list.
Upload a custom icon as an attachment from the Related tab. The latest attached image loaded
(with a size less than 50 KB) is used as the custom image. If both the Vlocity icon and the
custom icon (attachment) are set, the custom icon is used. When the custom icon is not
uploaded, the Vlocity icon is used.
Open URL In To set how to open the Target URL, select Current Window or New Tab/Window. Default is
Current Window.
Link Type Required. To specify where the action is launched from, select one of these options:
NOTE
An error message displays when you delete a seed action. A user cannot
delete a seed action or clear the Is Seed Action checkbox, but can set
as inactive.
/apex/TestPolicyOmniPage?id={0}#/OmniScriptType/Policy/
OmniScriptSubType/Auto/OmniScriptLang/English/ContextId/{0}/
PrefillDataRaptorBundle/true.
IMPORTANT
For out-of-the-box Vlocity Actions, such as View Record, the Target
URL/{0} does not work outside of Salesforce Classic. To navigate to a
page in Salesforce Lightning Experience, update the URL to /
lightning/r/[ObjectName]/{0}/view, where ObjectName is the
API name of the sObject such as Account.
The {0} in the target URL represents the indexed position of a parameter in the list of
parameters in the URL Parameter field. See the URL Parameter field description.
To navigate to a Lightning or Lightning Community Page, prefix the relative URL with
ltngpage:. For example, ltngpage:/Home redirects to your community home page.
To open a Visualforce page from Salesforce's Lightning container, prefix the relative URL with
ltng. For example, ltng:/apex/CustomVFPage, redirects to the CustomVFPage.
• /apex/NameSpace__OmniScriptUniversalPageConsole?
id={0}&OmniScriptType=VPL&OmniScriptSubType=GetPolicyAccountAgentDet
ails&OmniScriptLang=English&scriptMode=vertical&layout=lightning&Con
textId={0}&InteractionId={1}&Role={2}
• /apex/NameSpace__OmniScriptUniversalPageWHeader?id={0}#/
OmniScriptType/Policy/OmniScriptSubType/Auto/OmniScriptLang/English/
ContextId/{0}/PrefillDataRaptorBundle/true
• /apex/NameSpace__ConsoleCards?id={0}&layout=lex-layout
• /apex/NameSpace__ConsoleCards?id={0}&layout=Sample-
GetObjectFromInteraction
See Target URL and URL Parameters.
This example specifies that the action shows only for active Policies where policy type is 'Auto'.
The filter condition is applicable for valid Salesforce standard and custom objects. Filter by any
field on the object. Maximum length is 255 characters.
Additional Filter Enter a filter longer than 255 characters.
State Model For contracts, specify the Contract State Model that defines the contract life cycle associated
with this action. See Defining Vlocity Actions for Contracts.
To State For contracts, specify the state associated with this action. See Configuring the Contract State
Model.
Invocation Class Name Enter Apex invocation class name and method name. The class must implement
VlocityOpenInterface/VlocityOpenInterface2. See Vlocity Interfaces and
Invocation Method Name Implementations.
Validation Class Name Enter validation class name and method name. The class must implement
VlocityOpenInterface/VlocityOpenInterface2. It is used in the Contract Document
Validation Method Name Management UI Action tool bar to display a warning message. See Vlocity Interfaces and
Implementations.
4. Click Save.
4. Click Save.
5. Repeat steps 1 through 4 for the Check Out to Customize and Check Out to Customize Console
actions.
IMPORTANT
For out-of-the-box Vlocity Actions, such as View Record, the Target URL/{0} does not
work outside of Salesforce Classic. To navigate to a page in Salesforce Lightning
Experience, update the URL to /lightning/r/[ObjectName]/{0}/view, where
ObjectName is the API name of the sObject such as Account.
• OmniScriptUniversalPage
• OmniScriptUniversalPageWHeader
• OmniScriptUniversalPageWHeaderSidebar.
• OmniScriptUniversalMobilePage (for use with Mobile only)
• OmniScriptUniveralPageConsole (for use in the Industry Console)
• OmniScriptUniversalCommunitiesPage (for use in Communities)
/apexNS__[PageName]?id={0}#/OmniScriptType/AAA1/OmniScriptSubType/AAA2/
OmniScriptLang/AAA3/layout/[LayoutName]/ContextId/{0}/PrefillDataRaptorBundle/
[BundleName]/[verticalMode]
/apex/NS__[PageName]?id={0}#/layout=[LayoutName]
https://www.domainName.com/?id={0}/
/apexNS__[PageName]?
id={0}&OmniScriptType=AAA1&OmniScriptSubType=AAA2&OmniScriptLang=AAA3&layout=[L
ayoutName]]&PrefillDataRaptorBundle=[BundleName]&scriptMode=[verticalMode]
/apex/NS__[PageName]?id={0}&layout=[LayoutName]
https://www.domainName.com/?id={0}/
NOTE
While both URL patterns are valid, the advantage of the alternative pattern is that it is
mobile-friendly and enables adding additional URL parameters directly into the OmniScript
Data JSON. For example, appending &customerSLALevel=gold to the URL would add a
node to the root of the OmniScript Data JSON, such as "customerSLALevel":"gold".
URL Parameters
In a Target URL, the {0} represents the indexed position of a parameter in the list of parameters in the URL
Parameter field. The parameter is the field API name in the applicable object, such as AccountId, or ID in
Contact.
Specify the parameters as a comma-delimited string, in the sequence in which you want to replace the
parameters in the Target URL. For example, AccountId,vlocity_ins__PrimaryContactId__c, replaces {0}
in the Target URL with the AccountId, and replaces {1} in the Target URL with the
vlocity_ins__PrimaryContactId__c.
You can also use attributes from the User object, such as User.ContactId to get the Id of the current user.
NOTE
Beginning with CME Fall '18, Vlocity supports the Salesforce object edit URL format of /{3
character sobject prefix}/e'.
/apex/vlocity_ins__OmniScriptUniversalPage?
id={0}&OmniScriptType=AppointmentApplication&OmniScriptSubType=IndependentAgent
AppointmentApplication&OmniScriptLang=English&layout=lightning
/apex/NameSpace__ConsoleCards?id={0}&layout=lex-layout
• To use relative URLs in the Lightning Console (LEX), prefix the Target URL with ltng:, and make sure
the Open URL in value is set to New Tab / Window so that the relative URL link will open in a new
window. For example, ltng:/apex/NewLandingPage, will open the New Landing Page in a new
window.
• To redirect to a Lightning or Lightning Community Page, prefix the relative URL with ltngpage:. For
example, ltngpage:/Home will redirect to your community home page.
• To open a Visualforce page from Salesforce's Lightning container, prefix the relative URL with ltng:. For
example, ltng:/apex/CustomVFPage, will redirect to the CustomVFPage.
NOTE
Because Lightning web components, such as LWC Cards and LWC OmniScripts, are not
URL addressable, you can only Angular Vlocity Cards and Angular Vlocity OmniScripts
from the toolbar.
1. In your org, open a record page, such as an Account, click the Set Up icon, and click Edit Page.
2. From the Lightning components pane, drag the Vlocity Action Toolbar component from the list of
Custom - Managed components onto the canvas area where you want your toolbar to display.
3. To update properties in the Properties Pane, see Configure the Vlocity Action Toolbar.
1. In your org, go to Service Setup > All Communities and click Builder next to the name of an existing
Community to open the Community Builder.
2. Click the blue and white lightning bolt icon on the left to open the Components pane.
3. From the list of Custom Components in the Components pane, drag the Vlocity Action Toolbar to
the canvas area where you want your toolbar to display.
4. To update properties in the Properties Pane, see Configure the Vlocity Actions Toolbar on this page.
Property Description
Record Id To enable the toolbar to automatically use the recordId of the record page it's on, leave empty. To display actions
associated with a specific record Id, enter a record Id.
Style Select a horizontal or vertical layout. Default is horizontal.
Object Type Select the objects whose actions have specific Applicable Types. Applicable Types determine the objects from
which you want the action to launch. See Vlocity Actions. For example, enter Account,Policy_c to display
Vlocity Actions that can only launch from an Account or Policy record page. Default is Home.
Display On To limit to Vlocity Actions that only display on specific platforms. Select from one of these options:
Option Description
All For actions that display on both web client and mobile.
Web Client Default. Actions display only on the salesforce web client.
Mobile For actions that display online on the mobile app.
Link Type To specify where the action is launched from, enter a comma-separated list without spaces. For example, to
display actions that launch OmniScripts and specific URLs, enter Other,OmniScript.
Type Description
CommunityURL Launches a Salesforce Community page.
OmniScript Launches an OmniScript.
Other Launches a specific URL.
ConsoleCards Launches a Salesforce Classic card.
LEXConsoleCards Launches a Lightning Experience Console card in a sub-tab.
Document Launches a Contracts Document.
Layout Launches a Card Layout page.
Community If Link Type is CommunityURL, enter the name of the Community page you created to display OmniScripts.
Page
Vlocity Conversation UI
Vlocity Conversation UI combines the familiar experience of online chat, with the robust transactional
capabilities of Vlocity’s Industry Cloud solutions. Now consumers, channel partners, and employees alike
can get work done, including account inquiries, orders, quotes, and claims, as easily as texting back and
forth with an agent. With the Conversation UI, Vlocity bridges the power of artificial intelligence and natural
language processing with an easy to use interface.
The Vlocity Conversation UI also reduces the sometimes tedious interaction patterns of many chatbots
through the integration of simple microforms, called Vlocity OmniForms. Vlocity OmniForms uses a reduced
set of design tools in Vlocity OmniScript, providing only essential input functions to minimize download size.
Vlocity OmniForm can be used to simplify structured user input and to present card-styled output in the chat
window.
The Vlocity Conversation UI is based on Vlocity Integration Procedures, a configurable transaction engine
that orchestrates natural language processors (NLP) with Vlocity’s application engines. A Vlocity Integration
Procedure is used to pass the customer’s text input to an NLP service, such as IBM Watson or Salesforce
Einstein, and then process the intent using Vlocity services. Services supported via Integration Procedures
include product configuration, policy rating, Vlocity DataRaptor functions, REST and SOAP call-outs, and
many more.
• Watson:context - Access context variables under this node level in your Integration Procedure. For
more information on context variables, see Setting up IBM's Watson Assistant.
• Watson:output - This node contains text that displays to the user through Conversation UI.
2. To connect to the Watson endpoint. Add an HTTP Action to the Script Structure and configuring its
settings as follows:
• Element Name: Watson
• HTTP Path: Your Watson Assistant workspace's relative URL (see the image below for
reference)
• HTTP Method: POST
• Named Credential: Your named credential
• Under Rest Options, add these two headers:
• Accept : application/json
• Content-Type: application/json
Example image:
After configuring the HTTP action, start Configuring an OmniForm Action for the Conversation UI.
1. In the Integration Procedure that connects to Watson, add an OmniForm Action after the HTTP
Action.
2. Map the Type and SubType, and Language of the OmniForm to the OmniForm Action's Type and
SubType fields. For more information see, Configuring an Integration Procedure for the Conversation
UI.
Example image:
3. To control when the OmniForm renders to the user, enter one of your Watson Assistant Dialog's
context variables into the Execution Conditional Formula.
Example image:
4. (Optional) To prefill the OmniForm with data, map an Integration Procedure's Type and SubType to
your OmniForm Action's Pre IP field. For more information on how to use the Pre IP field, see Prefilling
an OmniForm with an Integration Procedure.
5. (Optional) To load data from the OmniForm to Salesforce, map an Integration Procedure's Type and
SubType to your OmniForm Action's Post IP field. For more information on how to use the Post IP
field, see Submitting OmniForm Data with an Integration Procedure.
After Configuring an OmniForm Action for the Conversation UI, begin Handling Watson Data using the
Response Action.
• Use Vlocity ChatBot lightning component, allowing you to launch a Conversation UI directly in your
lightning page.
• Use a combination of the Vlocity ChatBot Input lightning component and the Vlocity ChatBot Utility
lightning component to launch Conversation UI from the utility bar.
• Configure a custom Visualforce page to host the Conversation UI. For more information on how to build a
custom Visualforce page, see Creating a custom Visualforce page for the Conversation UI.
1. From Lightning App Builder, select the Page that you want to edit.
2. From the Lightning components section, drag the Vlocity ChatBot component into your page.
3. Under BOT Name, select the Type and SubType that correlate to the Conversation UI's Integration
Procedure.
4. Name your Context URL Parameter. This parameter passes the record Id of the page into the
Conversation UI's Integration Procedure data JSON. Using the context URL parameter in OmniForm's
Pre IP or Post IP enables you to extract and post data. For more information on OmniForm, see
OmniForm.
5. Under Height(px), specify a height in px.
6. (Optional) Under Custom Visualforce Page, select a custom Visualforce page. For more
information on custom Visualforce pages, see Creating a custom Visualforce page for the
Conversation UI.
7. Click Save.
Example image:
1. From Lightning App Builder, select the Page that you want to edit.
2. From the Lightning components section, drag the Vlocity ChatBot Input component into your page.
3. Under BOT Name, select the Type and SubType of your Vlocity Conversation UI's Integration
Procedure.
4. Enter Placeholder Text to display in the component.
5. (Optional) Under Custom Visualforce Page, select a custom Visualforce page. For more information
on custom Visualforce pages, see Creating a custom Visualforce page for the Conversation UI.
6. Click Save.
Example image:
After configuring the Vlocity Chabot Input component, start Configuring the Vlocity ChatBot Utility
Component.
1. From App Manager, select the Lightning Console App that you want to edit.
2. Under App Settings, click Utility Bar, then click Add.
3. From the Lightning components section, drag the Vlocity ChatBot Utility component into your page.
4. In the Vlocity ChatBot Utility component, enter a Label.
5. Select an SLDS icon.
6. Set the Panel Width. The recommended width is 800 px.
7. Set the Panel Height. The recommended height is 700 px.
8. Check the box next to Load in background when app opens.
9. Click Save. The following figure shows a valid configuration:
1. Go to Setup, and, below Develop, choose Visualforce Pages, and click New.
2. Copy the Conversation UI Visualforce code below, paste it into your Visualforce page, and click
Save.
</script>
</div>
<c:VFActionFunction />
</apex:page>
3. (Optional) Parameters can be appended to the Visualforce page URL when calling the Visualforce
page as a standalone page. The two parameters are:
• botName: Passes in the Type and SubType of the Integration Procedure. The syntax is: /apex/
customVFPage?botName=Type_SubType
• mode: Changes the UI styling when the parameter is set to console. The syntax is: /apex/
customVFPage?botName=Type_SubType&mode=console.
Example image:
• Use the HTMLTemplateId property in the OmniScript designer to map individual elements to custom
templates. For more information on the HTMLTemplateId property, see Using Custom Templates.
• Use the elementTypeToHTMLTemplateMapping property located in the OmniScript designer's Script
Configuration section to map templates to all elements of a specific type. .
• Create a lightning component by copying the VlocityChatBot component code. Update the
elementTypeToHTMLTemplateMapping attribute to map element types to any custom templates that
have been created in the Vlocity Template Designer. To update the attribute, perform the following steps:
2. Set the attribute equal to an object that maps element types to custom HTML templates. For
example, the following code would map the customText.html template to all of the text elements
displayed in the OmniForm:
elementTypeToHTMLTemplateMapping =
"{'Text':'customText.html'}"
3. Create a custom Visualforce page following the steps outlined in Creating a custom Visualforce page
for the Conversation UI.
4. Update the Visualforce page, replacing the VlocityChatBotComponent name with the name of the
lightning component you created. The line to update appears in the code as:
<c:VlocityChatBotComponent />
NOTE
If two or more styles map to the same element one will overwrite the other with priority
being based upon the order the options appear in this article.
background-image: url('directory/user.png');
4. Create a zip file that contains the CustomStyle.css file and any number of images.
5. Upload the zip file into Salesforce as a static resource with the name CustomStyle.
6. Return to the custom Visualforce page and update the page to include the following line:
<apex:stylesheet value="{!URLFOR($Resource.CustomStyle,
'CustomStyle.css')}"/>
OmniForm
OmniForm is an omnichannel tool that enables you to build single-step, dynamic customer interactions.
OmniForm uses a subset of OmniScript elements to accept user input, enabling customers to complete
tasks such as making a payment or updating their billing information. For information about OmniScript
elements, see Common Action Element Properties. Before using OmniForm, familiarize yourself with
OmniScript. For more information on OmniScript, see Getting Started with OmniScript.
The reduced size of OmniForm enables you to integrate OmniForm with the Vlocity Conversation UI and
the Transaction Component. For more information, see Vlocity Conversation UI and Configuring and Using
the Transaction Component.
c. In the code, replace NS with the Namespace of the installed package, and click Save. For more
information on the package namespace, see Viewing the Namespace and Version of the Vlocity
Package.
2. Create and activate a single step OmniScript:
a. Go to the Vlocity OmniScript Designer tab, and click New.
b. Create an OmniScript with a single Step element that contains OmniForm Elements.
<vlc-omni-form omni-input=myOmniInput><vlc-omni-form>
5. Click Save, and preview your changes.
To run additional methods after data is returned from an OmniScript, you can set a watch on the output to
determine if the form has been submitted or canceled. For information on watches, see $watchCollection.
• submit: submit has been clicked and the subsequent remote action has completed
• submitting: submit has been clicked
• cancel: cancel has been clicked and the subsequent remote action has completed
• cancelling: cancel has been clicked
The cancel-params attribute accepts an object containing the following two fields:
• extraInput: Accepts custom data that is then passed to the Integration Procedure specfied by inputIP
• inputIP: Accepts an Integration Procedure’s Type and Subtype with the following syntax:
Type_SubType
1. Create an Integration Procedure containing actions you want to run after the OmniForm has been
canceled.
2. Create a variable, add the appropriate values, and map it to your cancel-params attribute.
}
<vlc-omni-form cancel-params=myCancelParams ><vlc-omni-form>
Prefilling an OmniForm
To prefill, or populate, an OmniForm with data, use an Integration Procedure in the OmniForm before the
Step renders. If you are Creating a Standalone OmniForm, use an Integration Procedure, the prefill-input
attribute, or seed the data JSON.
1. Create an Integration Procedure that is separate from the one containing your OmniForm Action.
2. Add a Set Values action and map its values to your OmniForm's elements. For more information on
the Set Values action, see Set Values in an OmniScript.
3. Enter response into the Set Values Response JSON Node.
1. Go to the OmniScript you used to generate the OmniForm's JSON. For more information on generating
the OmniForm's JSON, see Creating a Standalone OmniForm.
2. In the Script Configuration properties panel, click Seed Data JSON and add a new key/value pair.
3. Under Debug Log, find the OmniInput JSON node and set your cursor to the right of the colon.
Highlight the text from the cursor's current position to the node's closing bracket. To see an example of
the text you need to select, click the thumbnail below.
4. Return to the Visualforce page that hosts your OmniForm JSON, and click Edit.
5. Locate $scope.omniinput, and paste your code to the right of the equals sign.
6. Click Save, and preview the page.
For more information on Seeding Data JSON, see Seed Data Into an OmniScript.
var customprefill = {
"Text1" : "Prefill input attribute"
};
<vlc-omni-form prefill-input=customprefill ><vlc-omni-form>
2. Set the prefill-input attribute equal to the variable from the previous step.
1. Create an additional Integration Procedure, separate from the one containing your OmniForm Action.
2. Add actions to the Integration Procedure to handle your data. For more information on actions, see
Integration Procedure Actions.
• extraInput: Accepts custom data that is then passed to the Integration Procedure specfied by inputIP
• inputIP: Accepts an Integration Procedure’s Type and SubType with the following syntax:
Type_SubType
OmniForm Buttons
This page contains a table describing the available OmniForm buttons.
Button Description
Submit Clicking submit, without vlcOmniFormClose being set to true, converts the OmniForm's display into a two column, read-only
view.
Cancel Clicking cancel, without vlcOmniFormClose being set to true, converts the OmniForm’s display to a read-only view.
Reset The reset button becomes visible when cancel or submit has been clicked and, when clicked, reverts the OmniForm into an
editable state.
To customize these buttons, see Customizing OmniForm using Data JSON Attributes and Customizing an
OmniForm using the OmniForm Directive.
OmniForm Elements
The following table lists the OmniScript elements that can be used in OmniForms. OmniForm must be built
using a single Step element that contains a combination of Display and Input elements.
The Vlocity Interaction Launcher opens when you click its label in the Utility Bar of a Console. The Vlocity
Interaction Launcher enables an agent to launch a search that starts the customer interaction. Call service
agents use the Interaction Launcher to search and verify the identity of a caller. The console displays only
the data and transactions that the caller is permitted to see. The Interaction Launcher supports LEX
console navigation to primary tabs or sub-tabs.
• A class-based Interaction Launcher uses an Apex class to retrieve a search request and search
response.
• A object-based Interaction Launcher uses the fields specified in the setup to query.
• A Omniscript-based Interaction Launcher uses an Omniscript to launch an interaction flow.
From the Vlocity Interaction Launcher tab, you can create, edit, and activate the widgets that are displayed
on your Interaction Launcher. To display details about an Interaction Launcher, click its name.
search to verify the information for the primary contact of an account. Once verified, the customer agent
launches the interaction console tab to see a 360-degree view of that contact's interaction history, access
all available actions, take notes about the interaction, and complete, cancel, or resume the interaction. See
Accessing Actions and Manage Interactions with the Vlocity Interaction Wrapper.
NOTE
To configure the VerifyAction that launches the Interaction Creation DataRaptor, see
Verifying Caller Identity Using the Verify Action.
10. To determine the minimum number of fields to verify from a list of optional verification fields, enter a
number in the Min # of Optional Verification Fields input field.
NOTE
If this is a class based widget, the optional verification fields are set in the class. If this
is an object based widget, see the Optional Verification Fields property on this page.
• In the Invoke Class Name field, enter the name of the Apex class, such as
GetMockupRequestSearchResults. See Create a Class-based Interaction Launcher.
1. In the Type dropdown field, select the layout for the search results:
• Related Party: To display a three-column layout where Party Name is listed in the first column,
Source Role is listed in the second column and action buttons, such as Verify, are listed in the third
column, select this option.
• Caller Identification: To display a two-column layout where search results fields are listed in the first
column and action buttons, such as Verify, are listed in the second column, select this option.
2. In the Search Object Name field, enter the name of the object to search. For example, Asset,
Contact, or %NS%__PolicyPartyRelationship__c, where %NS% is dynamically replaced with
your Vlocity namespace prefix.
3. In the Search Field, enter the data fields necessary to perform the search. Separate multiple entries
by a comma. Make sure there are no spaces between the entries. For example,
FirstName,LastName,%NS%__ProducerNumber__c.
4. In the Results Fields, enter the fields to display in the search result. Separate multiple entries by a
comma. Make sure there are no spaces between the entries.
NOTE
The search results page paginates when more than ten results are returned.
5. In the Result Verification Fields, enter the fields to verify before the interaction continues. Separate
multiple entries by a comma. Make sure there are no spaces between the entries.
6. To filter out duplicate entries, in the Result Unique Field, enter the name of the object to use as a
filter.
For example, a search for an asset party relationship based on a party name might return duplicates
because the same party has many relationships to the same policy with different roles. However,
entering Asset.AccountId in the Result Unique Field returns search results with distinct policy
holder IDs.
7. If this search widget is a secondary search, enter the Previous Search Context Id Field of the
previous search widget, such as %NS%_AccountId.
8. To return hidden fields queried from the search object, enter field names in the Additional Result
Fields input field. Use these hidden search fields to pass information down to the interaction object.
Separate multiple entries by a comma. Make sure there are no spaces between the entries.
9. To filter search results, in the Filter input field, enter a formula where a field is checked against a value
by an operator. For example, %NS%__Role__c!='Carrier'.
10. To launch role-based actions, enter the name of an object in the Reference Object Name field.
For example, enter Asset for a Policy search. If the policy is not related to any party, a set of role-
based actions display. The reference object gets a list of role-based actions and passes the policy Id to
the actions.
11. Enter additional verification fields in the Optional Verification Fields input field. Separate multiple
entries by a comma. Make sure there are no spaces between the entries. This property works with the
Min # of Optional Verification Fields property.
For example, if there are two optional verification fields such as Name,Email, and the minimum
number of optional verification fields is 1, then the customer interaction agent needs to verify Name or
Email, not both.
12. (Optional) To update the layout of the Interaction Launcher component, see Update the Layout of an
Interaction Launcher.
What's Next
To add your Interaction Launcher to a Console app, see Add the Vlocity Interaction Launcher to a Console
App.
See Also
• Set Up the Vlocity Interaction Console
• Verify Caller Identity in an Interaction Launcher
• Configure a Secondary Search in an Interaction Launcher
• Add a Vlocity Action to an Interaction Launcher Search Widget
1. In your org, go to Setup > App Manager > Vlocity Interaction Console > down arrow > Edit to open the
console app.
NOTE
If you do not see the Vlocity Interaction Console in the App Manager, see Set Up the
Vlocity Interaction Console.
Tabbed widgets.
Stacked widgets.
• Enable Scratchpad: To enable or disable the ability to take notes in the Verify Caller window, select
this checkbox.
See Also
Add the Vlocity Interaction Launcher to a Console App
1. In your org, go to the Vlocity DataRaptor Designer and click New to create a new DataRaptor Load.
See Create a DataRaptor Load.
2. In the Create: Vlocity DataRaptor Bundle window, configure these properties:
• DataRaptor Bundle Name: In upper camel case, enter a name for the DataRaptor such as
CreateInteractionAccountDr. This name is used in the Interaction Creation Bundle Name
field in your Interaction Launcher widget.
• Interface Type: Select Load.
• Input Type: Select JSON.
• Output Type: Select SObject.
3. In the OBJECTS tab, click the +Add Object button to add an sObject. This is the object record an
Interaction Launcher creates at the end of an interaction. Find and select the
NS__CustomerInteraction__c object. Replace the NS variable with the namespace of the Vlocity
package you are using. For more information on finding the namespace of your package, see Viewing
the Namespace and Version of the Vlocity Package.
4. In the FIELDS tab, click the + link to add a field, from the Interaction Launcher, to populate the object:
• In the Input JSON path, enter recordId. This refers to the object record Id identified and verified in
the Interaction Launcher when the interaction is Object Based. See Create a Vlocity Interaction
Launcher.
• In the Domain Object Field, enter a field from the dropdown. This field is found on the object set in
the Input JSON path. For example, to populate the AccountId, select the NS__AccountId__c
object field.
5. To test your DataRaptor Load, in the PREVIEW tab:
• Enter JSON test data in the Input pane. For example, { "recordId":
"0013i000003eudKAAQ" }. Click the Execute button.
• In the Objects Created pane, a link to a new Customer Interaction record displays. Click on the link
to view the new record.
Before You
1. Confirm that the Vlocity Interaction Launcher Actions component is visible. See View Actions Related to an Interaction Launcher
Search Widget.
2. Create a Vlocity Action to execute from a search widget in the Interaction Launcher. See Vlocity Actions.
1. From the Vlocity Interaction Launcher tab, click an Interaction Launcher search widget to edit.
2. Click Related.
What's Next
Add the Interaction Launcher to a Console app. See Add the Vlocity Interaction Launcher to a Console App.
What's Next
Create a Console app. See Building a Vlocity Service Console App.
See Also
Add the Vlocity Interaction Launcher to a Console App
vlocity_ins.LookupRequest request =
(vlocity_ins.LookupRequest) inputs.get('lookupRequest');
searchFieldList.add('FirstName');
searchFieldList.add('LastName');
newType1.put('label','First Name');
newType1.put('datatype','text');
labelTypeMap.put('FirstName',newType1);
newType2.put('label','Last Name');
newType2.put('datatype','text');
labelTypeMap.put('LastName',newType2);
valueMap.put('FirstName',null);
valueMap.put('LastName',null);
output.put('lookupRequest', request);
4. Construct the vlocity_ins.LookupResult interface (see example code below).
5. Create a Vlocity Interaction Launcher record.
6. Pick Class Based for the entry field Record Type:
List < String > contextIds = (List < String > ) inputs.get('contextIds');
String parentId = (String) inputs.get('parentId');
vlocity_ins.LookupRequest request =
(vlocity_ins.LookupRequest) inputs.get('lookupRequest');
String lastRecordId = request.lastRecordId; // R15 pagination support
Map < String, Object > resultInfo = (Map < String, Object > )
inputs.get('resultInfo');
Integer pageSize = 0; // R15 pagination support
vlocity_ins__InteractionLauncherConfiguration__c myCS =
vlocity_ins__InteractionLauncherConfiguration__c.getInstance('ClassBasedResults
PageSize');
if ((myCS != null) && (myCS.vlocity_ins__IsFeatureOn__c)) {
pageSize =
String.isNotBlank(myCS.vlocity_ins__DisplayMessage__c) ?
Integer.valueOf(myCS.vlocity_ins__DisplayMessage__c) : 10;
}
Boolean hasMore = false;
// End R15 pagination support
List < String > resultFieldList = new List < String > ();
resultFieldList.add('RelatedParty');
resultFieldList.add('Role');
List < String > verificationFieldList = new List < String > ();
verificationFieldList.add('PartyName');
verificationFieldList.add('Address');
List < String > optionalVerificationFieldList = new List < String > ();
optionalVerificationFieldList.add('Role');
optionalVerificationFieldList.add('RelatedParty');
Map < String, Map < String, String >> resultFieldsLabelTypeMap =
new Map < String, Map < String, String >> ();
Map < String, String > newType1 = new Map < String, String > ();
newType1.put('label', 'Related Party');
newType1.put('datatype', 'text');
resultFieldsLabelTypeMap.put('RelatedParty', newType1);
Map < String, String > newType2 = new Map < String, String > ();
newType2.put('label', 'Role');
newType2.put('datatype', 'text');
resultFieldsLabelTypeMap.put('Role', newType2);
Map < String, String > newType3 = new Map < String, String > ();
newType3.put('label', 'Name');
newType3.put('datatype', 'text');
resultFieldsLabelTypeMap.put('PartyName', newType3);
Map < String, String > newType4 = new Map < String, String > ();
newType4.put('label', 'Address');
newType4.put('datatype', 'text');
resultFieldsLabelTypeMap.put('Address', newType4);
Map < String, Object > verificationResult = new Map < String, Object > ();
String uniqueRequestName = (String) resultInfo.get('uniqueRequestName');
String drBundleName = (String) resultInfo.get('drBundleName');
String interactionObjName = (String) resultInfo.get('interactionObjName');
results.add(result);
}
// R15 pagination support
else {
Map < String, Object > resultValueMap = new Map < String, Object > ();
resultValueMap.put('RelatedParty', 'John Smith' + String.valueOf(k));
resultValueMap.put('Role', 'Carrier');
resultValueMap.put('PartyName', 'John Smith' + String.valueOf(k));
resultValueMap.put('Address', '50 Fremont, San Francisco, CA');
String recordId = 'ExternalId' + String.valueOf(k);
vlocity_ins.LookupResult result =
new vlocity_ins.LookupResult(resultFieldsLabelTypeMap, resultFieldList,
resultValueMap, recordId, uniqueRequestName, request,
verificationResult, verificationFieldList, drBundleName,
interactionObjName);
result.setOptionalVerificationFieldList(optionalVerificationFieldList);
results.add(result);
}
}
if ((pageSize > 0) && (results.size() > pageSize)) {
Integer startIndex = 0;
if (String.isNotBlank(lastRecordId)) {
if (results[i].recordId == lastRecordId) {
startIndex = i + 1;
}
}
}
Integer j = 0;
for (j = startIndex;
(j < results.size()) && (j < startIndex + pageSize); j++) {
resultSubset.add(results[j]);
}
if (j < results.size()) {
hasMore = true;
}
output.put('lookupResults', resultSubset);
if (hasMore) {
output.put('hasMore', hasMore);
}
// End R15 pagination support
}
else {
// Logger.db('GetExternalSearchRequestResults
// LookupResult is
// '+JSON.serializePretty(results));
output.put('lookupResults', results);
}
Required Versions
Available beginning with the Vlocity Insurance and Health Winter '19.
1. In your org, go to the Vlocity OmniScript Designer tab, and click to open the Interaction Launcher
OmniScript included in your Interaction Launcher Datapack. For example, AccountSearch.
2. Click Create Version.
3. With Script Configuration selected, in the Properties panel, leave Type as Interaction Launcher.
4. Update the SubType with a name that includes the name of the sObject, such as ContactSearch.
5. In the first OmniScript Step, update the search fields as needed. For example, if your new OmniScript
does a search for Cases, add case related fields, and update the Step name. See OmniScript Element
Reference.
6. Update the data source by changing the DataRaptor Interface name. See DataRaptor Extract Action.
7. (Optional) Customize additional elements and script configurations as needed.
8. Click Save.
9. Click Activate.
What's Next
Add your OmniScrupt-based Interaction Launcher to the Utility Bar of your Console app. See Add the
Vlocity Interaction Launcher to a Console App.
See Also
• Set Up the Vlocity Interaction Console
• Update the Layout of an Interaction Launcher
• Verify Caller Identity in an Interaction Launcher
6. After the file is saved, go to the Vlocity DataPacks tab and click Installed.
7. Click Import From and select From File.
8. Select the JSON file you saved and import the file in the Select File modal window. Alternatively, you
can drag and drop the DataPack JSON file onto the Select File modal window.
9. To activate the imported components, click Select All in the Select Items to Import modal window,
then click Next.
10. Review your selections in the Review Items to Import window, then click Next.
11. Activate your DataPack by clicking Activate Now. When prompted, click Next.
When activation completes, the following message is displayed.
Download and Install the Verify Action from the Interaction Launcher Sample
DataPack
• If not installed, download and install the Interaction Launcher sample datapack to install the Verify
Vlocity Action. See Download and Install an Interaction Launcher DataPack.
1. Clone the existing Verify action from the Interaction Launcher sample datapack.
a. Download and install the Verify action if it's not yet installed. See Download and Install an
Interaction Launcher DataPack.
b. Go to the Vlocity Actions tab in your org and click to open the Verify action.
c. Click Clone from the down arrow in the submenu.
d. Update Vlocity Actions Name.
e. Confirm that the Invocation Class Name is one from the table on this page.
f. Configure additional fields as needed. See Configure a Vlocity Action.
IMPORTANT
Link Type must be set to Verification.
g. Click Save.
2. Add the action to your search widget. See Add a Vlocity Action to an Interaction Launcher Search
Widget.
1. From Setup in Lightning Experience, enter Apps in the Quick Find box, then select App Manager.
2. Click the dropdown next to the console app that to add Vlocity interaction launcher, and click Edit.
3. Under the Utility Items, click Add Utility Item.
4. To add a class-based or object-based Interaction Launcher, select Vlocity Interaction Launcher.
5. To add an OmniScript-based Interaction Launcher:
a. Select the Vlocity Ins OmniScript Interaction Launcher.
NOTE
To create an OmniScript-based Interaction Launcher, see Create an OmniScript-
Based Interaction Launcher.
6. (Optional) To update the layout of your Interaction Launcher by configuring options, such as updating
the icon or enabling the scratchpad, see Update the Layout of an Interaction Launcher.
7. Click Save.
8. Click Done.
Required Versions
Available beginning with Vlocity Insurance and Health Winter '20 and Vlocity CME Winter '20.
1. In your org, from the Setup menu on a record page, such as a Customer Interaction, select Edit Page.
NOTE
If you add an Interaction Wrapper to an Account or Contact page, the Interaction
Wrapper creates a Customer Interaction record through the Create Interaction
Integration Procedure.
2. From the Lightning Components pane, find the Vlocity Interaction Wrapper component from the list
of Custom - Managed components and drag it to page canvas.
3. Click Save.
• On a customer interaction record page, click in the search field of the Vlocity Interaction Wrapper
component, and from the list of actions, select an action to perform.
1. On a customer interaction record page, click the red phone icon next to the search field.
2. To add a summary of the interaction, enter text in the Summary (optional) field.
3. In the Tasks Performed column, view the list of tracking events submitted during the interaction and
organized by object. See Cards Framework Event Tracking. To refresh the tracked events, click the
arrow button next to the Tasks Performed label.
Initial Search
Secondary Search
The initial search widget, called Account Name, does a search for an Account name and returns records
that match the name. If the representative finds the account, the representative then launches the second
search widget, called Account Information.
1. Go to the Vlocity Interaction Launcher tab in your org and click to open an initial search widget to use
as the widget that precedes the secondary search widget. Such as in the example on this page, if your
secondary widget is Account Information, open the Account Name widget.
2. To indicate that this widget has a secondary search, select the Continue Search.
3. Go to the Vlocity Interaction Launcher tab and open the widget that follows your initial search from
Step 1 and 2. Such as in the example on this page, if your initial search widget is Account Name,
open the Account Information widget.
4. In the Previous Search Widget Name field, enter the name of the initial search widget.
5. To provide the context for the secondary search, enter its ContextId in the Previous Search Context
Id Field. For example, enter %NS%__AccountId__c if your previous search widget's object is an
Account, such as in the Example on this page.
1. From the Vlocity Interaction Launcher tab in your org, click a search widget to open.
2. Click the Related tab next to the Details tab.
NOTE
If you do not see a Related tab, see Add and Customize Tabs on Lightning Pages
Using the Lightning App Builder.
3. If a Vlocity Interaction Launcher Actions list does not exist, click Edit Page from the Setup menu.
What's Next
Add Vlocity Actions to an Interaction Launcher search widget. See Add a Vlocity Action to an Interaction
Launcher Search Widget.
Vlocity Data Tools enable you to read, write, transform, calculate, and track data in your org.
DataRaptors
A DataRaptor is a mapping tool that enables you to read, transform, and write Salesforce data. There are
four types of DataRaptor: Turbo Extract, Extract, Transform, and Load.
• Turbo Extract: Read data from a single Salesforce object type, with support for fields from related
objects. Then select the fields to include. Formulas and complex field mappings aren’t supported. See
DataRaptor Turbo Extract Overview.
• Extract: Read data from Salesforce objects and output JSON or XML with complex field mappings.
Formulas are supported. See DataRaptor Extract Overview.
• Transform: Perform intermediate data transformations without reading from or writing to Salesforce.
Formulas are supported. See DataRaptor Transform Overview.
• Load: Update Salesforce data from JSON or XML input. Formulas are supported. See DataRaptor Load
Overview.
DataRaptors typically supply data to OmniScripts, Integration Procedures, and Cards, and write updates
from OmniScripts, Integration Procedures, and Cards to Salesforce. A typical data flow is as follows:
Both Extract and Load DataRaptors can handle custom data formats. DataRaptors can access external
objects and custom metadata as well as sObjects. No special syntax or additional configuration is required.
NOTE
If you’re using releases of Vlocity before Winter 2017, download the DataRaptor Summer
'17 Manual.
NOTE
Although Apex classes can read, write, and transform data, they take longer to create and
are harder to maintain than DataRaptors. Therefore, use of DataRaptors is a best practice.
A DataRaptor Turbo Extract has two advantages over a standard DataRaptor Extract:
• Simpler configuration
• Better performance at runtime
1. Go to the DataRaptor Designer tab and click New. The Create DataRaptor Interface dialog is
displayed.
2. Specify configuration settings as follows:
• DataRaptor Interface Name: Descriptive name, displayed on the DataRaptor Designer tab's list of
DataRaptors.
• Interface Type: Turbo Extract
• Input Type: JSON (for OmniScripts), XML, or Custom
• Output Type: JSON (for OmniScripts) or Custom
• Required Permission (Optional): Specifies an optional comma-separated list of Custom
Permission names. To run this DataRaptor, a user must have one of these permissions. If this setting
is blank, any user can run this DataRaptor unless a DefaultRequiredPermission is set.
If specified, this setting overrides the DefaultRequiredPermission setting, which provides a default if
no Required Permissions value is set. See Security for DataRaptors and Integration Procedures.
Custom Permissions for users are defined in Salesforce Profiles or Permission Sets. For Vlocity-
specific information about Profiles, see Overview of Profiles and Security for Vlocity.
• Description: Optional high-level overview of the DataRaptor.
3. Click Save. The designer page is displayed.
1. On the Extract tab, in the topmost field, select the source Salesforce object type, for example, Contact.
2. In the next field, specify the Extract Output Path.
This value is typically the same as the source object name. It specifies the top-level JSON node in the
output.
3. Specify at least one Filter, which determines the data to be read. The item on the left is a field of the
source object type. The item in the middle is a comparison operator. The item on the right can be a
quoted literal value, an input parameter, or another field of the same source object. To filter for null
values, use the $Vlocity.NULL variable.
You can use fields in related objects in filters, such as Parent.Name, but you have to enter them
manually. For details about the notation, see Relationship Notation versus Multiple Extract Steps.
The most basic filter is Id = Id, which sets the Id of the object to an input parameter named Id.
The INCLUDES and EXCLUDES operators apply only to multi-select picklist fields. See Querying
Multi-Select Picklists in Salesforce Help.
Turbo extracts have an operator option no other DataRaptors have: IN. The IN operator lets you match
values to items in an array. For example, if the filter is Name IN Names, and the JSON input is
{"Names": ["Miller", "Torres"]}, records with Miller or Torres in their Name fields are
retrieved. To download a DataPack of this example, click here.
4. Configure optional additional filter settings by clicking the down arrow to the right of the first filter:
• AND - Add another filter and specify that both filters must be true.
• OR - Add another filter and specify that either filter can be true.
• LIMIT - Specify the maximum number of records returned. Allowed values are 1 through 2000.
For more information, see Workaround for offset 2000 limit on SOQL query in the Salesforce
knowledge base.
• OFFSET - Use with LIMIT to specify the first record on a page in a multi-page retrieval. For example,
a LIMIT of 5 requires OFFSET values of 0, 5, 10, and so on.
• ORDER BY - Sort the results by the specified field. To sort by multiple fields, specify a comma-
separated list of field names in order of precedence, for example LastName,FirstName.
You can optionally specify ASC or DESC for an ascending or descending sort. You can optionally
specify NULLS FIRST or NULLS LAST to place blank values at the beginning or end. For example,
you can sort Accounts by the number of employees, listing the companies of unknown size first and
the largest employers last. Specify the ORDER BY value NumberOfEmployees ASC NULLS
FIRST.
5. Select the fields to extract by moving them from the left list to the right list. You can enter a search
value to filter the left list. The Id field is always included in the output.
To select fields in related objects, see the next section.
6. Configure optional additional settings on the Options tab:
• Check Field Level Security: Checks the user's access permissions for the fields before executing
the DataRaptor. Enabling this setting disables the Org Cache but not the Session Cache.
• Time To Live In Minutes: If data caching is enabled, determines how long data remains in the
cache. The minimum value is 5.
• Salesforce Platform Cache Type: Enables data caching. Set to Session Cache for data related to
users and their login sessions, or to Org Cache for all other types of data. See Cache for
DataRaptors and Integration Procedures.
7. To observe the effects of caching when testing the DataRaptor Turbo Extract, go to the Preview tab
and deselect the Ignore Cache checkbox. See Cache for DataRaptors and Integration Procedures.
For more information about relationship names and other relevant topics, see Relationship Queries in
Salesforce Help. DataRaptors support only child-to-parent relationship queries.
When you click the Related Objects dropdown list, relationships to other objects appear, for example:
If you select one of those relationships and click the list again, second-level relationships to other objects
appear, for example:
To back up a level, click the list and select the previous level, for example:
After you’ve selected a relationship with another object, fields in that object appear in the left field-selection
list. You can enter a search value and move the fields to the right list as you would the base object fields.
The Response panel displays the resulting data, and the Debug Log panel displays the results of the
Salesforce queries issued by the DataRaptor.
For example, if the DataRaptor filters Accounts based on an Id, a Key/Value pair like this lets you test the
DataRaptor using a specific Account Id.
8. Go to the Preview tab. If you see an Edit as Params link, click it.
9. Click Add New Key/Value Pair. Specify AccountId as the Key and an Account Id from your org as
the Value.
10. Click Execute. Note that FirstName, LastName, and Id are retrieved for each Contact.
3. Determine whether you need multiple extract steps or relationship notation. See When to Use Multiple
Extract Steps and Relationship Notation versus Multiple Extract Steps.
4. (Optional) Add data using formulas. See Use Formulas in DataRaptors.
5. Compose the output. See Defining the Output of an Extract.
6. Test the DataRaptor. See Test a DataRaptor Extract.
1. Go to the DataRaptor Designer tab and click New. The Create: DataRaptor Interface dialog is
displayed.
2. Specify configuration settings:
• DataRaptor Interface Name: Descriptive name, displayed on the DataRaptor Designer tab's list of
DataRaptors.
• Interface Type: Extract
• Input Type: JSON (for OmniScripts), XML or Custom
• Output Type: JSON (for OmniScripts), XML or Custom
• Required Permission: Specifies an optional comma-separated list of Custom Permission names. To
run this DataRaptor, a user must have one of these permissions. If this setting is blank, any user can
run this DataRaptor unless a DefaultRequiredPermission is set.
If specified, this setting overrides the DefaultRequiredPermission setting, which provides a default if
no Required Permissions value is set. See Security for DataRaptors and Integration Procedures.
Custom Permissions for users are defined in Salesforce Profiles or Permission Sets. For Vlocity-
specific information about Profiles, see Overview of Profiles and Security for Vlocity.
When an Integration Procedure calls a DataRaptor, the Required Permission setting of the
Integration Procedure overrides the Required Permission setting of the DataRaptor.
• Description: Optional high-level overview of the DataRaptor.
3. Click Save. The Extract tab of the designer page is displayed.
What's Next
Define the Initial Extraction
1. Click Add Extract Step and choose the source object from the drop-down list of objects.
2. Configure settings for the source object:
• Extract Output Path: The top-level node in the extraction step JSON where you want the data to
reside.
Best practice: When possible, name the Extract Output Path for the Salesforce object that is its
data source. This defines the first node of the Extract JSON Path field values on the Output tab.
• Filter: The comparison used to determine what data is to be read. The item on the left is a field of
the source object. The item in the middle is a comparison operator. The item on the right can be a
quoted literal value, an input parameter, another field of the same source object, or a field of a
source object in a previous extract step. To filter for null values, use the $Vlocity.NULL variable.
You can use fields in related objects in filters, such as Parent.Name, but you have to enter them
manually. For details about the notation, see Relationship Notation versus Multiple Extract Steps.
The most basic filter is Id = Id, which sets the Id of the object to an input parameter named Id.
The INCLUDES and EXCLUDES operators apply only to multi-select picklist fields. See Querying
Multi-Select Picklists in the Salesforce help.
3. Configure optional additional filter settings by clicking the down arrow to the right of the first filter:
• AND: Add an additional filter and specify that both filters must be true.
• OR: Add an additional filter and specify that either filter can be true.
• LIMIT: Specify the maximum number of records returned. Allowed values are 1 to 2000.
For more information, see Workaround for offset 2000 limit on SOQL query in the Salesforce
knowledge base.
• OFFSET: Use with LIMIT to specify the first record on a page in a multi-page retrieval. For example,
if the LIMIT is 5, the OFFSET values for successive pages would be 0, 5, 10, and so on.
• ORDER BY: Sort the results by the specified field. To sort by multiple fields, specify a comma-
separated list of field names in order of precedence, for example LastName,FirstName.
You can optionally specify ASC or DESC for an ascending or descending sort. You can optionally
specify NULLS FIRST or NULLS LAST to place blank values at the beginning or end. For example,
to sort Accounts by the number of employees, listing the companies of unknown size first and the
largest employers last, specify the ORDER BY value NumberOfEmployees ASC NULLS FIRST.
NOTE
If you need to implement paging logic for your application, you can use the filter
OFFSET setting to specify where record retrieval starts. Choose OFFSET from the
drop-down list and specify the name of a node in the input payload where the caller
maintains the offset. The offset must be an integer. Note that Salesforce imposes a
2000-record limit on queries. For details, see the Salesforce OFFSET documentation.
What's Next
When to Use Multiple Extract Steps
1. Extracting data from a single object type, for example, Cases, requires only one extract step.
2. Extracting data from a primary object and one or more parent objects also requires only one extract
step. An example is extracting Cases with some Account data for each Case. See Relationship
Notation versus Multiple Extract Steps.
3. Extracting data from a primary object and one or more child objects requires at least two extract steps,
one for each object type. An example is extracting an Account and all the Cases associated with that
Account.
For example, to find Cases by Case Number, you can use a filter such as CaseNumber = Number in the
extract step:
The objects are queried in the order that you specify them in extract steps, which is important for the third
scenario, when you need to use data from a previously-read object to filter a subsequent object.
For example, to find all the cases associated with a specific account, you can read the account with a basic
filter such as Id = Id in the first extract step, then read the cases with a filter such as AccountId = Acct:Id in
the second extract step. (The AccountId is a Case field; the Acct:Id is a reference to the Id field of the
Account.)
This data is read into the extraction step JSON, and the Extract Step JSON pane on the right shows the
top-level hierarchy defined by the output paths that you specify on this tab.
By default, if a value is null, no node is created for the field in the output JSON. To ensure that a node is
created, regardless of whether the field is null, go to the Options tab and check Overwrite Target For All
Null Inputs.
What's Next
Relationship Notation versus Multiple Extract Steps
Relationship notation in DataRaptors is based on relationship queries in Salesforce. For more information
about relationship names and other relevant topics, see Relationship Queries in the Salesforce help.
DataRaptors support only child-to-parent relationship queries.
Suppose you want to retrieve Contact data that includes the name of the Account with which the Contact is
associated. (Account is a parent object of Contact.) You can use multiple extract steps or relationship
notation.
To use multiple extract steps, first define extraction steps for Contact and Account objects on the
DataRaptor's Extract tab.
Then define Extract JSON Paths for the Contact and Account fields on the DataRaptor's Output tab.
To use relationship notation, first define an extraction step for the Contact object on the DataRaptor's
Extract tab.
Then Define Extract JSON Paths for the Contact and Account fields on the DataRaptor's Output tab.
To download DataPacks of these examples, click here for the first and here for the second.
Note that the Extract JSON Path for the Name field of the Account object is Account.Name. Account is
the name of the relationship that the Contact object has with the parent Account object. The relationship
name is different from the name of the field that references the parent object, which is AccountId. Most
relationship names for standard objects follow this convention and omit the Id suffix.
If you supply a Contact Id on the Preview tab, you get the same Response for that Contact for both
DataRaptors:
{
"CompanyName": "Acme",
"LastName": "Tomlin",
"FirstName": "Leanne"
}
However, if you look in the Debug Log, you see two SOQL queries for the DataRaptor that uses multiple
extract steps:
SELECT id, accountid, firstname, lastname, name FROM Contact WHERE (Id =
'0031U00000HUob9QAD')
SELECT id, name FROM Account WHERE (Id = '0011U00000KbYZAQA3')
You see only one SOQL query for the DataRaptor that uses relationship notation:
IMPORTANT
Running only one SOQL query per primary object is always noticeably faster than running
two. A DataRaptor performs processing steps for each SOQL query that it runs, and
Salesforce contributes overhead for each SOQL query as well. With one query rather than
two, you have half the overhead.
What's Next
Defining the Output of a DataRaptor Extract
The Current JSON Output pane displays the structure that your output mappings specify.
Best practice: When possible, name the Extract Output Path on the Extract tab for the Salesforce object
that is its data source. This defines the first node of the Extract JSON Path field values.
You can improve DataRaptor performance for some use cases by using relationship notation in the Extract
JSON Path field. See Relationship Notation versus Multiple Extract Steps.
You can also use formulas to add output data. For details, see Use Formulas in DataRaptors and Function
Reference.
TIP
To make mapping a large number of fields easier, paste the data JSON from the calling
OmniScript or Integration Procedure into the Expected JSON Output pane, which
populates the list of paths in the Output JSON Path field.
To bulk-match, click the Quick Match button. In the Quick Match dialog, you can map fields as follows:
• Drag and drop: Drag the source sObject field from the left column to the target output field in the middle
column, or vice-versa. For an output that has no source sObject field, drag the output mapping to the
Matched Mappings column.
• Pair: Select an input field and an output field and click Pair.
• Auto Match: Click Auto Match. Fields with matching names are matched automatically.
To redefine values after they are read from Salesforce, go to the Transform Map Values section and add
key/value pairs that specify the input and output values. For example, to transform an input value of TRUE
to an output value of Y (for yes), specify KEY = TRUE and VALUE = Y.
Null Values
To specify a value to be output when the field is null, set the Default Value property. To override the default
data type, specify Output Data Type. To prevent data loss, choose compatible data types. (For example, if
a text value always contains numeric data, a numeric output type is fine. If it might contain alphabetic
characters, you must choose a textual output data type.
By default, if a value is null, no node is created for the field in the output JSON. To ensure that a node is
created, regardless of whether the field is null, go to the Options tab and check Overwrite Target For All
Null Inputs.
If the DataRaptor Extract retrieves no records, what it returns depends on the release:
Object Attributes
To map object attributes, specify the attribute using its code (not its name) preceded by @. (By default,
attribute codes are assigned a GUID value when the attribute is created, and you can edit the code to
specify a human-readable value.) For example, to find out if an account is tagged as a Gold Star account,
use a DataRaptor Extract to read the Gold Star attribute:
Result:
{
"Id": "0016100001Ey84KAAR",
"GoldStarAccount": "On"
}
By default, an On-Off type attribute returns no output if its value is Off. However, you set the Default Value
property to Off to return either value.
If you need a different output value for an attribute, you can use the Transform Map Values option. For
example, for an On-Off type attribute, you can add key/value pairs that map On to true and Off to false.
Object:JsonField__c:JsonNode:ChildJsonNode
Translations
To configure the DataRaptor to retrieve translated Product data, go to the Options tab and check Use
Translations. When this option is enabled, the DataRaptor returns string translations for the user's locale.
If no string translations are defined for the locale, the product data defined in the base language is returned.
For example, if the base product data is entered in English and no French string translations are defined,
users with a French locale see English product data. To specify string translations for product fields, go to
the Vlocity Product Console.
• Check Field Level Security: Checks the user's access permissions for the fields before executing the
DataRaptor. Enabling this setting disables the Org Cache but not the Session Cache.
• Overwrite Target For All Null Inputs: Ensures that an output node is created regardless of whether a
field is null.
List Maps
To map data into a list in the output, use the following syntax: listname|#
The listname specifies the key of the output node and the # specifies the position in the list where the
output resides. Note the pipe (|) symbol separator. The following example illustrates how to map a flat set
of input nodes to an output list.
For more about lists in DataRaptors, see List Input for DataRaptors.
What's Next
Test a DataRaptor Extract
The Response panel displays the resulting data, and the Debug Log panel displays the results of the
Salesforce queries issued by the DataRaptor.
For example, if the DataRaptor filters Accounts based on an Id provided by an OmniScript, a Key/Value pair
such as the following enables you to test the DataRaptor using a specific Account Id.
For additional examples that show how you can improve DataRaptor performance for some use cases
using relationship notation, see Relationship Notation versus Multiple Extract Steps.
{
"Account": {
"Name" "Smith Incorporated"
}
}
To support the case-handling OmniScript, the DataRaptor Extract must return a JSON composed of case
details at the top level, and a list of contacts, for example:
1. Go the DataRaptor Designer tab and click New. The Create dialog is displayed.
2. Specify a name for the DataRaptor and configure its settings as follows:
• Interface Type: Extract
• Input Type: JSON
• Output Type: JSON
3. Click Save. The DataRaptor Interface page is displayed.
4. On the Extract tab, add three extract steps with the settings shown in the following figure.
5. On the Output tab, map fields from the Extraction Step JSON to the Output JSON. To add a mapping,
click the + button. Add the mappings listed in the following table.
7. To add an Age field to the Contact data, go to the Formulas tab, click Add Formula. In the Formula
field, add AGE(Case:Account:Contacts:Birthdate). In the Formula Result Path field, add
Contacts:Age.
8. On the Output tab, click the + button and add a mapping with both the Extract JSON Field Path and
JSON Output Path fields set to Contacts:Age.
9. To verify that you have mapped the formula correctly, go to the Output tab and verify that the Age field
is displayed in the Current JSON Output pane as shown below.
• Use the ORDER BY setting to sort the data based on a specific field.
• Use the LIMIT setting to specify how many records to retrieve at a time.
• After retrieving each set of records, use the sort field value from the last record retrieved to retrieve the
next set.
1. Go the DataRaptor Designer tab and click New. The Create dialog is displayed.
2. Specify a name for the DataRaptor and configure its settings as follows:
• Interface Type: Extract
• Input Type: JSON
• Output Type: JSON
3. Click Save. The DataRaptor Interface page is displayed.
4. On the Extract tab, specify Account as the object and Id > lastAccountId as the filter. Use the
down arrow on the right to add Id as the ORDER BY field and a LIMIT value of 2.
6. Go to the Preview tab. If you see an Edit as Params link, click it.
7. In the Input Parameters pane, click Add New Key/Value Pair. Enter lastAccountId as the Key and
001000000000000 as the Value. Click Execute.
The second page of Account records is retrieved. Repeat this step to retrieve the next page.
• Use the LIMIT setting to specify how many records to retrieve at a time.
• Use the OFFSET setting to specify a multiple of the LIMIT value.
• Optional but recommended for predictable results: use the ORDER BY setting to sort the data based on
a specific field.
1. Go the DataRaptor Designer tab and click New. The Create dialog is displayed.
2. Specify a name for the DataRaptor and configure its settings as follows:
• Interface Type: Extract
• Input Type: JSON
• Output Type: JSON
3. Click Save. The DataRaptor Interface page is displayed.
4. On the Extract tab, specify Contact as the object and DoNotCall = "false" as the filter. Use the
down arrow on the right to add LastName as the ORDER BY field, a LIMIT value of 3, and an OFFSET
value of AfterRecord.
5. On the Output tab, map the name and phone fields as shown.
6. Go to the Preview tab. If you see an Edit as Params link, click it.
7. In the Input Parameters pane, click Add New Key/Value Pair. Enter AfterRecord as the Key and 0
(zero) as the Value. Click Execute.
The second page of Contact records is retrieved. Repeat this step, incrementing the AfterRecord
value by 3 each time, to retrieve the remaining pages.
Before you create this example, create and run the Account Attribute example in DataRaptor Load
Examples.
1. Go the DataRaptor Designer tab and click New. The Create dialog is displayed.
2. Specify a name for the DataRaptor and configure its settings as follows:
• Interface Type: Extract
• Input Type: JSON
• Output Type: JSON
3. Click Save. The DataRaptor Interface page is displayed.
4. On the Extract tab, specify Account as the object and Extract Output Path, and Id = Id as the
filter.
5. On the Output tab, click the + icon and add the following mappings:
{
"Id": "0014N00001goyP8QAI",
"GoldStarAcct": "On",
"NumberOfStars": 5
}
You can traverse up to five levels of relationships using relationship notation. For example, the syntax for
going up two levels is parent.grandparent.field, and for three levels, parent.grandparent.great-
grandparent.field.
For custom fields, the relationship name matches the name of the field that references the parent object,
except that the relationship name ends with __r instead of __c.
1. Define an extraction step for the Contract object on the DataRaptor's Extract tab as follows:
2. Define Extract JSON Paths for the Contract Number, Active Contract Version Name, and Created By
Name fields on the DataRaptor's Output tab as follows:
Note that the Extract JSON Path for the Name field of the vlocity_cmt__ContractVersion__c object is
vlocity_cmt__ActiveContractVersionId__r.Name. The name of the relationship that the
Contract object has with the parent vlocity_cmt__ContractVersion__c object is
vlocity_cmt__ActiveContractVersionId__r. The second-level relationship name is
CreatedBy. Depending on your industry, the namespace might be vlocity_cmt, vlocity_ins, or
vlocity_ps.
3. Supply a Contract Number on the Preview tab. You get a Response such as this one:
{
"Creator": "Vlocity Admin",
"Version": "Version 1",
"Number": "00000105"
}
4. See the SOQL query in the Debug Log. It looks like this:
Note that you can use the Extract Output Path to shorten the object name for mapping.
2. Define Extract JSON Paths for the Catalog Name, Product Name, and Promotion Name fields on the
DataRaptor's Output tab as follows:
For these custom fields, the relationship names are the same as the field names except that the suffix
is __r instead of __c.
3. Supply a CatalogId on the Preview tab. You get a Response such as this one:
[
{
"PromotionName": "Two for One",
"CatalogName": "Phones"
},
{
"ProductName": "Samsung Galaxy S8 Active",
"CatalogName": "Phones"
},
{
"PromotionName": "Free Case",
"CatalogName": "Phones"
},
{
"ProductName": "Apple iPhone X",
"CatalogName": "Phones"
}
]
4. See the SOQL query in the Debug Log. It looks like this:
DataRaptor Transforms are essential for OmniScripts that must populate a DocuSign template (see
Creating a DataRaptor Interface to Map an OmniScript to DocuSign ) or fill fields in a PDF document (see
Creating a DataRaptor Interface to Map an OmniScript to a PDF).
You can also transform data in many ways using Set Values components in Integration Procedures. See
Set Values.
1. Go to the DataRaptor Designer tab and click New. The Create: DataRaptor Interface dialog is
displayed.
2. Specify configuration settings as follows:
• DataRaptor Interface Name: Descriptive name, displayed on the DataRaptor Designer tab's list of
DataRaptors.
• Interface Type: Transform
• Input Type: JSON (for OmniScripts), XML or Custom
• Output Type: JSON (for OmniScripts), XML, PDF, DocuSign, Document Template, or Custom
• Required Permission: Specifies an optional comma-separated list of Custom Permission names. To
run this DataRaptor, a user must have one of these permissions. If this setting is blank, any user can
run this DataRaptor unless a DefaultRequiredPermission is set.
If specified, this setting overrides the DefaultRequiredPermission setting, which provides a default if
no Required Permissions value is set. See Security for DataRaptors and Integration Procedures.
Custom Permissions for users are defined in Salesforce Profiles or Permission Sets. For Vlocity-
specific information about Profiles, see Overview of Profiles and Security for Vlocity.
When an Integration Procedure calls a DataRaptor, the Required Permission setting of the
Integration Procedure overrides the Required Permission setting of the DataRaptor.
• Description: Optional high-level overview of the DataRaptor.
What's Next
DataRaptor Transform Data Mappings
You can map data on the Transforms tab in one of two ways:
• If the input and output names match, Use Quick Match to Map Data.
• Specify each mapping individually.
Both ways apply to JSON input and output and to other input and output types.
The following example shows JSON input being mapped to XML output. All incoming fields are renamed.
The incoming top case fields, which are all top-level fields, are reparented under an XML node named
XCASEDETAILS. The list of contacts is unchanged. Note the difference between the representation of a list
in JSON and in XML. For details about converting between JSON and XML, see XML in DataRaptors.
For the PDF, DocuSign, and Document Template output types, output mappings are generated based on
the fields in the Target Output file you selected when you created the DataRaptor Transform.
By default, if a value is null, no node is created for the field in the output JSON. To ensure that a node is
created, regardless of whether the field is null, go to the Options tab and check Overwrite Target For All
Null Inputs.
To replace one value with another, open the mapping and create entries in the Transform Map Values list.
For example, if the incoming field contains TRUE or FALSE and your OmniScript requires a Y or N value,
create the following entries:
Cache Data
You can configure optional caching settings on the Options tab:
• Time To Live In Minutes: If data caching is enabled, determines how long data remains in the cache.
The minimum value is 5.
• Salesforce Platform Cache Type: Enables data caching. Set to Session Cache for data related to
users and their login sessions, or to Org Cache for all other types of data. See Cache for DataRaptors
and Integration Procedures.
What's Next
Test a DataRaptor Transform
NOTE
Some transforms are too complex for Quick Match. For example, see List Input for
DataRaptors.
1. Expand the Input JSON pane and paste the input data structure into it.
2. Expand the Expected JSON Output pane and paste the desired output structure into it.
3. Click Quick Match. The Quick Match window opens.
4. Click Auto Match, or drag each Input Mapping onto the desired Output Mapping.
Another option is to select an Input Mapping and an Output Mapping, then click Pair.
5. Click Save. The Quick Match window closes and the Transforms tab shows the individual mappings.
6. Look at the structure in the Current JSON Output pane. Make sure it matches the structure in the
Expected JSON Output pane.
XML in DataRaptors
In addition to JSON, DataRaptors can have XML input and output. The XML format in DataRaptors is an
unordered key/value, JSON-like structure.
To specify the order in which the elements of the XML output are serialized, populate the Expected XML
Output pane with an XML structure that is composed in the desired order.
JSON
{
"Root": {
"#text": "rootValue",
"@attribute1": "attVal1",
"#ns": "http://namespace1",
"#ns#a": "http://namespace2",
"Child": [{
"@attribute2": "attval2"
},
{
"#text": "childValue"
}
]
}
}
XML
rootValue
<Child attribute2="attval2"></Child>
<Child>childValue</Child>
</Root>
DataRaptors that transform XML to JSON use the following conventions to handle the differences between
the formats.
For additional DataRaptor Transform examples, see List Input for DataRaptors and Create a DataRaptor
Example with a Formula.
1. Go the DataRaptor Designer tab and click New. The Create dialog is displayed.
2. Specify a name for the DataRaptor and configure its settings as follows:
• Interface Type — Transform
• Input Type — JSON
• Output Type — JSON
3. Click Save. The Transforms tab of the DataRaptor Interface page is displayed.
4. Expand the Input JSON pane and paste the following JSON data into it:
{
"Contact": {
"Id": "0036100000423z8AAA",
"FirstName": "Amy",
"LastName": "Smith"
}
}
5. Click the + icon and add the following mapping:
• Input JSON Path — Contact
• Output JSON Path — Contacts
• Output Data Type — List<Map>
Note that you only have to create a mapping for the top-level node.
6. Expand the Current JSON Output pane. Its contents should look like this:
{
"Contacts": [
{}
]
}
7. Go to the Preview tab and click Execute. The Response should look like this:
{
"Contacts": [
{
"LastName": "Smith",
"FirstName": "Amy",
"Id": "0036100000423z8AAA"
}
]
}
1. Go the DataRaptor Designer tab and click New. The Create dialog is displayed.
2. Specify a name for the DataRaptor and configure its settings as follows:
• Interface Type — Transform
• Input Type — JSON
• Output Type — JSON
3. Click Save. The Transforms tab of the DataRaptor Interface page is displayed.
4. Go to the Formulas tab. In the Formula field, enter ObjectList:Property. In the Formula Result
Path field, enter FormulaList.
5. Go to the Transforms tab. Expand the Input JSON pane and paste the following JSON data into it:
{
"ObjectList": [
{
"Property": "P9034"
}
]
}
6. Expand the Expected JSON Output pane and paste the following JSON data into it:
{
"PropertyValueList": [
"P9034"
]
}
7. Click the + icon and add the following mapping:
• Input JSON Path — FormulaList
• Output JSON Path — PropertyValueList
Note that you only have to create a mapping between the top-level nodes.
8. Expand the Current JSON Output pane. Its contents should look like this:
{
"PropertyValueList": "Text"
}
9. Go to the Preview tab and paste the following JSON data into the Input pane:
{
"ObjectList": [
{
"Property": "P9034"
},
{
"Property": "P6538"
},
{
"Property": "P1234"
},
{
"Property": "P5678"
},
{
"Property": "P2345"
},
{
"Property": "P7654"
}
]
}
{
"PropertyValueList": [
"P9034",
"P6538",
"P1234",
"P5678",
"P2345",
"P7654"
]
}
11. Add or subtract list items in the JSON data in the Input pane and click Execute again. Note that the
output changes accordingly.
For example, when a user running a case-handling OmniScript finishes entering data and clicks Save, the
script calls a DataRaptor Load to record the data entered.
A DataRaptor Load can obtain its input data in the following ways:
• Interface object: Create a custom object and populate it with data for the DataRaptor Load. Use
Salesforce Bulk Loader or other load tools to insert data into the object. If you need to modify the data
before it is inserted into the object, define a preprocessor class. This approach enables you to load data
from flat files, for example. (See Interface Objects for External Data Loads)
• DataRaptor API REST call: If the DataRaptor is invoked using a POST action, the Data JSON can be
included in the payload of the call.
• Apex code: Specify the Data JSON as a parameter in the call to the DataRaptor Load.
To modify the input data, you can define formulas, transform values, and change the output data type. (See
Use Formulas in DataRaptors.) To specify how the resulting data is to be written to Salesforce objects, you
map fields from the output JSON to fields in Salesforce objects. (See Object Field Mapping.) When
invoked, the DataRaptor Load applies its mappings and formulas to the input data to create the output data,
then loads the output data into Salesforce objects according to the mappings.
NOTE
SObject input isn't supported in Summer '21 and later releases.
5. On the Formulas tab, define any transformations you want to apply to the input data to add data to the
output data. For details about the functions that you can use in formulas to define transformations, see
Use Formulas in DataRaptors.
6. On the Fields tab, map the input data to the Salesforce object fields that you want to update. For more
information, see Object Field Mapping.
7. On the Options tab are optional properties you can set.
The following options are available only if the Input Type is SObject:
• Batch Size: The number of records processed per batch transaction, between 1 and 2000.
• Process Now Threshold: The number of records processed immediately, between 0 and 199.
• Preprocessor Class Name: The adapter Apex class that implements the IDRPreprocess Apex
interface.
• Delete on Success: Automatically delete bulk records after successfully bulk-loading data.
• Process Super Bulk: Process large jobs spread over multiple Salesforce Apex batch jobs without
exceeding Salesforce governor limits.
• Is Default for Interface: Specify this DataRaptor as the default bundle for the specified interface
object.
The following options are available for all DataRaptor Loads:
• Ignore Errors: Execute the DataRaptor even if errors occur, skipping only the steps having errors.
This option is useful when you know a record will fail with limited data and future steps don't rely on
previous steps.
• Rollback on Error: Don't create or update the sObjects if errors occur. For more information, see
Apex Transactions and Transaction Control in the Salesforce documentation.
• Use Assignment Rules: Use assignment rules for sObjects such as Cases that have user
assignment fields. For more information, see Set Up Assignment Rules in the Salesforce
documentation.
In Summer '19 and later releases, if emails are configured in Case assignment rules, checking this
option automatically sends emails to users when Cases are assigned.
• Overwrite Target For All Null Inputs: If an input doesn't have a value, set the corresponding output
value to NULL.
What's Next
Object Field Mapping
Object:JsonField__c:JsonNode:ChildJsonNode
If you are updating multiple Salesforce objects, the designer displays a separate tab for the mappings of
each target object. See Multiple Related Object Loads (Link Mappings).
Mapping Options
To control how the update is performed, you can configure the following optional settings:
In Spring '20 and later releases, in the Domain Object Field, type-ahead is supported for up to 500
attributes. For example, you can type @C to display attributes beginning with the letter C and select from the
drop-down list instead of typing the entire attribute name manually.
For example, to assign Gold Star Status to an account, set the corresponding attribute to on as follows:
Mappings:
Input JSON:
{
"Id": "0016100001Ey84K",
"GoldStarAccount": "on"
}
When assigning values to attributes, specify values that are data-type-compatible as follows:
• On-Off: To apply the attribute to the object, specify "On", true or "true". To remove the attribute from
the object, specify "Off", false, or "false".
• Three-state: Specify a negative value, a positive value, or zero.
• 1 to 5: Specify a value from one to five (1 - 5). Values less than one are treated as one, and values
greater than five are treated as five.
• TextComment: String data
Product attributes cannot be added to or modified for the Product object using DataRaptor Loads. You can
modify product attributes for the following objects:
• Asset
• CompiledAttributeOverride__c
• ContractLineItem__c
• FulfilmentRequestLine__c
• InventoryItem__c
• OpportunityLineItem
• OrderItem
• ProgramEnrollment__c
• QuoteLineItem
IMPORTANT
A DataRaptor Load cannot create a Product Attribute for a Line Item. It can only modify
existing Product Attributes for existing Line Items.
What's Next
Test a DataRaptor Load
To link the Account to its Contact, the DataRaptor must perform the following sequence of operations:
To handle this type of relationship, link the objects in the DataRaptor Designer as follows:
1. On the Objects tab, navigate to the source object (Contact in the preceding example) and click Add
Link.
2. For each field you want to link, configure settings as follows:
• Domain object field: The source field from this object (AccountId in the preceding example).
• Linked object: Another object in the sequence (Account in the preceding example).
• Field list: The target field in the linked object (Id in the preceding example).
For example, to create a Case with a new Account and Contact associated, link the objects as shown in the
following figure. The Contact is associated with the account by AccountId, and the case is associated with
the contact by ContactId.
For an example that uses link mapping, see Create a Contact for an Existing Account.
1. Data is loaded into a Salesforce custom object using Salesforce's Data Import Wizard or a tool such as
the Salesforce Data Loader, Informatica, or Talend.
2. Loading data into the object fires an Apex trigger that calls a Vlocity DataRaptor Load.
3. The DataRaptor transforms data from the interface object as required and writes the resulting data to
other Salesforce and Vlocity objects.
NOTE
SObject input and interface objects aren't supported in Summer '21 and later releases.
1. In Salesforce, create a custom object and add fields corresponding to the data in the external source.
2. Add the following string fields to the custom object. These fields are reserved by DataRaptors for
internal use.
• DRBundleName
• DRError
• DRProgressData
• DRStatus
3. To check whether you have defined the interface object correctly, create a test DataRaptor, go to the
Objects tab, click Add Object, and verify that the custom object is displayed in the list of available
objects.
4. Add to the interface object a trigger that invokes the DataRaptor Load.
5. To ensure that your DataRaptor can access data in the interface object, load a small amount of test
data into the object and run the DataRaptor. To check whether the DataRaptor logged any errors, use
the Developer Console to query the interface object; for example:
Select DRProgressData__c, DRError__c from myObjectwhere DRStatus__c =
'Error'
6. Using the Salesforce bulk load tool or your preferred bulk load tool, import the external data into the
interface object.
You can now use the interface object in DataRaptors exactly as you use standard Salesforce objects.
TIP
If you use interface objects on an ongoing basis (as opposed to performing a one-time
bulk load), create a tab for the object so you can access it readily.
NOTE
Preprocessor classes aren't supported in Summer '21 and later releases.
1. From Setup, click Develop, then click Apex Classes, and click New.
2. Code the Apex class. Your class must implement the IDRPreprocess global interface, as shown in the
following sample:
The Objects Created panel lists the resulting objects, which are saved permanently. The Debug Log panel
displays the results of the Salesforce queries issued by the DataRaptor.
The input JSON for this DataRaptor Load contains the Contact details, for example:
{
"ContactDetails": {
"Birthdate": "10/10/1954",
"LastName": "Singh",
"Telephone": "5106345789",
"FirstName": "Sanjay"
}
}
1. If your org Contact object does not have an Authorized field, add one (checkbox). In the following
example, the authorized field is called Authorized__c. Depending on your industry, you might need to
add a vlocity_cmt__, vlocity_ins__, or vlocity_ps__ namespace prefix.
2. Navigate to the DataRaptor Designer tab and click New. The Create: DataRaptor Interface dialog is
displayed.
Depending on your industry, you might need to add a vlocity_cmt__, vlocity_ins__, or vlocity_ps__
namespace prefix.
ContactDetails:Birthdate Birthdate
ContactDetails:FirstName FirstName
ContactDetails:LastName LastName
ContactDetails:Telephone Phone
6. On the Formulas tab, click Add Formula and enter a Formula of
IF(AGE(ContactDetails:Birthdate) > 18, "true", "false") and a Formula Result Path
of ContactDetails:Authorized as shown in the following figure.
{
"ContactDetails": {
"Birthdate": "10/10/1954",
"LastName": "MyLastName",
"Telephone": "5106345789",
"FirstName": "MyFirstName"
}
}
9. Click Execute. If the load succeeds, a link to the object is displayed in the Objects Created pane, as
shown in the following figure.
10. Click the link and verify that the Authorized checkbox is checked only if the contact is over 18 years
old.
The input JSON for this DataRaptor Load contains the Account Id and the Contact name, for example:
{
"AccountId": "0016100001BKL4uAAH",
"Name": {
"First": "Jane",
"Last": "Doe"
}
}
1. Navigate to the DataRaptor Designer tab and click New. The Create: DataRaptor Interface dialog is
displayed.
2. Enter settings as follows and click Save:
• DataRaptor Interface Name: A descriptive name of your choice
• Interface Type: Load
• Input Type: JSON
• Output Type: SObject
3. On the Objects tab, click Add Object and choose Account.
4. Click Add Object again and choose Contact.
5. Click Add Link and enter settings as follows:
• Domain Object Field: AccountId
• Linked Object: 1 - Account
• Linked Object Field (after the period): Id
6. Go to the Fields tab and the Account subtab. Click the + icon and add the following mapping:
• Input JSON Path: AccountId
• Domain Object Field: Id
• Upsert Key: checked
7. Go to the Contact subtab. Add the following name mappings:
Before you create this DataRaptor Load, you must create the Profile Attributes. Follow the steps at Create
New Profile Attribute Categories and Create New Profile Attributes to create these objects:
The input JSON for this DataRaptor Load contains the Account Id and values for the two Profile Attributes,
for example:
{
"Id": "0014N00001goyP8QAI",
"GoldStarAcct": "On",
"NumberOfStars": 5
}
1. Navigate to the DataRaptor Designer tab and click New. The Create: DataRaptor Interface dialog is
displayed.
2. Enter settings as follows and click Save:
• DataRaptor Interface Name: A descriptive name of your choice
• Interface Type: Load
• Input Type: JSON
• Output Type: SObject
3. On the Objects tab, click Add Object and choose Account.
4. Go to the Fields tab and the Account subtab. Click the + icon and add the following mappings:
• Create targeted DataRaptors that only extract or load the data needed for one operation.
• Use relationship notation (queries) whenever possible to pull data from other SObjects. For more
information, see Relationship Notation versus Multiple Extract Steps.
• Try to keep the number of SObjects to three or fewer.
• Ensure that all filtering and sorting (ORDER BY) operations are on indexed fields. The Id and Name
fields are always indexed. For more information, see Indexes in Salesforce Help.
• Use caching to store frequently accessed, infrequently updated data. See Cache for DataRaptors and
Integration Procedures.
To determine whether a DataRaptor or an Integration Procedure is best for your use case, see DataRaptor
or Integration Procedure?.
For example, the following lists are valid, and each can be converted to the other.
List 1:
{
"Oldest": "Huey",
"Middle": "Dewey",
"Youngest": "Louie"
}
List 2:
{
"Nephews": [
{
"Name": "Huey"
},
{
"Name": "Dewey"
},
{
"Name": "Louie"
}
]
}
List 1 lacks a JSON node for the list as a whole, and each value has a different key. List 2 has its own
JSON node, and each list item has the same key.
NOTE
Loop Block components in Integration Procedures require input that is structured like List
2. The list-item key itself can contain key-value pairs. For examples, see Process Arrays
Using Loop Blocks.
To convert List 1 to List 2, use the following mappings on the Transforms tab of a DataRaptor Transform.
The |1, |2, and |3 are list position indexes.
To download DataPacks of DataRaptor Transforms for these mappings, click these links:
List 3:
{
"Nephews": [
"Huey",
"Dewey",
"Louie"
]
}
To convert List 2 to List 3, and to perform such conversions of lists of any length, see the second example
in DataRaptor Transform Examples.
See Also
• AVG, FILTER, IF, LIST, LISTMERGE, LISTMERGEPRIMARY, LISTSIZE, MAX, MIN, SORTBY, and SUM
functions in the Function Reference
• Process Arrays Using Loop Blocks in Integration Procedures
• List Merge Action in Integration Procedures
• Integration Procedure Action in Integration Procedures (the example transforms a list)
For details about the operators and functions that you can use in formulas, see Function Reference.
To create a formula:
3. In the Formula field, specify the desired logic. For example, to determine the total price of the items
being purchased by a customer, enter a formula such as:
SUM(Products:Price)
You can reference attributes in formulas. Use the code (not the name) preceded by @. For example:
Account:@GoldStarAccount == "On"
You can also use relationship notation in formulas to reference fields in a parent object. See
Relationship Notation versus Multiple Extract Steps.
4. In the Formula Result Path field, specify a JSON node in which to store the formula result.
5. Map the result to the final output as follows:
• Extract: Go to the Output tab and map the formula result to the output structure. Use a colon (:) to
delimit levels in the input and output paths in mappings.
• Transform: Go to the Transforms tab and map the formula result to the output structure. Use a
colon (:) to delimit levels in the input and output paths in mappings.
• Load: For each sObject that you want to update, go to its Fields tab and map the formula result to
the specific field that you want to update.
NOTE
If a variable name contains spaces or non-alphanumeric characters, enclose the variable
name in double quotes and precede it with var: in formulas. For example, if the JSON
node name is Primary Guardian, specify it in formulas as var:"Primary
Guardian".
If the name of a custom field includes special characters, sometimes you can't reference
the field in a formula.
Before Winter '20, the result of a LIST function in a formula was saved to a VLOCITY-
FORMULA-LIST node under the Formula Result Path. Beginning with Winter '20, the
result is saved directly under the Formula Result Path.
See Also
• Create a DataRaptor Example with a Formula
1. Go the Vlocity DataRaptor Designer tab and click New. The Create dialog is displayed.
2. Specify a name for the DataRaptor and configure its settings as follows:
• Interface Type: Transform
• Input Type: JSON
• Output Type: JSON
3. Click Save. The DataRaptor Interface page is displayed.
4. Go to the Formulas tab and click Add Formula.
5. In the Formula field, enter SUM(Products:Price).
6. In the Formula Result Path field, enter TotalPrice.
7. On the Transforms tab, expand the Input JSON pane and paste this JSON structure into it:
{
"CustomerName": "Bob Smith",
"Products": [
{
"Name": "iPhone",
"Price": 600
},
{
"Name": "iPhone Case",
"Price": 30
},
{
"Name": "Ear Buds",
"Price": 200
}
]
}
8. Expand the Expected JSON Output pane and paste this JSON structure into it:
{
"CustomerName": "Bob Smith",
"TotalPrice": 830,
"Products": [
{
"Name": "iPhone",
"Price": 600
},
{
"Name": "iPhone Case",
"Price": 30
},
{
"Name": "Ear Buds",
"Price": 200
}
]
}
9. Click Quick Match. In the Quick Match window, click Auto Match, then click Save.
10. On the Preview tab, click Execute.
If you have built the example correctly, the JSON structure in the Response pane matches the
Expected JSON Output except for the order of the top-level nodes.
11. In the Input pane, change one or more of the prices, then click Execute again.
Note how the TotalPrice value changes.
See Also
• Boolean
• Currency: Converts to Currency using the Salesforce org's currency code.
• CurrencyRounded: Converts to Currency, rounds the number, and removes the decimals.
• Double
• Integer
• JSON: Serialize as JSON. Omit if the transform output type is JSON unless you must embed JSON in
JSON (unlikely)
• List<Double>
• List<Integer>
• List<Map>: Converts Map<String,Object> to List<Map<String, Object>>
• List<String>
• Number
• Number(3): Converts to a number with decimals where the decimal precision is specified in parentheses.
For example, the output type Number(3) would output a number with three decimals.
• Object: Deserializes a String as Map<String, Object> or List<Object>
• String
• Multi-Select: Convert to Salesforce multi-select string (semicolon-delimited list)
• Date: Details in the following table.
NOTE
If you cast a list of values to a primitive type like Double, Integer, String, or Boolean, only
the first element of the list is output.
To format output date-time values, use the date-time templates supported by Oracle Java. The format of the
input date must be ISO-compliant (YYYY-MM-DD hh:mm:ss) and the time must be GMT. Specify the format
as a string argument to the DATE() output data type, for example:
Here are examples of different output formats for the same date-time value.
Format Output
Date(MM/dd/YYYY) (default) 07/04/2001
Date("yyyy.MMMMM.dd GGG hh:mm aaa") 2001.July.04 AD 12:08 PM
Date("EEE, d MMM yyyy HH:mm:ss Z") Wed, 4 Jul 2001 12:08:56 +0000
NOTE
The Salesforce Workbench REST Explorer is a useful testing tool.
Example
POST Data
{
"bundleName" : "AccountUpload",
"objectList" : {
"Agency Information": {
"Agency Name": "Vlocity",
"Agency Address": "50 Fremont",
"Agency City": "San Francisco",
"Agency State": "CA",
"Agency Zip": "94110",
}
},
"bulkUpload" : false
}
Result
{
"createdObjectsByOrder": {
"Open Account": {
"1": [
"a10o00000022xVEAAY" ]
}
},
"createdObjectsByType": {
"Open Account": {
"Account": [
"a10o00000022xVEAAY" ]
}
},
"errors": {},
"returnResultsData": []
}
/services/apexrest/myOrgNamespace/v2/DataRaptor/DataRaptorName/Id
Example Request
The following request uses the Id of a Contact to retrieve all open Cases for the Contact. Note that the %20
HTML URL encoding represents a space in the DataRaptor name.
GET /services/apexrest/vlocity_cmt/v2/DataRaptor/Open%20Cases/a10o00000022xVE
Example Result
{
"Contact": {
"Contact Name" : "Dennis Reynolds",
"Case Information": [
{
GET /services/apexrest/<myOrgNamespace>/v2/DataRaptor/<DataRaptorName>/?$
{Param1}=${Val1}&${Param2}=${Val2}...
Example Request
The following request passes the first and last name of a contact as input parameters to a DataRaptor
extract, which uses them to query for the cases opened by the contact.
GET /services/apexrest/vlocity_cmt/v2/DataRaptor/Open_Cases/?
FirstName=Dennis&LastName=Reynolds
/services/apexrest/vlocityNamespace/v2/DataRaptor/
• For a JSON object, use Map<String, Object>. Set the String to the JSON key and the Object to the
JSON value.
• For an array of JSON objects, use List<Map<String, Object>>. Set the String to the JSON key and
the Object to the JSON value.
• As an alternative, you can specify the input as a string containing the JSON input required by the
DataRaptor.
For details about the methods of the DRGlobal class, which offer multiple ways to call DataRaptors, see
DRGlobal Class and Methods.
To process the results returned by a DataRaptor extract or transform in Apex, use the toJsonList()
method to deserialize the output to a Map<String, Object> or List<Map<String, Object>>. To
determine which type to use, check the data type of the response.
DataRaptor loads return JSON containing data about the Salesforce objects that were created or updated
by the operation. To process the results returned by a DataRaptor load, deserialize the output to a map.
From the resulting map, you can extract data about the objects that were created and any errors that
occurred. The DataRaptor load example below shows how to access this data from the result map.
In all the method signatures shown below, the namespace is vlocity_cmt, vlocity_ins, or
vlocity_ps. The bundleName is the DataRaptor name.
Method Names
processObjectsJSON
Signature:
processObjects
Signatures:
The first signature, which doesn't require a DRName, is only for a DataRaptor Load.
The additionalInfo is a Map that applies to every SObject, such as extra data for processing.
pprocessString
Signature:
processFromApex
Signatures:
These methods ignore Sharing Rules, which ensures that the DataRaptor being invoked is private. See
Sharing Rules in the Salesforce help. The locale parameter is available in Summer '20 and later releases.
process
Signatures:
processPost
Signature:
This method can only call a DataRaptor Load. No other Apex method can pass the bulkUpload
parameter to a DataRaptor. See DataRaptor Calls From Apex.
clearCacheForDataRaptor, clearCacheForAllDataRaptor
For details about these methods, see Cache for DataRaptors and Integration Procedures.
For example, the following filter extracts the Cases created in the last 30 days.
If you are using an environment variable as a Filter value, you must double-quote it.
To configure a DataRaptor to use a custom input or output, set its type to Custom and specify the class that
contains the serialize and/or deserialize methods that perform the operation. The following figure shows a
DataRaptor Transform configured with a custom input and output.
For ease of mapping, you can paste sample input into the Expected Input and Expected Output fields.
The following example shows the basic structure of a customer serialization/deserialization class.
/*
Serializes Apex objects into JSON content. return String json
*/
global Boolean serialize(Map<String, Object> input, Map<String, Object>
output) {
String jsonString = '';
// code
output.put('output', jsonString); // JSON String
return true;
}
/*
Deserializes the specified JSON string into collections of primitive
data types. return Object ((Map<String, Object>))
*/
global Boolean deserialize(Map<String, Object> input, Map<String, Object>
output) {
Map<String, Object> returnMap = new Map<String, Object>();
// code
output.put('output', returnMap); // ---> collections of primitive data
types Map<String, Object>, List<Map<String, Object>>()
return true;
}
}
{
"Column1Test": "value1.0",
"Column2Test": "value0"
},
{
"Column1Test": "value1.1sl",
"Column2Test": "value0.1"
}
]
Example Output: 'Column2,Column1\nvalue0,value1.0\nvalue0.1,value1.1';
*/
global Boolean serialize(Map<String, Object> input, Map<String, Object>
output)
{
Object inputValue = input.get('input');
String returnValue = '';
if (inputValue == null)
{
return false;
}
if (inputValue InstanceOf Map<String, Object>)
{
inputValue = new List<Object>{inputValue};
}
if (inputValue InstanceOf List<Object> &&
((List<Object>)inputValue).isEmpty())
{
List<Object> rows = (List<Object>)inputValue;
if (!rows.isEmpty())
{
Set<String> columns = ((Map<String,
Object>)rows[0]).keySet();
for (String col : columns)
{
if (String.isNotBlank(returnValue))
{
returnValue = returnValue + ',' + col;
}
else
{
returnValue = returnValue + col;
}
}
if (!columns.isEmpty())
{
returnValue = returnValue + '\n';
}
for (Integer i = 0; i < rows.size(); i++)
{
for (String col : ((Map<String,
Object>)rows[i]).keySet())
{
if (String.isNotBlank(returnValue) && !
(returnValue.length()-1 == returnValue.lastIndexOf('\n')))
{
returnValue = returnValue + ',' + ((Map<String,
Object>)rows[i]).get(col);
}
else
{
returnValue = returnValue + ((Map<String,
Object>)rows[i]).get(col);
}
}
returnValue = returnValue + '\n';
}
output.put('output', returnValue);
return true;
}
}
return false;
}
/*
Deserializes the specified JSON string into collections of primitive data
types. return Object ((Map<String, Object>))
Input: 'Column2,Column1\nvalue0,value1.0\nvalue0.1,value1.1';
Output:
[
{
"Column1Test": "value1.0",
"Column2Test": "value0"
},
{
"Column1Test": "value1.1sl",
"Column2Test": "value0.1"
}
]
*/
global Boolean deserialize(Map<String, Object> input, Map<String, Object>
output)
{
Object inputValue = input.get('input');
DataRaptor Administration
DataRaptors have additional caching, security, batch, and debug settings. You can also export and deploy
DataRaptors.
DataRaptor Security
Security settings control a user's ability to run DataRaptors and cache data. See Security for DataRaptors
and Integration Procedures.
IMPORTANT
To configure a DataRaptor to run in batch mode, set the Process Now Threshold value
to -1.
• Preprocessor Class Name: Adapter Apex class that implements the IDRPreprocess Apex interface.
Used for transforming data before it’s inserted into an Interface Object.
• Delete on Success: Deletes the Interface Object records on success (meaning that all steps executed
without throwing errors). To make troubleshooting easier, disable while debugging.
• Process Super Bulk: Use batch Apex for processing. Prevents exceeding Salesforce governor limits for
complex Interface Objects.
When you export a DataRaptor, Vlocity create a DataPack (which is a JSON file) in your browser's
download directory. To deploy the exported DataRaptor to the target org, copy the file to an accessible
location and import it. After you import a DataRaptor, you must activate it to be able to run it.
Caching of DataRaptor and Integration Procedure metadata and Integration Procedure data is available in
Summer '19 and later releases. Caching of DataRaptor data is available in Spring '20 and later releases.
• DataRaptor metadata is always cached if you allocate space in the VlocityMetadata cache partition as
described below.
• You can configure data caching on the Options tab of DataRaptor Extracts, Turbo Extracts, and
Transforms.
• If you call a DataRaptor from an Integration Procedure that uses caching, the DataRaptor data is cached
along with the Integration Procedure data.
You can also perform a record-level security check for cached data. See Security for DataRaptors and
Integration Procedures.
To disable metadata caching for an Integration Procedure, go to the Procedure Configuration and check the
Disable Definition Cache checkbox.
TIP
To test the performance benefit of metadata caching, execute the Integration Procedure in
the Preview tab with Disable Definition Cache checked and then unchecked. Compare
the Browser, Server, and Apex CPU values.
Behind this checkbox is the DisableDefinitionCache__c boolean field, which defaults to false.
namespace.DRGlobal.clearCacheForDataRaptor('DataRaptorName');
namespace.vlocity.cmt.DRGlobal.clearCacheForAllDataRaptor();
If you need to clear Integration Procedure metadata from the cache, follow the instructions in this topic, but
execute this line of code instead, specifying the Integration Procedure's Type and Subtype:
IntegrationProcedureService.clearMetadataCache('Type_Subtype');
To clear all cached data for an Integration Procedure, including session cache data, org cache data, and
metadata, follow the instructions in this topic, but execute this line of code instead, specifying the
Integration Procedure's Type and Subtype:
IntegrationProcedureService.clearAllCache('Type_Subtype');
IMPORTANT
Beginning with the Winter '20 Salesforce release, Guest Users, also called anonymous
users, cannot access any records by default. Criteria-based Sharing Rules grant them
read-only access. This affects all Salesforce orgs. For details, see Guest User Record
Access Development Best Practices.
Vlocity allows guest users to create and update the records to which Sharing Rules grant
access. No additional configuration is necessary for this expanded access.
Prior to the Summer '19 release, you might have used Salesforce Sharing Settings or Sharing Sets to
secure access to DataRaptors and Integration Procedures. This approach is still supported. If you use
caching, you must set CheckCachedMetadataRecordSecurity to true as described here.
Beginning with Summer '19, you can allow access to a DataRaptor or Integration Procedure based on the
Custom Permissions enabled in a user's Salesforce Profiles or Permission Sets. An Apex class added to
your Salesforce Org allows the Vlocity Managed Package to check user Custom Permissions. The custom
settings described here are related to this approach. Vlocity recommends using Custom Permissions in
Profiles or Permission Sets for ease of use and better performance.
For Salesforce access basics, see Control Who Sees What, Who Sees What — Overview Video, and
Salesforce Data Security Model — Explained Visually. For Vlocity-specific information about Profiles, see
Overview of Profiles and Security for Vlocity.
Sharing Settings, Sharing Sets, Profiles, and Permission Sets control access to DataRaptors and
Integration Procedures as object records. To enforce field-level security in the data that DataRaptors
access, go to the DataRaptor's Options tab and select Check Field Level Security.
IMPORTANT
A user's access to a DataRaptor or Integration Procedure includes more than the ability to
run it directly. Access also applies if an application the user is using calls the DataRaptor
or Integration Procedure.
If a user has access to a parent Integration Procedure, the parent can invoke child
Integration Procedures and DataRaptors to which the user doesn’t have direct access.
For a list of settings, see DataRaptor and Integration Procedure Security Settings.
1. Go to Setup.
• In Lightning Experience, click the gear icon and select Setup from the menu.
• In Salesforce Classic, click the user menu and select Setup from the menu.
2. In the Quick Find field, enter Custom Settings.
3. Click Custom Settings.
4. Click the letter G in the index across the top.
6. Click New.
7. Enter a Name and a Value.
8. Click Save.
To configure these settings, see Configure DataRaptor and Integration Procedure Security Settings.
For DefaultRequiredPermission details, see DataRaptor and Integration Procedure Security Settings.
Integration Procedures
Vlocity Integration Procedures are declarative, server-side processes that execute multiple actions in a
single server call. Integration procedures can read and write data from Salesforce and from external
systems (using REST calls) and can call Apex code. An Integration Procedure can be called from an
OmniScript, an API, or an Apex method, and can be a data source for a Card or FlexCard.
Integration Procedures are optimal when you need to access and transform data from third-party sources
and no user interaction is required, and moving the workload from client to server is desirable.
Integration Procedures can do some things that OmniScripts can't, the most important of which is list
processing with Loop Blocks and List Merge Actions. Integration Procedures can perform more data
processing steps than DataRaptors can, and they're more flexible than Calculation Procedures.
The following diagram shows the relationship between an OmniScript and an Integration Procedure that it
calls.
See Also
For step-by-step details of how to build Integration Procedure examples, see the block and action topics
under Group Integration Procedure Steps Using Blocks and Integration Procedure Actions.
• Conditional Block — Executes the block if a specified condition is true, or treats the steps within it as a
series of mutually exclusive alternatives. This is the most basic block type.
• Cache Block — Saves the output of the steps within it to a session or org cache for quick retrieval.
• Loop Block — Repeats the steps within it for each item in an array.
• Try-Catch Block — Returns specified output or calls an Apex class if a step within it fails.
You can nest blocks within other blocks. For example, you can nest a Loop Block within a Try-Catch Block
or a Cache Block.
All blocks have one property in common: Execution Conditional Formula. If this formula evaluates to true
or is not defined, the block is executed. If it evaluates to false, the block is skipped.
To control whether an individual action executes, you set its Execution Conditional Formula to an
expression that can be evaluated as True or False. If the expression evaluates to True at run time, the step
is executed.
To conditionalize the execution of a group of actions, place them inside any block and set the Execution
Conditional Formula of the block. If the formula evaluates to True at run time, the actions in the block are
executed. If an action in a block has its own Execution Conditional Formula, it is executed only if its
formula evaluates to True at run time.
The Conditional Block is the simplest block type. Unless you check Is If Else Block, it has no inner logic. It
either executes or it doesn't according to its Execution Conditional Formula.
See Also
Property Description
Execution Conditional Specifies that the entire Conditional Block runs only if this formula evaluates to true.
Formula
Is If Else Block Specifies that all actions within the block except optionally the last have mutually exclusive Execution
Conditional Formula values. If the last action has a blank Execution Conditional Formula, it runs only if
the Execution Conditional Formula values of all the other actions evaluate to false.
See Also
"elementValueMap": {
"Output": {
"Price": "%Price%",
"State": "%State%",
"Tax": "%CalculateTax:Tax%",
"TaxRate": "%CalculateTax:TaxRate%",
"Total": "%CalculateTax:Total%"
}
},
8. Drag a Response Action after the previous component and give it the following settings:
a. Set its Element Name to Response.
b. Set the Send JSON Path to AssembleOutput:Output.
c. Set the Send JSON Node to Output.
9. Go to the Preview tab and click Edit as JSON.
10. Paste the following input into the Input Parameters panel:
{
"Price": "250",
"State": "CA"
}
11. Click Execute. The output data has the following structure:
{
"Output": {
"Price": "250",
"State": "CA",
"Tax": 21.65,
"TaxRate": 8.66,
"Total": 271.65
}
}
12. Change Price and State values, click Execute, and see how the Output values change.
See Also
It's important to allocate space in the VlocityAPIResponse cache partition and to understand how top-level
Integration Procedure caching interacts with Cache Blocks. See Cache for DataRaptors and Integration
Procedures.
A Cache Block saves the output of the steps within it to a session or org cache in the VlocityAPIResponse
cache partition for quick retrieval.
• ignoreCache — Doesn't clear or save data to the cache. The default value is true. Use this setting to
test Integration Procedure steps without the possible interference of caching effects.
• resetCache — Forces data to be saved to the cache. The default value is false. Use this setting as
part of testing caching itself.
NOTE
To test caching, be sure to set ignoreCache to false. See Create a Cache Block
Example.
You can pass ignoreCache and resetCache as parameters when you invoke an Integration Procedure that
uses caching using a REST API. For example, you can include ?resetCache=true in the URL to force
caching. See Integration Procedure Invocation Using POST.
These nodes are under the Info node for the Cache Block. For example, if the Cache Block is named
CacheBlock1, these nodes are under the CacheBlock1Info node. For example:
IntegrationProcedureService.clearSessionCache('vlcCacheKey');
IntegrationProcedureService.clearOrgCache('vlcCacheKey');
You can clear all cached data for an Integration Procedure, including session cache data, org cache data,
and metadata. Follow the instructions in this topic, but execute this line of code instead, specifying the
Integration Procedure's Type and Subtype:
IntegrationProcedureService.clearAllCache('Type_Subtype');
IntegrationProcedureService.clearOrgCache('LastNames_Cached', 'CacheContacts',
new Map<String, Object>{'ContactLastName' => 'Smith'});
The following example clears the session cache using a vlcCacheKey value:
IntegrationProcedureService.clearSessionCache('2032076016a1745801061oc');
See Also
Property Description
Salesforce Platform Specifies the cache type:
Cache Type
• Session Cache — For data related to users and their login sessions
• Org Cache — For all other types of data
Time To Live In Determines how long data remains in the cache. The minimum value is 5. Default and maximum values
Minutes depend on the cache type:
• Session Cache — The default value is 5. The maximum value is 480, equivalent to 8 hours. However, the
cache is cleared when the user's session expires.
• Org Cache — The default value is 5. The maximum value is 2880, equivalent to 48 hours.
Top-level caching overrides Cache Block caching for the duration of the top-level Time To Live In Minutes
value.
Cache Keys Configurable Key/Value pairs to be stored in the cache. Enter a Key and set the Value to the response of an
Action within the Cache Block. The value can use merge field syntax, percentage signs on either side of the
node name, to access that response. Cache keys are available, or scoped, only within the Cache Block.
Cache Block Output Configurable Key/Value pairs to be available to subsequent Integration Procedure steps. Enter a Key and set
the Value to the response of an Action within the Cache Block. The value can use merge field syntax,
percentage signs on either side of the node name, to access that response.
Refresh Cache If the formula evaluates to true, forces data to be saved to the cache.
Conditional Formula
Ignore Cache If the formula evaluates to true, neither clears nor saves data to the cache.
Conditional Formula
Add to Cache If the formula evaluates to true, saves data to the cache. If false, does not cache data.
Conditional Formula
Fail On Step Error If this box is checked in a step within the Cache Block and that step fails, no data is cached.
See Also
This Integration Procedure also includes a Loop Block; see Process Arrays Using Loop Blocks.
Property Value
Salesforce Platform Cache Type Org Cache
Time To Live In Minutes 5
Cache Keys contactId set to %ExtractContact:Contact:Id%
Property Value
Loop List names
Additional Loop Output ExtractContact set to %ExtractContact%
5. Create the DataRaptor Extract that the DataRaptor Extract Action calls, name it ExtractContactName,
and give it the following settings:
Tab Settings
Extract A Contact extract step set to Contact Name LIKE name
Output A mapping from Contact:Id to Contact:Id
If you aren't sure how to create a DataRaptor Extract, see the examples in DataRaptor Extract
Examples.
6. Drag a DataRaptor Extract Action inside the Loop Block and give it the following settings:
Property Value
Element Name ExtractContact
DataRaptor Interface ExtractContactName
Data Source names:name
Filter Value name
7. Drag a Response Action below the Loop Block and give it the following settings:
Property Value
Send JSON Path CacheBlock1
8. To test this Integration Procedure, on the Preview Tab, click Edit as JSON and provide input with the
following structure:
{
"names": [
{
"name": "Miller"
},
{
"name": "Torres"
}
]
}
11. Click Execute again. This step populates the cache, so the resulting Browser, Server, and Apex CPU
values should be similar to the previous values.
12. Click Execute a third time. This step uses the cached values, so the resulting Browser, Server, and
Apex CPU values should be noticeably less than the previous values.
13. To see the vlcCacheKey and vlcCacheResult nodes, open the Debug Log and scroll to the
CacheBlock1Info node.
See Also
• Cache Block Properties
• Enhance Performance Using Cache Blocks
The array input to the Loop Block is processed so that each iteration receives only one item in the array.
For example, suppose the array input looks like this:
{
"Products": {
"Ids": [
{
"Id": 1
},
{
"Id": 2
}
]
}
}
Each iteration of the Loop Block would receive input that looks like this:
{
"Products": {
"Ids": {
"Id": 1
}
}
}
The iteration input is the data to which Actions within the Loop Block have access.
NOTE
The Integration Procedure stops running and returns a response of { "Success":
"False" } if an Action that has Fail on Step Error checked fails.
4. Under the Loop Block property field labeled Loop Output, click Add Key/Value Pair to add Key-Value
pairs to set the response. The value field uses merge field syntax, meaning the node name of the
response set between two percentage signs, for example, %ResponseData:Names%.
5. (Optional) Add Conditional Logic to define when the Loop Block runs. For more information on
Conditional Logic, see Define Execution Logic Using Conditional Blocks.
For additional Loop Block examples, see Integration Procedure Action, Enhance Performance Using Cache
Blocks, and Cache for Top-Level Integration Procedure Data.
See Also
Property Description
Loop List Accepts a JSON node containing an array.
Loop Output Configurable Key/Value pairs to be available to subsequent Integration Procedure steps. Enter a Key and set the
Value to the response of an Action within the Loop Block. The value can use merge field syntax, percentage signs
on either side of the node name, to access that response. By default, if no Key/Value pairs are specified, a
response of { "success": "OK" } is returned for each item processed in the array.
Use this property with care. It returns the data you request for every iteration. If the Loop Block iterates 1000
times, it returns 1000 responses. This property is most useful for debugging or returning a limited dataset.
Execution Controls whether the Loop Block executes based on an expression that evaluates to true or false.
Conditional
Formula
See Also
4. A DataRaptor Extract that uses the LIKE operator to find names similar to those in the input, named
ExtractFirstNames
5. A Response Action, named ResponseAction1
{
"names": [
{
"Name": "Miller"
},
{
"Name": "Torres"
}
]
}
You can provide this input to the Integration Procedure in one of two ways:
• In the Preview tab. Click Edit as JSON and paste it into the Input Parameters area.
• In a SetValues component that you drag into the Structure panel. Click Edit as JSON and paste it
into the elementValueMap node, replacing the default node value of {}.
4. Drag a Loop Block into the Structure panel and give it the following settings:
Property Description
Loop List Set this value to names if the input is in the Preview tab, or to SetValues1:names if the input is in a
SetValues component.
Additional Loop Set the Key to DataRaptorExtractAction1 and the Value to %DataRaptorExtractAction1% to
Output return all iterations of data generated by the DataRaptor Extract Action component.
5. Create the DataRaptor Extract that the DataRaptor Extract Action calls, name it ExtractFirstName, and
give it the following settings:
Tab Settings
Extract A Contact extract step set to Contact LastName LIKE Name
Output A mapping from Contact:FirstName to Name:First
If you aren't sure how to create a DataRaptor Extract, see the examples in DataRaptor Extract
Examples.
6. Drag a DataRaptor Extract Action component within the Loop Block and give it the following settings:
Property Description
DataRaptor Interface Set this value to ExtractFirstName.
Input Parameters: Set this value to names:Name if the input is in the Preview tab, or to SetValues1:names:Name if the
input is in a SetValues component.
Data Source
Input Parameters: Set this value to Name.
Filter Value
7. Drag a Response Action below the Loop Block and check Return Full Data JSON.
8. Click Execute on the Preview tab. The output should look something like this:
{
"response": {},
"ResponseAction1Status": true,
"LoopBlock1": [
{
"DataRaptorExtractAction1": {
"Name": [
{
"Last": "Miller",
"First": “Tom”
},
{
"Last": "Miller",
"First": “Sally”
}
]
},
"DataRaptorExtractAction1Status": true,
"LoopBlockIterationStatus": true,
"LoopBlockIterationIndex": 1
},
{
"DataRaptorExtractAction1": {
"Name": [
{
"Last": "Torres",
"First": “Maria”
},
{
"Last": "Torres",
"First": “Ricardo”
}
]
},
"DataRaptorExtractAction1Status": true,
"LoopBlockIterationStatus": true,
"LoopBlockIterationIndex": 2
}
],
"LoopBlock1Status": true,
"options": {
"chainable": false
},
"names": [
{
"Name": "Miller"
},
{
"Name": "Torres"
}
]
}
See Also
• Process Arrays Using Loop Blocks
• Loop Block Properties
• Create a Loop Block Example that Creates Contacts
• Create a Loop Block Example that Concatenates List Items
{
"AccountId": "0016100001BKL4uAAH",
"Contacts": [
{
"Name": {
"First": "John",
"Last": "Doe"
}
},
{
"Name": {
"First": "June",
"Last": "Doe"
}
}
]
}
You can provide this input to the Integration Procedure in one of two ways:
• In the Preview tab. Click Edit as JSON and paste it into the Input Parameters area.
• In a SetValues component that you drag into the Structure panel. Click Edit as JSON and paste it
into the elementValueMap node, replacing the default node value of {}.
4. Drag a Loop Block into the Structure panel and give it the following settings:
Property Description
Loop List Set this value to Contacts if the input is in the Preview tab, or to SetValues1:Contacts if the input is
in a SetValues component.
Additional Loop Set the Key to CreateContact and the Value to %CreateContact% to return all iterations of data
Output generated by the DataRaptor Post Action component.
5. To create the DataRaptor Load that the DataRaptor Post Action calls, create the second example in
DataRaptor Load Examples and name it NewContactForAccount.
6. Drag a DataRaptor Post Action component within the Loop Block and give it the following settings:
Property Description
Name Set this value to CreateContact.
DataRaptor Set this value to NewContactForAccount.
Interface
Additional Input Set the first Key to AccountId and its value to %AccountId%, or to %SetValues1:AccountId% if the
input is in a SetValues component.
Set the second Key to Name and its value to %Contacts:Name%, or to %SetValues1:Contacts:Name%
if the input is in a SetValues component.
7. Drag a Delete Action component within the Loop Block and give it the following settings:
Property Description
Name Set this value to DeleteContact.
Delete SObject: Set this value to Contact.
Type
Delete SObject: Set this value to %CreateContact:Contact_1:Id%.
Path To Id
8. Drag a Response Action below the Loop Block and check Return Full Data JSON.
9. Click Execute on the Preview tab. The output should look something like this:
{
"response": {},
"ResponseAction1Status": true,
"LoopBlock1": [
{
"CreateContact": {
"ActualTime": 793,
"CpuTime": 537,
"Contact_2": [
{
"UpsertSuccess": true,
"Id": "0034N00001qh5hVQAQ",
"AccountId": "0016100001BKL4uAAH",
"LastName": "Doe",
"FirstName": "John"
}
],
"Account_1": [
{
"UpsertSuccess": true,
"Id": "0016100001BKL4uAAH"
}
],
"error": "OK",
"responseType": "SObject"
},
"DeleteContactStatus": true,
"CreateContactStatus": true,
"LoopBlockIterationStatus": true,
"LoopBlockIterationIndex": 1
},
{
"CreateContact": {
"ActualTime": 1262,
"CpuTime": 799,
"Contact_2": [
{
"UpsertSuccess": true,
"Id": "0034N00001qh5hWQAQ",
"AccountId": "0016100001BKL4uAAH",
"LastName": "Doe",
"FirstName": "June"
}
],
"Account_1": [
{
"UpsertSuccess": true,
"Id": "0016100001BKL4uAAH"
}
],
"error": "OK",
"responseType": "SObject"
},
"DeleteContactStatus": true,
"CreateContactStatus": true,
"LoopBlockIterationStatus": true,
"LoopBlockIterationIndex": 2
}
],
"LoopBlock1Status": true,
"SetValues1": {
"Contacts": [
{
"Name": {
"Last": "Doe",
"First": "John"
}
},
{
"Name": {
"Last": "Doe",
"First": "June"
}
}
],
"AccountId": "0016100001BKL4uAAH"
},
"SetValues1Status": true,
"options": {
"chainable": false
}
}
See Also
Property Description
Element Name Set this value to InitString.
Property Description
Element Value Map, Element Name Click Add New Value and assign an Element Name of Blank.
Element Value Map, Value Leave this property blank.
Response JSON Path Set this value to Blank.
Response JSON Node Set this value to ConcatString.
This component creates an initially empty top-level JSON node named ConcatString. A top-level
node isn't tied to a particular step. This allows any step to set its value. It also allows any step to
access its value using the same path, regardless of which step set its value.
4. Drag a Loop Block into the Structure panel and give it a Loop List value of QuoteLineItems:Ids.
5. Drag a Set Values component into the Loop Block and give it the following settings:
Property Description
Element Name Set this value to ConcatListItem.
Element Value Map, Click Add New Value and assign an Element Name of Concat.
Element Name
Element Value Map, Assign the following Value:
Value
=%ConcatString% + "_" + %QuoteLineItems:Ids:Id%
This formula concatenates the top-level ConcatString node and the current list value.
Response JSON Path Set this value to Concat.
Response JSON Node Set this value to ConcatString.
In combination with the Value formula, this adds the current list value to the top-level
ConcatString node.
6. Drag a Set Values component below the Loop Block and give it the following settings:
Property Description
Element Name Set this value to TrimUnderscore.
Element Value Map, Element Name Click Add New Value and assign an Element Name of Trim.
Element Value Map, Value Assign a Value of =SUBSTRING(ConcatString,1).
7. Drag a Response Action below the last Set Values component and give it the following settings:
Property Description
Send JSON Path Set this value to TrimUnderscore:Trim.
Send JSON Node Set this value to Output.
8. Go to the Preview tab and click Edit as JSON.
9. In the Input Parameters panel, provide input with the following structure:
{
"QuoteLineItems": {
"Ids": [
{
"Id": "0QL3h000000VF04GAG"
},
{
"Id": "0QL3h000000VEvlGAG"
}
]
}
}
10. Click Execute. The output should look something like this:
{
"Output": "0QL3h000000VF04GAG_0QL3h000000VEvlGAG"
}
See Also
• Process Arrays Using Loop Blocks
• Loop Block Properties
• Create a Loop Block Example that Retrieves Names
• Create a Loop Block Example that Creates Contacts
1. Drag a Try-Catch Block into the Structure panel and make sure its Fail on Block Error checkbox is
checked.
2. Configure the "catch" behavior — what the Try-Catch Block will do if a failure occurs. You can choose
one or both of these options:
• Under Failure Response, specify a key-value pair to return as the response. The value can be a
formula. In Spring '20 and later releases, the value can include merge fields.
• Under Custom Failure Response, specify a Remote Class and a Remote Method to execute an
Apex class. The Apex class must implement VlocityOpenInterface.
3. Drag substeps into the Try-Catch Block, and make sure the Fail on Step Error checkbox is checked
for each step that must trigger the "catch" behavior if it fails.
You can optionally specify a Failure Condition Formula, which evaluates to TRUE if a specific step
has failed to execute successfully.
See Also
• Try-Catch Block Properties
• Create a Try-Catch Block Example
• Create a Try-Catch Block Example with a Formula
Property Description
Fail on Block Error Specifies that if the Try-Catch Block fails, the entire Integration Procedure fails.
Failure Response A response to return if the Try-Catch Block fails. The value can be a formula.
A Try-Catch Block can have both a Failure Response and a Custom Failure Response.
Custom Failure A Remote Class and Remote Method of an Apex class to execute if the Try-Catch Block fails. The Apex class
Response must implement VlocityOpenInterface.
See Also
{
"response": {},
"ResponseAction1Status": true,
"DeleteAction1": [
{
"errors": [],
"success": true,
"id": "0034N00001rNgqqQAC"
}
],
"DeleteAction1Status": true,
"TryCatchBlock1": null,
"TryCatchBlock1Status": true,
"DataRaptorPostAction1": {
"ActualTime": 626,
"CpuTime": 345,
"Contact_1": [
{
"UpsertSuccess": true,
"Id": "0034N00001rNgqqQAC",
"LastName": "Aristotle"
}
],
"error": "OK",
"responseType": "SObject"
},
"DataRaptorPostAction1Status": true,
"options": {
"queueableChainable": false,
"ignoreCache": true,
"resetCache": false,
"chainable": false
},
"LastName": "Aristotle"
}
9. Make the Value blank and click Execute again. The output should look something like this:
{
"result": {
"failureResponse": "You must provide a last name."
},
"success": false
}
See Also
c. Click Execute.
If at least one Contact with that Name is found, the output should look something like this:
{
"response": {},
"ResponseAction1Status": true,
"TryCatchBlock1": null,
"TryCatchBlock1Status": true,
"DataRaptorExtractAction1": [
{
"ContactName": "Amy Argent"
},
{
"ContactName": "Amy Smith"
}
],
"DataRaptorExtractAction1Status": true,
"options": {
"queueableChainable": false,
"ignoreCache": true,
"resetCache": false,
"chainable": false
},
"Name": "Amy"
}
8. Change the Value to an uncommon name (or make it blank) and click Execute again. The output
should look something like this:
{
"result": {
"failureResponse": "Name Murgatroyd not found."
},
"success": false
}
See Also
To add an action, drag it from the palette into the Structure panel, then configure its properties. You can
edit, rename, move, and delete actions. You can also use blocks to group actions for conditional execution,
caching, list processing, and error handling.
For details about specific Integration Procedure actions, see the topics for the actions.
See Also
• Create an Integration Procedure
• Group Integration Procedure Steps Using Blocks
For details about the properties of specific actions, see the topics for the actions.
Property Description
Element Name Label of script element
Send JSON Path Trims the incoming JSON to the specified path before the action is executed. See Manipulate JSON with the
Send/Response Transformations Properties.
Send JSON Node Reparents the incoming JSON under the specified node. See Manipulate JSON with the Send/Response
Transformations Properties.
Response JSON After the action is executed, trims the output JSON to the specified path. See Manipulate JSON with the
Path Send/Response Transformations Properties.
Response JSON Reparents the output JSON under the specified node. To delimit the path, use colons; for example -
Node level1:level2:level3. See Manipulate JSON with the Send/Response Transformations Properties.
Send Only Additional If checked, accepts only the data in the Additional Input property.
Input
Additional Input Additional key/value pairs to be included in the input data JSON. Values can include formulas and merge
fields.
Return Only If checked, returns only the data in the Additional Output property.
Additional Output
Additional Output Additional key/value pairs to be returned in the output data JSON. Values can include formulas and merge
fields.
Send Only Failure If checked, returns only the Failure Response if the action fails.
Response
Failure Response Key/value pairs to be returned in the output data JSON if the action fails. Values can include formulas and
merge fields.
Execution Specifies a formula that runs before the step is executed. If the formula returns TRUE, the step is executed. If
Conditional Formula the formula returns FALSE, the step is not executed. If no formula is specified, the step is executed.
Property Description
Failure Conditional Specifies a custom failure condition that runs after the step is executed.
Formula
For example, if a DataRaptor Extract Action doesn't find any records, this isn't normally considered an error,
but you can use a Failure Conditional Formula to specify this condition. See the second example under
Handle Errors Using Try-Catch Blocks.
If the formula returns TRUE, execution of the step has failed and any key/value pairs configured in the Failure
Response list are added to the data JSON. For example, if the following JSON is returned:
{
"Result": {
"ErrorCode": "ERR-123",
"Success": "FALSE"
}
}
...the following settings catch the error and add the error code to the data JSON:
Set Values
The Set Values action sets values in the data JSON of an Integration Procedure literally, using merge fields,
or using formulas. This action has many uses. The example includes the most common uses.
To create the Integration Procedure, go to the Vlocity Integration Procedures tab and click New. Provide an
Integration Procedure Name, a Type, and a SubType, and click Save.
To create each component, drag a Set Values instance into the Structure panel and edit its first Element
Name property. For the last component, drag in a Response Action instead.
{
"Name": {
"FirstName": "John",
"LastName": "Smith"
},
"Finances": {
"GrossIncome": "100000",
"Expenses": "60000"
}
}
Note that the %LocationData:Code% merge field retrieves data from the previous component,
LocationData.
"elementValueMap": {
"Departments": [
"Sales",
"Development",
"Support",
"Training"
]
},
This component assigns a Department value of Development to anyone named John and a Department
value of Support to anyone not named John. Note that the second equal sign has spaces before and after
it.
"elementValueMap": {
"Output": {
"FullName": "%ConcatName:FullName%",
"Department": "%RetrieveDept:Department%",
"AfterTaxIncome": "%AfterTax:AfterTaxIncome%",
"NetIncome": "%CalculateNet:NetIncome%",
"Location": "%LocationData:Location%",
"LocationCode": "%TextWithCode:LocationCode%",
"FirstOfThisMonth": "%CalcFirstOfThisMonth:FirstOfThisMonth%"
}
},
What's Next
Test the Integration Procedure that Sets Values
See Also
• Set Values Properties
Property Description
Element Value Map: Element Name The JSON node for which value is to be set.
Element Value Map: Value The value to assign to the JSON node. Options:
See Also
• Set Values
• Common Integration Procedure Action Properties
{
"Name": {
"FirstName": "John",
"LastName": "Smith"
},
"Finances": {
"GrossIncome": "100000",
"Expenses": "60000"
}
}
4. Click Execute. The output data has the following structure:
{
"Output": {
"FullName": "John Smith",
"Department": "Development",
"AfterTaxIncome": 70000,
"NetIncome": 10000,
"Location": "San Francisco",
"LocationCode": "Code is 2345",
"FirstOfThisMonth": "2020-02-01"
}
}
See Also
• Set Values
Assert Action
The Assert Action compares the expected and actual results of a Test Procedure using an expression that
evaluates to true or false. You can use environment variables in the Assert Conditional Formula to test
performance.
See Also
Property Description
Assert Conditional Expression that tests results of previous steps and evaluates to true or false. If the result is false, the
Formula assertResult for the Assert Action is set to false. This sets the testResult for the Test Procedure to
failed.
Property Description
Assert Failure Message that explains why the test failed.
Message
Fail Test On Assert If checked, the Test Procedure stops and returns the result of the transaction if the Assert Conditional
Formula evaluates to false.
If not checked, the Test Procedure continues running even if the Assert Conditional Formula evaluates to
false.
See Also
• Assert Action
• Common Integration Procedure Action Properties
• Test Procedures: Integration Procedures for Unit Testing
• Environment Variables in DataRaptors and Integration Procedures
Batch Action
The Batch Action runs a Vlocity Scheduled Job with a Data Source Type of Data Input, Query, List Input,
or No Input. A Vlocity scheduled job calls either another Integration Procedure or a
VlocityOpenInterface.
NOTE
Batch Actions aren't supported in the Summer '21 release.
The format of the input that the Scheduled Job sends to the Integration Procedure or
VlocityOpenInterface it invokes differs based on the Is Input As List and Batch Size job fields. The
original input to the Batch Action is passed in under a vlcInputMap JSON node.
For example, suppose the job has a Data Source Type of Query and a query that selects Accounts. And
suppose in the Batch Action's input you specify a Key of CompanyName and a Value of Acme. If Is Input As
List is not checked in the job configuration, the input that the Scheduled Job sends looks like this:
If Is Input As List is checked and the Batch Size is 1 in the job configuration, the input looks like this, with
a records node for the list:
If Is Input As List is checked and the Batch Size is 2, the input looks like this, again with a records node
for the list:
If the Data Source Type is List Input, see the following example for an explanation of the input that the
Scheduled Job sends to the Integration Procedure.
TIP
If the Data Source Type is set to List Input or if Is Input As List is checked, the input
must be in list format even if the list contains only one item. DataRaptor Extracts that
return a list with one item often convert it to a single object. To convert a single object back
into a list, you can use the first example in DataRaptor Transform Examples.
The Integration Procedure doesn't wait for the job that its Batch Action calls to finish. However, the Batch
Action returns the Id of the Apex batch job in the ApexJobId node of the Integration Procedure's output
JSON.
See Also
Property Description
Select Scheduled Job Specifies the job to run. Only active jobs are listed.
Input List Key For invoking a Vlocity Scheduled Job with a Data Source Type of List Input. Specifies the JSON node in the
input that contains the list.
See Also
• Batch Action
1. Create a DataRaptor Load that creates new Contacts for an existing Account.
To perform the first step, create the second example under DataRaptor Load Examples and name it
NewContactForAccount.
2. Create the Integration Procedure to Be Invoked. This Integration Procedure calls the DataRaptor Load.
3. Create the Vlocity Scheduled Job that Invokes the Integration Procedure you just created.
4. Create the Integration Procedure that Invokes the Vlocity Scheduled Job.
5. Test the Integration Procedure that Invokes the Vlocity Scheduled Job.
See Also
• Batch Action
• Batch Action Properties
• Batch Jobs for Integration Procedures and Vlocity Open Interfaces
• Vlocity Scheduled Job Fields
Setting Value
Integration Procedure Name CreateContactsForAccount
Type Documentation
SubType CreateContactsForAccount
3. Click Save.
4. Drag a DataRaptor Post Action component into the Structure panel.
5. Set the DataRaptor Interface to NewContactForAccount.
6. Check Send Only Additional Input.
7. Under Additional Input, click Add Key/Value Pair. Specify a Key of AccountId and
a Value of %vlcInputMap:AccountId%.
You must include the vlcInputMap node because the AccountId isn't part of the input list.
8. Click Add Key/Value Pair again. Specify a Key of Name and a Value of %Name%.
You don't include the vlcInputMap node because the Name is an item in the input list.
9. Drag a Response Action component into the Structure panel below the DataRaptor Post Action and
check Return Full Data JSON.
What's Next
Create the Vlocity Scheduled Job that Invokes the Integration Procedure
See Also
Create the Vlocity Scheduled Job that Invokes the Integration Procedure
The third step in creating the Batch Action example is to create the Vlocity Scheduled Job that invokes the
Integration Procedure.
Setting Value
Name Run DR Load
Active (checked)
Batch Size 2
Data Source Type List Input
Frequency Hourly
(A Frequency value isn't required if you invoke a Scheduled Job using a Batch Action, but it is required if
you run the job by itself.)
Job Queue Low
Process Name Documentation_CreateContactsForAccount
Process Type Integration Procedure
Email Address List (your email)
Send Email On Finish
3. Click Save.
What's Next
Create the Integration Procedure that Invokes the Vlocity Scheduled Job
See Also
Create the Integration Procedure that Invokes the Vlocity Scheduled Job
The fourth step in creating the Batch Action example is to create the Integration Procedure that invokes the
Vlocity Scheduled Job.
2. Provide an Integration Procedure Name, a Type, and a SubType, and click Save.
3. Drag a Batch Action component into the Structure panel.
4. Set Select Scheduled Job to Run DR Load.
5. Set the Input List Key to Contacts.
6. Under Additional Input, click Add Key/Value Pair. Specify a Key of AccountId and
a Value of %AccountId%.
7. Drag a Response Action component into the Structure panel below the Batch Action and check Return
Full Data JSON.
What's Next
Test the Integration Procedure that Invokes the Vlocity Scheduled Job
See Also
• Workflow for Batch Action Example
Test the Integration Procedure that Invokes the Vlocity Scheduled Job
The fifth and final step in creating the Batch Action example is to test the Integration Procedure that invokes
the Vlocity Scheduled Job.
{
"AccountId": "0016100001BKL4uAAH",
"Contacts": [
{
"Name": {
"First": "John",
"Last": "Doe"
}
},
{
"Name": {
"First": "June",
"Last": "Doe"
}
}
]
}
3. Click Execute.
The Scheduled Job calls the Integration Procedure twice. The first time, the job sends this input:
{"Name":{"First":"John","Last":"Doe"},"vlcInputMap":
{"AccountId":"0016100001BKL4uAAH","Contacts":[{"Name":
{"First":"John","Last":"Doe"}},{"Name":{"First":"June","Last":"Doe"}}]}}
Note that the first list item is extracted and listed separately from the full Batch Action input under the
vlcInputMap node.
The second time, the job sends this input:
{"Name":{"First":"June","Last":"Doe"},"vlcInputMap":
{"AccountId":"0016100001BKL4uAAH","Contacts":[{"Name":
{"First":"John","Last":"Doe"}},{"Name":{"First":"June","Last":"Doe"}}]}}
See Also
Calculation Action
A Calculation Action invokes the specified calculation procedure and returns the results to the Integration
Procedure.
See Also
Property Description
Remote Class Set to namespace.PricingMatrixCalculationService, where namespace is vlocity_cmt,
vlocity_ins, or vlocity_ps.
Remote Method Set to calculate.
Configuration Name Set to the calculation procedure name.
Remote Options: (Optional) Set to true to include the calculation procedure input in the calculation procedure output,
includeInputs which is useful for building pricing data.
See Also
• Calculation Action
• Common Integration Procedure Action Properties
See Also
• Calculation Action
• Calculation Action Properties
13. Click Save Calculation Procedure. In the Save successful pop-up, click OK.
14. Scroll to the top. If you don't see the Enabled checkbox, click Edit.
15. Click the pencil icon to the right of the Enabled checkbox and check the box.
16. Click Save.
17. (Optional) Click the Simulation or Simulate tab and test the calculation procedure.
What's Next
Create the Integration Procedure That Invokes the Calculation Procedure
See Also
• Calculation Action
• Workflow for Calculation Action Example
Property Value
Send JSON Path CalculationAction1:output:calculationResults:QuoteAmountAdjusted
Send JSON Node QuoteAmount
6. Go to the Preview tab and click Edit as JSON.
7. In the Input Parameters panel, provide the following input:
{
"Input": {
"GPA": "3.5",
"Birthdate": "01/01/2000",
"QuoteAmount": "1000"
}
}
8. Click Execute. The output should look like this:
{
"QuoteAmount": 850
}
9. Set the Age and GPA to different values, click Execute, and observe the results.
See Also
• Calculation Action
• Workflow for Calculation Action Example
Chatter Action
The Chatter Action creates a Chatter post and sends it to a Chatter feed.
See Also
To obtain the Id for the Mentioned User Id, Subject Id, Image Id, or File Id property, go to the object's
record page and select the Id from the URL.
Property Description
Community Id Id of the Community to which to post.
Mentioned User Id User Id to mention in the post. Can be a single value or a JSON list.
Markup Type Leave blank or select Bold, Italic, or Underline to determine the style of the Text property.
Subject Id (Required) Id of the object that has the Chatter feed. Can be any object that supports Chatter feeds, such as
Account, Contact, User, or Group.
Image Id Id of a File object to be used as an image for the post. Can be a single value or a JSON list.
File Id Id of a File object to be included as an attachment to the post. Can be a single value or a JSON list.
Text Text of the post. Can include merge fields and HTML markup.
See Also
• Chatter Action
• Common Integration Procedure Action Properties
• Find the Id of a Community
1. In Lightning Experience, click the gear icon. In Salesforce Classic, click the user menu. In either case,
select Developer Console from the menu.
2. Click the Query Editor tab near the bottom of the Developer Console window.
3. Enter the following query in the Query Editor pane:
The Ids and Names of all the Communities in the org are listed.
4. Find the Name of the Community, then copy its Id.
See Also
• Chatter Action
• Chatter Action Properties
What's Next
Create the Integration Procedure with the Chatter Action
See Also
• Chatter Action
• Workflow for Chatter Action Example
Property Value
Subject Id %SubjectId%
Mentioned User Id %UserIdList%
Image Id %ImageId%
Markup Type Italic
Text Here is the picture I mentioned. It has the Id %ImageId%.
4. Drag a Response Action into the Structure panel and check Return Full Data JSON.
5. Go to the Preview tab. Click Edit as JSON.
6. Paste JSON with this structure into the Input Parameters pane, substituting the Ids you collected in the
first set of steps:
{
"ImageId": "06961000005R9q1AAC",
"UserIdList": [
"0054N0000041jEvQAI",
"0054N0000041qUlQAI"
],
"SubjectId": "00561000000hjm3AAA"
}
7. Click Execute.
8. Go back to the People tab, then to the record page of the user you chose to receive the Chatter post.
9. Scroll down to the Chatter pane and click the Refresh icon to see the latest Chatter post.
See Also
• Chatter Action
• Workflow for Chatter Action Example
For Integration Procedure examples that include at least one DataRaptor Extract Action, see Process
Arrays Using Loop Blocks and Handle Errors Using Try-Catch Blocks.
See Also
Property Description
DataRaptor Interface Name of DataRaptor Extract to run
DataRaptor Input Parameters: Data Source Name of data JSON node containing value to filter on
DataRaptor Input Parameters: Filter Value Value to match to qualify as an input parameter
Ignore Cache Disables caching in the DataRaptor Extract.
See Also
For Integration Procedure examples that include at least one DataRaptor Post Action, see Process Arrays
Using Loop Blocks and Handle Errors Using Try-Catch Blocks.
Although a DataRaptor post action primarily creates or updates sObjects, it also produces JSON output,
which you can view in the Debug log on the Preview tab. This is important when subsequent Integration
Procedure steps need to reference the sObjects.
In the JSON response returned by a DataRaptor post, node names are appended with the sequence
number of the DataRaptor step that created them. For example:
{
"Contact_1": [{
"Id": "0036A000002PeaAQAS",
"LastName": "Smith",
"UpsertSuccess": true
}],
"Attachment_2": [{
"Id": "00P6A000000EJ3RUAW",
"Name": "angular-route.min.js",
"ParentId": "0036A000002PeaAQAS",
"UpsertSuccess": true
}]
}
If the DataRaptor name is CreateContact, you can reference the Id of Contact_1 in the example using the
merge field %CreateContact:Contact_1:Id%.
See Also
Property Description
DataRaptor Interface Name of DataRaptor post to run.
See Also
See Also
Property Description
DataRaptor Interface Name of the DataRaptor transform to run.
Ignore Cache Disables caching in the DataRaptor Transform.
See Also
1. Create the DataRaptor Transform example described in Use Formulas in DataRaptors and name it
DRFormula1.
Property Value
DataRaptor Interface DRFormula1
Send JSON Path Input
5. Drag a Response Action component into the Structure panel below the DataRaptor Transform Action
and give it the following settings:
Property Value
Send JSON Path DataRaptorTransformAction1:TotalPrice
{
"Input": {
"CustomerName": "Bob Smith",
"Products": [
{
"Name": "iPhone",
"Price": 600
},
{
"Name": "iPhone Case",
"Price": 30
},
{
"Name": "Ear Buds",
"Price": 200
}
]
}
}
Note that this is the same as the input for the DataRaptor Transform except that the entire structure is
wrapped in an Input node, which matches the Send JSON Path value of the DataRaptor Transform
Action.
8. Click Execute. The output should look like this:
{
"TotalPrice": 830
}
9. In the Input pane, change one or more of the prices, then click Execute again.
Note how the TotalPrice value changes.
See Also
The DataRaptor Turbo Action is exactly the same as the DataRaptor Extract Action in how it works. The
only difference is the type of DataRaptors the DataRaptor Interface property lists. For Integration
Procedure examples that include at least one DataRaptor Extract Action, see Process Arrays Using Loop
Blocks and Handle Errors Using Try-Catch Blocks.
See Also
Property Description
DataRaptor Interface Name of DataRaptor Turbo Extract to run
DataRaptor Input Parameters: Data Source Name of data JSON node containing value to filter on
DataRaptor Input Parameters: Filter Value Value to match to qualify as an input parameter
Ignore Cache Disables caching in the DataRaptor Turbo Extract.
See Also
Delete Action
Enable users to delete one or more sObject records by using the Delete Action. Use an Object's Record Id
to determine which record to delete. Vlocity recommends using a merge field in the Path to Id field that
refers to an Id or a list of Ids in the data JSON.
1. Preview the OmniScript and identify the JSON path for the record. For example, this data JSON
contains a list of Accounts:
For Integration Procedure examples that include a Delete Action, see Process Arrays Using Loop Blocks
and Handle Errors Using Try-Catch Blocks.
Property Description
Type Type of sObject record to delete. For example, Account is a Type of sObject.
Path to Id Path to the JSON node that contains the Id or list of Ids of the records to delete. Supports merge
syntax.
All Or None When checked, the operation fails if any of the records are not deleted.
Entity Is Deleted Message Message that displays when a record is deleted.
Delete Failed Message Message that displays when the action fails to delete a record.
Invalid Id Message Message that displays when an invalid Id is sent to the Delete Action.
Configuration Error Message Message that displays when the Delete Action has a configuration error.
Confirm Controls whether the modal displays.
Confirmation Dialog Message The Confirmation Modal's message text. The default message text is Are you sure? This
action cannot be undone.
Confirm Label Button label for the Confirmation Modal's confirm action.
Cancel Label Button label for the Confirmation Modal's cancel action.
Related Topics
See Also
Property Description
DocuSign Templates Templates for the documents you want signed. See Preparing a DocuSign Template for OmniScript.
Recipients After you add a template, specify the Signer Name, Signer Email, and Template Role for each recipient.
Signer Name and Signer Email support merge fields. Template roles are configured during template setup.
Email Subject Subject line for the email requesting signatures.
Email Body Body text for the email requesting signatures.
Date and Time Formats Specify the format for display of date and time values. (More information)
See Also
Email Action
An Email Action sends the specified email. You can either specify all the email field values or use a
Salesforce email template.
See Also
Many of the properties support either literal values or merge fields, which let you pass in an input or a value
from another step.
Property Description
Use Template If checked, uses a Salesforce email template. Also determines which other properties are available.
To Email Address List Specifies the recipients in the TO field of the email. Click Add Recipient to add each email address. Can
accept an array of up to 100 addresses.
Property Description
Email Subject Specifies the email subject line.
See Also
• Email Action
• Common Integration Procedure Action Properties
Property Value
TO EMAIL ADDRESS LIST %email%
Email Subject %subject%
Email Body %message%
6. Go to the Preview tab and click Add New Key/Value Pair three times. Specify the following input
parameters:
Key Value
email (your email address)
subject Test Email
message This is a test.
If you prefer to specify JSON input, click Edit as JSON and paste in this code, substituting your email:
{
"email": "[email protected]",
"subject": "Test Email",
"message": "This is a test."
}
7. Click Execute. You should receive a Test Email from your org in a few minutes.
See Also
• Email Action
• Email Action Properties
• Workflow for Email Action Example with Template
See Also
• Email Action
• Email Action Properties
• Create an Email Action Example with Specified Fields
What's Next
Select an Email Recipient
See Also
• Email Action
• Email Action Properties
• Workflow for Email Action Example with Template
What's Next
Create the Integration Procedure with the Email Action
See Also
• Email Action
• Email Action Properties
• Workflow for Email Action Example with Template
2. Provide an Integration Procedure Name, a Type, and a SubType, and click Save.
3. Drag an Email Action component into the Structure panel.
4. Make sure the Use Template box is checked.
5. Copy the Email Template Id into the Select Email Template field.
6. A drop-down list appears with an item that looks like this: Simple_Email_Template_1580943234381.
Select the list item. The list item replaces the Id in the field.
7. In the Email Target Object Id field, type %contact%.
8. Check the Save As Activity box.
What's Next
Test the Integration Procedure with the Email Action
See Also
• Email Action
• Email Action Properties
• Workflow for Email Action Example with Template
5. If the Contact record page doesn't include an Activities component, you can add one:
a. If you're using Salesforce Classic, click Switch to Lightning Experience.
b. Click the gear icon and select Edit Page.
c. Drag an Activities component from the list on the left onto the page canvas.
d. Click Save, then click Back to return to the Contact's page.
The Activities component appears on the Contact's page and lists the email you sent.
See Also
• Email Action
• Email Action Properties
• Create an Email Action Example with Specified Fields
HTTP Action
The HTTP Action executes a REST call and returns its results to the Integration Procedure.
See Also
Property Description
HTTP Path URL to call. For Apex REST actions, you can use merge fields to set this property.
NOTE
Beginning with Vlocity Spring '19, you can pass percentage signs in the URL by
replacing the percentage sign in the Path with the variable $Vlocity.Percent.
For example:
%stepName + 'Status'%
Retry Count Number of times to retry action when it fails
XML Escape Enable to remove XML escapes from an XML response.
Response
See Also
• HTTP Action
• Common Integration Procedure Action Properties
See Also
• HTTP Action
• HTTP Action Properties
1. From Setup, in the Quick Find box, type remote, then click Remote Site Settings.
2. Click New Remote Site.
3. For the Remote Site Name, enter NASA.
4. For the Remote Site URL, enter https://api.nasa.gov.
5. Click Save.
What's Next
Get an API Key from NASA
See Also
• HTTP Action
• HTTP Action Properties
• Workflow for HTTP Action Example
1. Go to https://api.nasa.gov.
2. Enter your First Name, Last Name, and Email, then click Signup.
3. Copy the the response and save it to a text file. It looks something like this:
You can start using this key to make web service requests. Simply pass
your key in the URL when making a web request. Here's an example:
https://api.nasa.gov/planetary/apod?
api_key=YbbMNWeWX2BqxoPKXEiWWcKMgNlUHhHXgqWG5XBt
For additional support, please contact us. When contacting us, please tell
us what API you're accessing and provide the following account details so
we can quickly find you:
You will need your API key to run the Integration Procedure.
4. (Optional) To see the types of data you can retrieve from NASA, click Browse APIs.
What's Next
Create the Integration Procedure with the HTTP Action
See Also
• HTTP Action
• HTTP Action Properties
• Workflow for HTTP Action Example
{
"PictureInfo": {
"url": "https://apod.nasa.gov/apod/image/2006/Eclipse-under-
bamboos1024c.jpg",
"title": "Eclipse under the Bamboo",
"service_version": "v1",
"media_type": "image",
"hdurl": "https://apod.nasa.gov/apod/image/2006/Eclipse-under-
bamboos.jpg",
"explanation": "Want to watch a solar eclipse safely? Try looking down
instead of up, though you might discover you have a plethora of images to
choose from. For example, during the June 21st solar eclipse this
confusing display appeared under a shady bamboo grove in Pune, India.
Small gaps between close knit leaves on the tall plants effectively
created a network of randomly placed pinholes. Each one projected a
separate image of the eclipsed Sun. The snapshot was taken close to the
time of maximum eclipse in Pune when the Moon covered about 60 percent of
the Sun's diameter. But an annular eclipse, the Moon in silhouette
completely surrounded by a bright solar disk at maximum, could be seen
along a narrow path where the Moon's dark shadow crossed central Africa,
south Asia, and Ch",
"date": "2020-06-26",
"copyright": "Somak Raychaudhury"
}
}
8. (Optional) Paste the url or hdurl value into your browser and view the picture.
See Also
• HTTP Action
• HTTP Action Properties
• Workflow for HTTP Action Example
To specify that the subordinate Integration Procedure runs asynchronously, as a Salesforce future method
(which can return no data to the calling Integration Procedure), select Remote Options and enter
useFuture: as a key and true as its value. When you run the Integration Procedure, you can see the future
call in the debug log. To pass in data as key/value pairs, use the Additional Input property.
See Also
Property Description
Integration Procedure Specifies the Integration Procedure to be run in the format Type_Subtype.
Disable Chainable If checked, disables the Chainable settings of the subordinate Integration Procedure. Doesn't affect the
Queueable settings. Unchecked by default.
Property Description
Additional Input Specifies additional data for the Integration Procedure as key/value pairs.
See Also
Together the parent and child Integration Procedures transform this input:
{
"InputList": [
{
"Key": "serial_number",
"Value": "ABC1234"
},
{
"Key": "install_date",
"Value": "20200101"
}
]
}
To this output:
{
"OutputList": [
{
"serial_number": "ABC1234"
},
{
"install_date": "20200101"
}
]
}
See Also
Setting Value
Integration Procedure Name ValueToKey
Type Documentation
SubType ValueToKey
3. Click Save.
4. Drag a Response Action into the Structure panel and give it the following settings:
Setting Value
Send JSON Path Value
Send JSON Node %Key%
What's Next
Create the Parent Integration Procedure
See Also
Setting Value
Loop List InputList
Additional Loop Output IntegrationProcedureAction1 set to %IntegrationProcedureAction1%
4. Drag an Integration Procedure Action within the Loop Block and give it the following settings:
Setting Value
Integration Procedure Documentation_ValueToKey
Send JSON Path InputList
5. Drag a Response Action below the Loop Block and give it the following settings:
Setting Value
Send JSON Path LoopBlock1:IntegrationProcedureAction1
Send JSON Node OutputList
6. Go to the Preview tab.
7. Click Edit as JSON.
8. In the Input Parameters panel, provide input with the following structure:
{
"InputList": [
{
"Key": "serial_number",
"Value": "ABC1234"
},
{
"Key": "install_date",
"Value": "20200101"
}
]
}
9. Click Execute. The output should look something like this:
{
"OutputList": [
{
"serial_number": "ABC1234"
},
{
"install_date": "20200101"
}
]
}
See Also
Intelligence Action
The Intelligence Action provides input to and runs a Vlocity Intelligence Machine.
For Vlocity Intelligence information, see Vlocity Intelligence. For general property information, see Common
Integration Procedure Action Properties.
Property Description
Machine Developer Specifies the name of the Intelligence Machine.
Name
Input Data Specifies values for the Input Parameters of the Intelligence Machine. Typically these are:
• ContextId — The Id of the person to whom the Intelligence Resources are directed. This is typically a
Contact, but it can be any sObject that supports Profile Attributes.
• pageSize — The number of Intelligence Resources to present to the person. This is optional. The default is
2.
Items to Rank Path Specifies the JSON path to the list of Intelligence Resources that the Intelligence Machine can offer the user.
This is optional. By default all applicable Intelligence Resources are presented.
• Click here for the Intelligence Machine, Intelligence Resource, Attribute Category, and Attribute
• Click here for the DataRaptor Load
• Click here for the Integration Procedure
The following example presents a discount coupon to Gold Star Accounts. The high-level steps to build this
example are:
To perform the first two steps above, see the third example in DataRaptor Load Examples.
IMPORTANT
Be sure to Preview the DataRaptor Load with a GoldStarAcct value of On and save the
Account Id you use. You will need this Id to test the Integration Procedure.
5. Select Discount Coupon from the list and click the + icon to add it.
6. Go to the WEIGHTINGS tab.
7. Click in the Select a Category field and select AccountLevel from the list.
8. Use the sliders to assign the following activity weights: View 80, Accept 60, Reject 40, Decay 20.
[
{
"targetObjectType": null,
"targetObjectKey": null,
"virtualResourceId": null,
"virtualResourceData": null,
"rejectLast": null,
"rejectDecay": 0,
"acceptLast": null,
"acceptDecay": 0,
"viewLast": null,
"viewDecay": 0,
"currentMachine": "Gold Star Offers",
"contextId": "0016g00000BtNb1AAF",
"info": null,
"attachment": {
"DiscountCoupon": "00P6g000002TJnlEAG"
},
"scaledRawScore": 0,
"formattedAggregatedScore": 0,
"aggregatedScore": 0,
"componentScores": [
{
"scoreParameters": [],
"scaledScore": 0,
"normalizedScore": 0,
"rawMaxScore": 0,
"rawMinScore": 0,
"scaledRawScore": 0,
"rawMultiplier": 1,
"rawScore": 0,
"scoringComponentName": "VqScoringImplProfileMatch"
}
],
"resource": {
"vlocity_ins__IsActive__c": true,
"vlocity_ins__Headline__c": "Discount Coupon",
"vlocity_ins__EffectiveDate__c": "2020-02-10T08:00:00.000Z",
"SystemModstamp": "2020-02-11T22:07:37.000Z",
"LastModifiedById": "0056g000003eBMaAAM",
"LastModifiedDate": "2020-02-11T22:07:37.000Z",
"CreatedById": "0056g000003eBMaAAM",
"CreatedDate": "2020-02-11T22:07:23.000Z",
"Name": "Discount Coupon",
"IsDeleted": false,
"OwnerId": "0056g000003eBMaAAM",
"Id": "a5o6g000000MOd5AAG"
}
}
]
TIP
The inputs to a List Merge Action must each be in list format even if the list contains only
one item. DataRaptor Extracts that return a list with one item often convert it to a single
object. To convert a single object back into a list, you can use the first example in
DataRaptor Transform Examples.
For more list processing options, see List Input for DataRaptors and the AVG, FILTER, IF, LIST,
LISTMERGE, LISTMERGEPRIMARY, LISTSIZE, MAX, MIN, SORTBY, and SUM functions in the Function
Reference.
To match nodes that have different names and/or reside at different levels in the incoming lists, click
Advanced Merge and specify settings for the nodes to be matched, as follows:
• List Key: Enter the name of the JSON list node where the node to be matched resides.
• Matching Path: Enter the path within the list to the node to be matched.
• Matching Group: Specify the same number for all nodes you want to match.
NOTE
Older versions have a Normalize Key setting instead of a Matching Group setting, and
you must specify the same key for each matching node. This key is only for matching and
doesn't appear in the output.
For example, the following figure shows how to match first and last names from two incoming lists in which
the nodes have different names.
See Also
Property Description
Merge Lists Specifies the order in which lists are merged. If a list contains a value for a key that was populated by an earlier
Order list, the later entry overwrites the earlier one.
Property Description
Merge Fields The name of the JSON nodes that must match for entries to be merged. To specify nodes below the top level of the
JSON structure, use colon-delimited paths. By default, the nodes in both lists are assumed to have identical names
and reside at the same level. If you do not specify merge fields, the lists are merged into a single list but nodes with
matching keys are not merged. To match a value that resides in a JSON list, append |index to its path. For
example, to match value1 in the list2 list below, specify list1:node1:node2:list2|1 as the merge field.
{
"list1": {
"node1": {
"node2": {
"list2": [
"value1",
"value2"
]
}
}
}
}
Advanced Matches nodes that have different names and/or reside at different levels in the incoming lists. See List Merge
Merge Action.
NULL is a Valid When merge fields are all null, specifies whether to treat them as matching.
Matching Value
when Merging
Has Primary Lets you specify an allowlist of keys to be retained in the output.
Primary List (Optional) Allows the list of entries to be retained after the merge is performed. If you specify a primary list, only
Key entries from that list are retained in the output.
Filter List Specifies a formula that is run on each node of the list to determine if it remains in the list. If FormulaResult returns
Formula TRUE after evaluating a node, the node is retained; otherwise the node is removed. For example, you can specify
nodename != "" to remove null values from a list.
Dynamic Output By default, all nodes are returned. To return a specified subset of the result nodes, add a node to the input JSON
Fields and set its value to a comma-separated list of the desired node names. Do not use spaces in this list. Set this
property to the name of the node containing this list of node names.
Sort By Specifies one or more keys on which the output list is sorted.
Update Field Enables you to assign a value or specify a formula that can evaluate and conditionally replace values in the output
Value list. To specify a formula, precede the expression with "=". For example, to replace blank first or last names with
"None Specified," add the entries shown in the following figure.
See Also
See Also
• List Merge Action
• List Merge Action Properties
1. Create the DataRaptor Extract that the DRExtractAddresses component calls. Name it GetAddresses
and give it the following settings:
Tab Settings
Extract A Contact extract step set to contact AccountId = id
Output The following mappings:
• contact:Id to contact:id
• contact:FirstName to contact:firstName
• contact:LastName to contact:lastName
• contact:MailingStreet to contact:street
• contact:MailingCity to contact:city
• contact:MailingState to contact:state
If you aren't sure how to create a DataRaptor Extract, see the examples in DataRaptor Extract
Examples.
2. Create the DataRaptor Extract that the DRExtractBirthdates component calls:
a. Clone the GetAddresses DataRaptor and name the clone GetBirthdates.
b. On the Output tab, delete the city, state, and street mappings.
c. Add a mapping from contact:Birthdate to contact:birthdate.
3. From the Vlocity Integration Procedures tab, click New.
4. Provide an Integration Procedure Name, a Type, and a SubType, and click Save.
5. Drag the first DataRaptor Extract Action component into the Structure panel. Give it an Element Name
of DRExtractAddresses and a DataRaptor Interface of GetAddresses.
6. Drag the second DataRaptor Extract Action component into the Structure panel below the first. Give it
an Element Name of DRExtractBirthdates and a DataRaptor Interface of GetBirthdates.
7. Drag a List Merge Action component into the Structure panel below the second DataRaptor Extract
Action component. Give it the following settings:
Setting Values
MERGE LISTS ORDER DRExtractAddresses:contact
DRExtractBirthdates:contact
MERGE FIELDS id
SORT BY lastName
firstName
8. Drag a Response Action component below all the others. Give it a Send JSON Path of ListAction1
and a Send JSON Node of contactMerge.
9. On the Preview tab, in the Input Parameters pane, click Add New Key/Value Pair. Enter id as
the Key and an Account Id from your org as the Value.
10. Click Execute. The output should look something like this:
{
"contactMerge": [
{
"birthdate": "1975-10-03",
"street": "300 Broadway",
"state": "FL",
"city": "Orlando",
"lastName": "Jones",
"id": "0036100001E5xrWAAR",
"firstName": "Cathy"
},
{
"birthdate": "1976-10-04",
"street": "400 Washington Blvd",
"state": "AZ",
"city": "Phoenix",
"lastName": "Jones",
"id": "0036100001E5xrvAAB",
"firstName": "Doug"
},
{
"birthdate": "1973-10-01",
"street": "100 Main Street",
"state": "CA",
"city": "San Francisco",
"lastName": "Smith",
"id": "0036100001E5xqnAAB",
"firstName": "Albert"
},
{
"birthdate": "1974-10-02",
"street": "200 Second Street",
"state": "OR",
"city": "Portland",
"lastName": "Smith",
"id": "0036100001E5xr2AAB",
"firstName": "Ben"
}
]
}
What's Next
Create an Advanced List Merge Example
See Also
{
"contactMerge": [
{
"LN": "Jones",
"FN": "Cathy",
"birthdate": "1975-10-03",
"street": "300 Broadway",
"state": "FL",
"city": "Orlando",
"lastName": "Jones",
"id": "0036100001E5xrWAAR",
"firstName": "Cathy"
},
{
"LN": "Jones",
"FN": "Doug",
"birthdate": "1976-10-04",
"street": "400 Washington Blvd",
"state": "AZ",
"city": "Phoenix",
"lastName": "Jones",
"id": "0036100001E5xrvAAB",
"firstName": "Doug"
},
{
"LN": "Smith",
"FN": "Albert",
"birthdate": "1973-10-01",
"street": "100 Main Street",
"state": "CA",
"city": "San Francisco",
"lastName": "Smith",
"id": "0036100001E5xqnAAB",
"firstName": "Albert"
},
{
"LN": "Smith",
"FN": "Ben",
"birthdate": "1974-10-02",
"street": "200 Second Street",
"state": "OR",
"city": "Portland",
"lastName": "Smith",
"id": "0036100001E5xr2AAB",
"firstName": "Ben"
}
]
}
What's Next
Create a List Merge Example with Dynamic Output Fields
See Also
{
"contactMerge": [
{
"birthdate": "1975-10-03",
"street": "300 Broadway",
"state": "FL",
"city": "Orlando",
"lastName": "Jones",
"id": "0036100001E5xrWAAR",
"firstName": "Cathy"
},
{
"birthdate": "1976-10-04",
"street": "400 Washington Blvd",
"state": "AZ",
"city": "Phoenix",
"lastName": "Jones",
"id": "0036100001E5xrvAAB",
"firstName": "Doug"
},
{
"birthdate": "1973-10-01",
"street": "100 Main Street",
"state": "CA",
"city": "San Francisco",
"lastName": "Smith",
"id": "0036100001E5xqnAAB",
"firstName": "Albert"
},
{
"birthdate": "1974-10-02",
"street": "200 Second Street",
"state": "OR",
"city": "Portland",
"lastName": "Smith",
"id": "0036100001E5xr2AAB",
"firstName": "Ben"
}
]
}
See Also
Matrix Action
The Matrix Action calls a calculation matrix with specified inputs and returns the result to the Integration
Procedure.
See Also
Property Description
Matrix Input Parameters: Data Source Name of a data JSON node in the Integration Procedure that contains a value to pass to the
calculation matrix
Matrix Input Parameters: Filter Value Name of the corresponding calculation matrix input parameter that accepts the value
Matrix Name Calculation matrix name
Remote Options Additional options to pass to the calculation matrix
Default Matrix Result Value to return if the calculation matrix returns null
See Also
• Matrix Action
• Workflow for Matrix Action Example
• Common Integration Procedure Action Properties
See Also
• Matrix Action
• Matrix Action Properties
For details about how number ranges work, see Numeric Ranges in Calculation Matrices.
10. Click Save Data again.
11. Click the pencil icon to the right of the Enabled checkbox and check the box.
12. If the Priority setting has no value, enter a value of 1.
13. Click Save. The finished matrix version looks like this:
What's Next
Create the Integration Procedure That Invokes the Calculation Matrix
See Also
• Matrix Action
• Workflow for Matrix Action Example
• Create a Calculation Matrix Manually
Property Value
Send JSON Path MatrixAction1:Qualified
Send JSON Node Qualified
7. Go to the Preview tab.
Key Value
Age 23
GPA 3.2
9. Click Execute. The output should look like this:
{
"Qualified": "true"
}
10. Set the Age and GPA to different values, click Execute, and observe the results.
See Also
• Matrix Action
• Workflow for Matrix Action Example
OmniForm Action
The OmniForm Action launches the specified OmniForm.
For pre-processing actions to be executed before the OmniForm is displayed, add one or more Integration
Procedure steps before the step that contains the OmniForm. For post-processing, add a single Integration
Procedure step following the OmniForm step. The post-processing step is executed when the user clicks
Submit.
Property Description
Type Determines the Salesforce tab on which the script is listed.
Sub Type Determines how the script displays on the tab’s child menu
Language The language of the OmniForm. If the language is "Multi-Language," you must specify the target language by creating a
LanguageCode key/value pair in Remote Options. You can specify the language code using a merge field, which enables
the caller to configure the language dynamically, as shown in the following figure.
See Also
• OmniForm
• Common Integration Procedure Action Properties
Remote Action
A Remote Action calls the specified Apex class and method. You can also pass in invocation options and
data.
If the data a Remote Action returns isn't in Map<String, Object> format, an Integration Procedure or
DataRaptor might not be able to process it. You can convert the data in one of these ways:
• In the Remote Action, under Remote Options, add a Key named reserialize with a Value of true.
• In a subsequent Set Values step, use the RESERIALIZE function on the Remote Action's output.
For information about related functions such as DESERIALIZE and SERIALIZE, see the Function
Reference.
An error message that begins with Invalid conversion from runtime type String often
indicates a need to reserialize data.
See Also
Property Description
Remote Class Vlocity Open Interface Class
Remote Method Vlocity Open Interface Method
Remote Options Additional class invocation options
Additional Input Data passed to the method
See Also
• Remote Action
• Workflow for Remote Action Example
• Common Integration Procedure Action Properties
To download a DataPack of this example, click here. The DataPack does not include the Apex class.
See Also
• Remote Action
• Remote Action Properties
@JsonAccess(serializable='always')
global with sharing class TestReserializeApex implements
vlocity_ins.VlocityOpenInterface2 {
global Object invokeMethod(String methodName, Map<String,Object> input,
Map<String,Object> output, Map<String,Object> options) {
return output.put('result', new TestReserialize());
}
@JsonAccess(serializable='always')
global public class TestReserialize {
global public String name = 'Dave Smith';
}
}
Replace vlocity_ins with the namespace for your org if necessary. Depending on your industry, the
namespace is vlocity_ins, vlocity_cmt, or vlocity_ps.
Also note the use of the JsonAccess annotation on the class and method.
5. Click Save.
What's Next
Create the Integration Procedure with the Remote Action
See Also
• Remote Action
• Remote Action Properties
• Workflow for Remote Action Example
Property Value
Element Name ReserializeApex
Remote Class TestReserializeApex
Property Value
Remote Method random
Remote Options, Key reserialize
Remote Options, Value false
A Remote Method value is required, but it can be anything, because this Integration Procedure
doesn't invoke a method.
A step in the test of this Integration Procedure will ask you to change the Remote Options Value.
4. Drag a Set Values component into the Structure panel and give it the following settings:
Property Value
Element Name ReserializeApexFunction
Element Value Map, Element Name result
Element Value Map, Value =RESERIALIZE(%ReserializeApex%)
Response JSON Path result
Response JSON Node ReserializeApex
5. Drag another Set Values component into the Structure panel and give it the following settings:
Property Value
Element Name MyName
Element Value Map, Element Name Full Name
Element Value Map, Value %ReserializeApex:result:name%
6. Drag a Response Action component into the Structure panel and check the Return Full Data JSON
checkbox.
What's Next
Test the Integration Procedure with the Remote Action
See Also
• Remote Action
• Remote Action Properties
• Workflow for Remote Action Example
1. Go to the Preview tab and click Execute. The output should look like this:
{
"response": {},
"vlcchainableStepDepth": 0,
"ResponseAction1Status": true,
"MyName": {
"Full Name": "Dave Smith"
},
"MyNameStatus": true,
"ReserializeApexFunctionStatus": true,
"ReserializeApex": {
"result": {
"name": "Dave Smith"
},
"errorCode": "INVOKE-200",
"error": "OK"
},
"ReserializeApexStatus": true,
"options": {
"queueableChainable": false,
"ignoreCache": true,
"resetCache": false,
"chainable": false
}
}
Note that this Integration Procedure successfully passes the value of the name variable in the Apex
class to its Full Name node.
2. Go to the Properties tab, select the ReserializeApexFunction component, and click Active to remove
the check. This turns off reserialization.
3. Go to the Preview tab and click Execute again. The output should look like this:
{
"response": {},
"vlcchainableStepDepth": 0,
"ResponseAction1Status": true,
"MyName": {
"Full Name": ""
},
"MyNameStatus": true,
"ReserializeApex": {
"result": {
"name": "Dave Smith"
},
"errorCode": "INVOKE-200",
"error": "OK"
},
"ReserializeApexStatus": true,
"options": {
"queueableChainable": false,
"ignoreCache": true,
"resetCache": false,
"chainable": false
}
}
{
"response": {},
"vlcchainableStepDepth": 0,
"ResponseAction1Status": true,
"MyName": {
"Full Name": "Dave Smith"
},
"MyNameStatus": true,
"ReserializeApex": {
"error": "OK",
"errorCode": "INVOKE-200",
"result": {
"name": "Dave Smith"
}
},
"ReserializeApexStatus": true,
"options": {
"queueableChainable": false,
"ignoreCache": true,
"resetCache": false,
"chainable": false
}
}
See Also
• Remote Action
• Remote Action Properties
• Workflow for Remote Action Example
Response Action
The Response Action ends an Integration Procedure and returns data to the entity that called it. It can also
add data to the data JSON or end conditionally. Response Actions are useful for debugging Integration
Procedures.
Response Actions are also useful for trimming the data response. For specific trimming strategies, see
Manipulate JSON with the Send/Response Transformations Properties.
For Integration Procedure examples that include at least one Response Action, see Process Arrays Using
Loop Blocks, Handle Errors Using Try-Catch Blocks, and Integration Procedure Action.
See Also
Property Description
Additional Output Key/value pairs to add to data JSON. Can merge other data. To specify a level below the top level for a key/
value pair, use a colon-delimited path in the Key field. For example:
Resulting JSON:
{
"Key1":
{
"Key2": "Value"
}
}
Return Only Enable to discard data other than the key/value pairs defined as additional output. If you enable this option,
Additional Output disable Return Full Data JSON.
Return Full Data Enable to return entire data JSON. If you enable this option, disable Return Only Additional Output.
JSON
Response Headers To add data to the response header, add key/value pairs to this property. To override the HTTP status code
returned in the header, create a key named StatusCode and assign it a valid HTTP response value.
Execution Conditional Ends the Integration Procedure only if the specified condition is true.
Formula
See Also
• Response Action
• Common Integration Procedure Action Properties
• Use Future — Use when the calling OmniScript or Integration Procedure doesn't need a response and
completion time is not critical.
• Invoke Mode: Fire and Forget — Use instead of Use Future when the calling OmniScript must invoke
the Integration Procedure immediately.
• Invoke Mode: Non-Blocking — Use to run the Integration Procedure immediately while continuing the
user interaction of the calling OmniScript. A response is returned when the Integration Procedure is
complete.
For more information about these settings, see Common Action Element Properties, Integration
Procedure Action, and Integration Procedure Action.
To determine whether a DataRaptor or an Integration Procedure is best for your use case, see DataRaptor
or Integration Procedure?.
Caching of DataRaptor and Integration Procedure metadata and Integration Procedure data is available in
Summer '19 and later releases. Caching of DataRaptor data is available in Spring '20 and later releases.
• DataRaptor metadata is always cached if you allocate space in the VlocityMetadata cache partition as
described below.
• You can configure data caching on the Options tab of DataRaptor Extracts, Turbo Extracts, and
Transforms.
• If you call a DataRaptor from an Integration Procedure that uses caching, the DataRaptor data is cached
along with the Integration Procedure data.
You can also perform a record-level security check for cached data. See Security for DataRaptors and
Integration Procedures.
To disable metadata caching for an Integration Procedure, go to the Procedure Configuration and check the
Disable Definition Cache checkbox.
TIP
To test the performance benefit of metadata caching, execute the Integration Procedure in
the Preview tab with Disable Definition Cache checked and then unchecked. Compare
the Browser, Server, and Apex CPU values.
Behind this checkbox is the DisableDefinitionCache__c boolean field, which defaults to false.
namespace.DRGlobal.clearCacheForDataRaptor('DataRaptorName');
namespace.vlocity.cmt.DRGlobal.clearCacheForAllDataRaptor();
If you need to clear Integration Procedure metadata from the cache, follow the instructions in this topic, but
execute this line of code instead, specifying the Integration Procedure's Type and Subtype:
IntegrationProcedureService.clearMetadataCache('Type_Subtype');
To clear all cached data for an Integration Procedure, including session cache data, org cache data, and
metadata, follow the instructions in this topic, but execute this line of code instead, specifying the
Integration Procedure's Type and Subtype:
IntegrationProcedureService.clearAllCache('Type_Subtype');
Caching of top-level Integration Procedure data is available in Summer '19 and later releases.
It's important to allocate space in the VlocityAPIResponse cache partition and to understand how top-level
Integration Procedure caching interacts with Cache Blocks. See Cache for DataRaptors and Integration
Procedures.
To configure top-level caching for an Integration Procedure, go to the Procedure Configuration and set the
Salesforce Platform Cache Type and Time To Live In Minutes properties. See Configure Top-Level
Caching for an Integration Procedure.
NOTE
If an Integration Procedure that has top-level caching enabled fails, its data isn’t cached.
• ignoreCache — Doesn't clear or save data to the cache. The default value is true. Use this setting to
test Integration Procedure steps without the possible interference of caching effects.
• resetCache — Forces data to be saved to the cache. The default value is false. Use this setting as
part of testing caching itself.
NOTE
To test caching, be sure to set ignoreCache to false. See Create a Top-Level Caching
Example.
You can pass ignoreCache and resetCache as parameters when you invoke an Integration Procedure that
uses caching using a REST API. For example, you can include ?resetCache=true in the URL to force
caching. See Integration Procedure Invocation Using POST.
These nodes are returned as headers if you invoke an Integration Procedure that uses top-level caching
using a REST API. See Integration Procedure Invocation Using POST.
IntegrationProcedureService.clearSessionCache('vlcCacheKey');
IntegrationProcedureService.clearOrgCache('vlcCacheKey');
You can clear all cached data for an Integration Procedure, including session cache data, org cache data,
and metadata. Follow the instructions in this topic, but execute this line of code instead, specifying the
Integration Procedure's Type and Subtype:
IntegrationProcedureService.clearAllCache('Type_Subtype');
The following example clears the session cache using a vlcCacheKey value:
IntegrationProcedureService.clearSessionCache('2032076016a1745801061oc');
• Session Cache — The default value is 5. The maximum value is 480, equivalent to 8 hours. The
cache is cleared when the user's session expires regardless of this value.
• Org Cache — The default value is 1440, equivalent to 24 hours. The maximum value is 2880,
equivalent to 48 hours.
Top-level caching overrides Cache Block caching for the duration of the top-level Time To Live In
Minutes value. Top-level and Cache Block data is cleared when the Integration Procedure is
deactivated regardless of this value.
4. Click Activate Version. Top-level caching occurs only if the Integration Procedure is active.
See Also
• Cache for Top-Level Integration Procedure Data
This Integration Procedure also includes a Loop Block; see Process Arrays Using Loop Blocks.
Property Value
Loop List names
Additional Loop Output ExtractContact set to %ExtractContact%
5. Create the DataRaptor Extract that the DataRaptor Extract Action calls, name it ExtractContactName,
and give it the following settings:
Tab Settings
Extract A Contact extract step set to Contact Name LIKE name
Output A mapping from Contact:Id to Contact:Id
If you aren't sure how to create a DataRaptor Extract, see the examples in DataRaptor Extract
Examples.
6. Drag a DataRaptor Extract Action inside the Loop Block and give it the following settings:
Property Value
Element Name ExtractContact
DataRaptor Interface ExtractContactName
Data Source names:name
Filter Value name
7. Create the Response Action below the Loop Block and give it the following settings:
Property Value
Send JSON Path LoopBlock1:ExtractContact
Response JSON Node Contact
8. In the Procedure Configuration, click Activate Version.
9. On the Preview Tab, click Edit as JSON and provide input with the following structure:
{
"names": [
{
"name": "Miller"
},
{
"name": "Torres"
}
]
}
10. Click Execute and note the resulting Browser, Server, and Apex CPU values.
11. Open the Options pane and change the ignoreCache value to false.
12. Click Execute again. This step populates the cache, so the resulting Browser, Server, and Apex CPU
values should be similar to the previous values.
13. Click Execute a third time. This step uses the cached values, so the resulting Browser, Server, and
Apex CPU values should be noticeably less than the previous values. In addition, Cached
Response: true appears after the performance metrics.
• Failure Conditional Formula: Specify a formula that evaluates to TRUE if the step has failed to execute
successfully. See the second example in Handle Errors Using Try-Catch Blocks.
• Fail On Step Error: Enable this option to terminate the Integration Procedure if the conditional formula
determines that the step has failed.
NOTE
An action that returns a list cannot use returned data in its Failure Conditional Formula.
To configure conditions and behavior for the success and failure of a group of actions, you can use a Try-
Catch Block. See Handle Errors Using Try-Catch Blocks.
To add debugging information to the Data JSON, use Response Actions. For details, see Response Action.
HTTP actions add details about the results of the call to the Data JSON ElementNameInfo node as
follows:
See Also
1. Go to Setup.
• In Lightning Experience, click the gear icon and select Setup from the menu.
• In Salesforce Classic, click the user menu and select Setup from the menu.
2. In the Quick Find field, enter Custom Settings.
3. Click Custom Settings.
4. Click the letter G in the index across the top.
6. Click New.
7. Enter a Name of ErrorLoggingEnabled and a Value of true.
8. Click Save.
See Also
• Create a Lightning Record Page for Vlocity Error Log Entry records. Follow the instructions in
Building an Account Lightning Record Page, but apply them to the Vlocity Error Log Entry SObject
instead of the Account SObject.
See Also
For example, the following filter extracts the Cases created in the last 30 days.
If you are using an environment variable as a Filter value, you must double-quote it.
1. In Salesforce, you perform an operation against the Vlocity external object, for example, in Apex code,
in a report, or by issuing a SOQL query.
2. The Vlocity external object handler calls the Integration Procedure that implements the external object,
passing in a JSON payload that contains details about the request.
3. Based on the contents of the JSON payload, the Integration Procedure accesses the external data
using, for example, REST endpoints or DataRaptor calls, and returns JSON or XML results.
4. The Integration Procedure returns its results to the Vlocity external object handler in an intermediate
format.
5. The Vlocity handler transforms the results into a JSON payload and returns them to the caller.
The advantage of this approach to accessing external data is that it is completely declarative, no code
required. Note that, while the external object functions as a single object, your Integration Procedure can
recruit data from multiple sources.
Upsert: Update a row (if ExternalId is specified) or create a row (if ExternalId is omitted).
To access the external data to handle the query, define HTTP actions that call the REST endpoints that
perform the required operations. If the results returned from the endpoint require further processing, create
and call DataRaptor Transforms that perform the required transformations.
SELECT queries: Return an array of nodes with names that correspond to the table columns defined for
the external object. For example:
[{
"Work": "415-232-6365",
"Mobile": "415-607-9865",
"Email": "[email protected]",
"CreateDate": "2017-10-25T20:50:34.188Z",
"Name": "Davidov Spruth",
"ExternalId": "59f0f91a51280e0012c90584",
"ExternalLookup": "59f0f91a51280e0012c90584",
"AccountIndirectLookup": "123"
},
{
"Email": "[email protected]",
"CreateDate": "2017-10-25T21:49:41.633Z",
"Name": "Mike Wormwood",
"ExternalId": "59f106f5e928870012f2b0a0",
"ExternalLookup": "59f0f91a51280e0012c90584",
"AccountIndirectLookup": "123"
},
{
"Work": "33-555-1212",
"Mobile": "33-879-0610",
"CreateDate": "2017-10-25T20:59:18.657Z",
"Name": "Tom Sor",
"ExternalId": "59f0fb26e928870012f2b09e",
"ExternalLookup": "59f0f91a51280e0012c90584",
"AccountIndirectLookup": "123"
}
]
UPDATE and DELETE queries: Return the external Id of the object affected in a node named "ExternalID";
for example:
{
"ExternalId": "59efa135ba8e960012a3e8a5"
}
If the query does not succeed, return a node named "errorMessage" containing details about the problem
that occurred.
See Also
• Implement an External Object in an Integration Procedure
1. Create an Integration Procedure. For Type, specify VlocityExternalObject. For Subtype, specify the
desired name for the external object.
2. In the Procedure Configuration section, define table and column settings. These are the same settings
you can configure on the Salesforce External Object tab. For detailed information, refer to the
Salesforce documentation: Define External Objects and External Object Relationships.
3. Click Activate.
4. In Salesforce, go to the External Data Source tab and navigate to the VlocityExternalObject data
source. Click Validate and Sync.
If the operation succeeds, your new external object is now listed on the page.
See Also
• External Objects in Integration Procedures
After a Test Procedure finishes, its transaction is rolled back. This lets you run tests that create sObjects
without affecting the database.
How you organize your Test Procedures is up to you. For example, you can test the same DataRaptor
multiple times using different inputs, or you can test several different DataRaptors using the same Test
Procedure.
To mock a component that returns a single value, scroll to the bottom of the Procedure Configuration and
specify a Key/Value pair under Mock Responses Map. The Key must be the Name of a component, and the
Value can be literal text or a merge field.
To mock a component with a more complex response, go to the Procedure Configuration and click Edit as
JSON, then edit the mockResponseMap node. For example, the following JSON code mocks a Set Values
component named IfOtherState that sets a DefaultSalesTax value:
"mockResponseMap": {
"IfOtherState": {
"DefaultSalesTax": 0.06
}
}
The following component types must be mocked in the testing Integration Procedure or the Integration
Procedure being tested. Mocking other component types is permitted but not required.
If an Integration Procedure is called by a Test Procedure, any Batch Actions it includes are not invoked.
DocuSign Envelope Action The response to the delivered email isn't available.
Email Action The response to the delivered email isn't available.
HTTP Action Salesforce has specific requirements for testing HTTP callouts.
if (IntegrationProcedureService.isTest == false) {
HttpRequest request = new HttpRequest();
request.setMethod('GET');
request.setEndpoint('http://example.com');
1. Enable the Vlocity Tracking Service for Integration Procedures. See Enable Tracking for Vlocity
Components and Add Debugging Data to Test Procedure Event Tracking.
2. Create the Integration Procedure to be tested. See Create a Conditional Block Example with If-Elseif-
Else Logic.
3. Mock a Response in the Tested Integration Procedure.
4. Create an Example Test Procedure.
5. Run the Test Procedure from IDX Workbench. See Run Test Procedures.
See Also
• Assert Action
• Assert Action Properties
• Integration Procedure Action
• Integration Procedure Action Properties
1. Go to the Vlocity Integration Procedures tab and open the Integration Procedure to be tested.
2. If the Integration Procedure is active, click Deactivate Version so you can edit it.
3. In the Procedure Configuration, click Edit as JSON.
4. Edit the mockResponseMap node as follows:
"mockResponseMap": {
"IfOtherState": {
"DefaultSalesTax": 0.06
}
}
5. Click Edit in Property Editor.
6. Click Activate Version. The Integration Procedure to be tested must be active.
See Also
A Response Action isn't required, but it's useful for testing the Test Procedure. After you have verified that
the Test Procedure works, you can deactivate or delete it.
Property Value
Element Name IPInput
Element Value Map: Price 250
Element Value Map: State NY
Response JSON Node IPInput
5. Drag an Integration Procedure Action component into the Structure panel and give it the following
settings:
Property Value
Element Name TestIP
Integration Procedure Name you gave the Integration Procedure to be tested, described in Define Execution Logic Using
Conditional Blocks. If you downloaded the DataPack, the name is Documentation_IPCondBlock1.
Send JSON Path IPInput
6. Drag an Assert Action component into the Structure panel and give it the following settings:
Property Value
Element Name AssertTotal
Assert Conditional Formula TestIP:Output:Total == 265
Assert Failure Message Calculation is incorrect.
7. Drag a Response Action component into the Structure panel and give it the following settings:
Property Value
Element Name TestResponse
Return Full Data JSON (checked)
After you have verified that the Test Procedure works, you can deactivate this component.
8. Go to the Preview tab and click Execute. The output should look like this:
{
"response": {
"testResult": "success"
},
"TestResponseStatus": true,
"AssertTotal": {
"assertFailureMessage": "Calculation is incorrect.",
"variableData": {
"TestIP:Output:Total": 265
},
"assertConditionalFormula": "TestIP:Output:Total == 265",
"assertResult": true
},
"AssertTotalStatus": true,
"TestIP": {
"testResult": "success",
"Output": {
"Price": 250,
"State": "NY",
"Tax": 15,
"TaxRate": 6,
"Total": 265
}
},
"TestIPStatus": true,
"IPInput": {
"Price": 250,
"State": "NY"
},
"IPInputStatus": true,
"options": {
"useQueueableApexRemoting": false,
"queueableChainable": false,
"ignoreCache": true,
"resetCache": false,
"chainable": false
}
}
9. (Optional) In the IPInput component, change the Price, or change the State to WA, OR, NV, or CA.
Then return to the Preview tab and click Execute again. Note how the output changes.
10. To prepare for running the Test Procedure:
a. In the TestResponse component, click Active to remove the check.
b. In the Procedure Configuration, click Activate Version. IDX Workbench only runs active Test
Procedures.
See Also
NOTE
A Vlocity Action can't call an Integration Procedure directly. However, a Vlocity Action can
call an OmniScript or an Apex class, each of which can call an Integration Procedure.
class IntegrationProcedureService {
/*
procedureAPIName - the Type_SubType of Procedure or the OmniScript__c.Id
input - The payload / initial data in the DataJSON for the Procedure
*/
public static Object runIntegrationService(String procedureAPIName,
Map<String, Object> input, Map<String, Object> options);
/*
VlocityOpenInterface2 implementation:
methodName - the Type_SubType of Procedure or the OmniScript__c.Id -
procedureAPIName above
input - The payload / initial data in the DataJSON for the Procedure
output - will return Response in output.put('result', RESPONSE)
*/
public Object invokeMethod(String methodName, Map<String, Object> input,
Map<String, Object> output, Map<String, Object> options);
}
/* Initialize variables */
String procedureName = 'Type_SubType';
Map<String, Object> ipInput = new Map<String, Object> ();
Map<String, Object> ipOutput = new Map<String, Object> ();
Map<String, Object> ipOptions = new Map<String, Object> ();
See Also
• IntegrationProcedureService
@isTest(seeAllData=true)
global with sharing class TestVlocityIntergationProcedure
{
static testMethod void testVip()
{
Map<String, Object> response = (Map<String,
Object>)namespace.IntegrationProcedureService.runIntegrationService('Type_Subty
pe',
new Map<String, Object>{
'AccountName' => 'Vlocity'
}, new Map<String, Object>());
System.assertEquals('[email protected]', response.get('ContactEmail'));
}
}
• You must use Salesforce's seeAllData property on the @isTest annotation. This ensures that the unit
test sees the Vlocity SObject data in the org.
• The method that runs the Integration Procedure is
IntegrationProcedureService.runIntegrationService.
• The namespace is vlocity_cmt, vlocity_ins, or vlocity_ps.
• The Type_Subtype parameter specifies the Integration Procedure to test.
Salesforce has specific requirements for testing HTTP callouts. Therefore, HTTP Actions require special
handling.
In Fall '19 and later releases, you can set the mock HTTP response of an Integration Procedure using the
following Vlocity global method:
IntegrationProcedureServiceTest.setMockHttpResponse(HttpResponse response)
This is required because when an Integration Procedure runs, the Vlocity Managed Package makes the
HTTP callout internally.
The following is an example unit test of an Integration Procedure that includes an HTTP Action:
@isTest(seeAllData=true)
global with sharing class TestVlocityIntergationProcedure
{
static testMethod void testVipWithHttpCallout()
{
HttpResponse res = new HttpResponse();
res.setHeader('Content-Type', 'application/json');
res.setBody('{"ContactEmail":"[email protected]"}');
res.setStatusCode(200);
namespace.IntegrationProcedureServiceTest.setMockHttpResponse(res);
System.assertEquals('[email protected]', response.get('ContactEmail'));
}
}
In Winter '20 and later releases, if an Integration Procedure includes more than one HTTP Action, you can
set the mock HTTP responses using the following Vlocity global method:
IntegrationProcedureServiceTest.setMockHttpResponseByUrlOrActionName()
Using the Element Name of the HTTP Action is often easier. However, for some HTTP Actions, such as one
within a Loop Block, you might have to specify the URL. If you specify the URL, it must be the exact URL
you are calling. If it is a NamedCredential, it follows the pattern callout:NamedCredentialName.
The following is an example unit test of an Integration Procedure that includes two HTTP Actions:
@isTest(seeAllData=true)
global with sharing class TestMockHttpIP
{
static testMethod void testVipWithHttpCallout()
{
HttpResponse res1 = new HttpResponse();
res1.setHeader('Content-Type', 'application/json');
res1.setBody('{"ContactEmail":"[email protected]"}');
res1.setStatusCode(200);
namespace.IntegrationProcedureServiceTest.setMockHttpResponseByUrlOrActionName(
'GetContactsHttp', res1);
res2.setBody('{"ContactEmail":"[email protected]"}');
res2.setStatusCode(200);
namespace.IntegrationProcedureServiceTest.setMockHttpResponseByUrlOrActionName(
'callout:MyContactInfo2', res2);
System.assertEquals('[email protected]', response.get('ContactEmail'));
System.assertEquals('[email protected]',
response.get('Action2Response'));
}
}
For an example, see Invoke a Chainable Integration Procedure with REST Calls.
NOTE
In JSON, curly braces are literal, but in REST notation, curly braces represent variables.
/services/apexrest/{namespace}/v1/integrationprocedure/{Type}_{SubType}/
Specify the Type and SubType of the Integration Procedure. You can also send HTTP headers as options.
To pass input data in a GET call, you can specify URL parameters. You can't specify a JSON request body.
If you need to specify a JSON request body, use a POST call instead.
In the following example, an Integration Procedure that creates cases requires a Contact name and returns
the Id of the newly created case. The Contact name is specified in the URL. Note that the HTML code %20
represents the space between the first and last names.
GET
/services/apexrest/vlocity_ins/v1/integrationprocedure/Create_Cases/?
Contact=Dennis%20Reynolds
Example Result:
{
"Case": {
"Id": "0036100001HDn3QAAT"
}
}
There are two ways to pass parameters to the Integration Procedure in the URL:
• Parameter/value pairs
• Inline values in the URL path
/services/apexrest/{namespace}/v1/integrationprocedure/{Type}_{SubType}/
{inlinevalue1}/{inlinevalue2}/?{Param1}={Value1}
/services/apexrest/vlocity_cmt/v1/integrationprocedure/IP_Rest/Apple/Phones/?
product=iPhoneX
{
"options": {
"Path1": "Apple",
"Path2": "Phones",
"product": "iPhoneX",
"isDebug": "true"
}
}
Values passed in the path are added under the options node, with keys named PathN.
You can also set Integration Procedure options such as chainable or queueableChainable using a
REST API. For example:
/services/apexrest/vlocity_ins/v1/integrationprocedure/Create_Cases/?
chainable=true
/services/apexrest/{namespace}/v1/integrationprocedure/{Type}_{SubType}/
Specify the Type and SubType of the Integration Procedure. You can also send HTTP headers as options.
To pass input data in a POST call, you can specify either a JSON request body or URL parameters.
In the following example, an Integration Procedure that creates cases requires a Contact name and returns
the Id of the newly created case. The Contact name is specified in a JSON request body.
POST
/services/apexrest/vlocity_ins/v1/integrationprocedure/Create_Cases/
{
"Contact":"Dennis Reynolds"
}
Example Result:
{
"Case": {
"Id": "0036100001HDn3QAAT"
}
}
There are two ways to pass parameters to the Integration Procedure in the URL:
• Parameter/value pairs
• Inline values in the URL path
/services/apexrest/{namespace}/v1/integrationprocedure/{Type}_{SubType}/
{inlinevalue1}/{inlinevalue2}/?{Param1}={Value1}
/services/apexrest/vlocity_cmt/v1/integrationprocedure/IP_Rest/Apple/Phones/?
product=iPhoneX
{
"options": {
"Path1": "Apple",
"Path2": "Phones",
"product": "iPhoneX",
"isDebug": "true"
}
}
Values passed in the path are added under the options node, with keys named PathN.
You can also set Integration Procedure options such as chainable or queueableChainable using a
REST API. For example:
/services/apexrest/vlocity_ins/v1/integrationprocedure/Create_Cases/?
chainable=true
After defining the class, you can use the resulting flow component in the Salesforce Flow Designer to call
Integration Procedures. Drag the component from the list to the flow and set its properties as follows.
General Settings: Set Name and Unique Name to descriptive names for the instance of the component in
the flow.
Input Settings
• Procedure Name: Specify the Integration Procedure to be run using this format: Type_SubType (note the
underscore).
• Input: For each input variable required by the Integration Procedure, choose Variable and specify the
name of the input variable using the following format: {!variableName}
Output Settings: For each variable that is returned by the Integration Procedure, choose Variable and
specify the name of the output variable using the following format: {!variableName}
NOTE
Batch jobs aren't supported in the Summer '21 release.
• Null: The Integration Procedure or VlocityOpenInterface finds data using its Actions or methods.
• SOQL query: The result of a static query is the input.
• JSON data with merge fields: The Integration Procedure is called by a business process that has
contextual data, such as an OmniScript, and is queued immediately rather being scheduled.
To define the jobs to be run, you add records to the Vlocity Scheduled Job custom object. To launch
scheduled jobs, you can:
These commands create a CronTrigger (scheduled job) with the name VlocityScheduledJob.
The Frequency parameter specifies how often the batch framework checks for jobs to launch. To ensure
that jobs are executed on the desired schedule, specify a frequency greater than or equal to that of the
highest-frequency job. For example, if you have a job that is scheduled to run hourly, specify hourly or 15
minutes for the batch framework frequency. Note that the timing of job execution is controlled entirely by
the batch framework, and jobs might not be executed at precise intervals.
VlocityBatchFramework.startScheduledJobs();
VlocityBatchFramework.startScheduledJob('a3Zf4000000J81v');
VlocityBatchFramework.startScheduledJobs(new List<Id>{'a3Zf4000000J81v',
'a3Zf4000000IwIU'});
The batch framework also enables you to programmatically invoke any Integration Procedure or
VlocityOpenInterface as a job. The methods for starting batch jobs are as follows:
VlocityBatchFramework.startIntegrationProcedureBatch(String
integrationProcedureKey, List<Object> input, new Map<String, Object> options);
VlocityBatchFramework.startOpenInterfaceBatch(String classMethod, List<Object>
input, new Map<String, Object> options);
To start an Integration Procedure job from Apex, issue the following command:
VlocityBatchFramework.startIntegrationProcedureBatch({integration procedure
key}, input list, options map);
For example:
VlocityBatchFramework.startIntegrationProcedureBatch('VlocityBatchFramework_Val
idateAccountBillingStreet', accounts, new Map<String, Object>{'isInputAsList'
=> true, 'batchSize' => 20});
To start an asynchronous Apex job that runs the invokeMethod of a specified class, issue the following
command:
For example:
VlocityBatchFramework.startOpenInterfaceBatch('VlocityBatchFrameworkTestOI4.upd
ateStatus', accounts, new Map<String, Object>{'isInputAsList' => false,
'batchSize' => 20});
To chain scheduled jobs that run Integration Procedures, provide the IDs of the jobs and include a
chainable option that is set to true:
For example:
VlocityBatchFramework.startScheduledJobs(new Map<String,
Object>{'vlocityScheduledJobIds' => new List<String>{'a3Zf4000000T7A1',
'a3Zf4000000T7A6'}}, new Map<String, Object>{'chainable' => true});
You can specify the following options in the options map when invoking a job programatically. See above for
details.
• batchSize
• chainable: Only jobs containing Integration Procedures are chainable.
• isInputAsList
• jobQueue
If the Data Source Type is Query, at least one row must be returned for the job to run.
• Data Source Spec: Specifies the data for the batch job, which must correspond to the Data Source
Type:
• No Input: The Integration Procedure or VlocityOpenInterface doesn’t require input data.
• Data Input: The Integration Procedure or VlocityOpenInterface expects JSON data with merge
fields. For information about merge fields, see Merge Fields.
Note that in this case the Integration Procedure or VlocityOpenInterface is placed in the batch
queue immediately after it is called because it is dependent on data from the process that calls it.
Therefore the Frequency property is ignored.
• List Input: The Integration Procedure or VlocityOpenInterface expects a list in JSON format. For
an example, see Batch Action.
• Query: A query retrieves the data required by the Integration Procedure or VlocityOpenInterface.
Example query:
Batches Processed: 1
Number Of Errors: 1
Total Batches: 1
Status: Completed
• Send Email On:
• Error: Sends an email when a batch job error occurs.
• Finish: Sends an email when any batch job finishes regardless of whether an error occurred.
• Success: Sends an email when any batch job finishes successfully.
• Frequency: Required. Specifies how often the job is executed. Valid values are:
• None: Jobs that run as a Next Scheduled Job must have their frequency set to None so that they
only run after the initial job has completed.
NOTE
The --None-- and None values are not the same. The --None-- value indicates that
the Frequency setting is not set. The None value specifies that the job is not on a
schedule.
• 15 Minutes
• Hourly
• Daily
• Weekly
• Monthly
• Yearly
• Is Input As List: Specifies whether the data from the Query is sent as a list of Maps under a response
node or as an individual record in a Map. Example input:
• Unchecked:
NOTE
The scheduled job that runs as a child of the initial scheduled job must have its
Frequency set to None so that it only runs after the initial job has completed.
• Process Name: The process to run. For Integration Procedures, specify Type_Subtype. For a
VlocityOpenInterface, specify ClassName.MethodName.
• Process Type: Specify either Integration Procedure or Vlocity Open Interface.
• Wrap Up Process Name: Enter the name of a different process that will run as a child of the initial
process, in the same transaction, once the initial process finishes. In the underlying code, this runs in the
finish() method of the framework. For Integration Procedures, specify Type_Subtype. For a
VlocityOpenInterface, specify ClassName.MethodName.
• Wrap Up Process Type: Specify either Integration Procedure or Vlocity Open Interface.
A Configured Job
The screenshot below shows an example of a record that defines a scheduled job.
• Apex Job ID: Unique identifier for internal use. Do not edit.
• Global Key: Unique identifier for internal use. Do not edit.
• Last Run DateTime: Last time the job was executed.
• Last Run Error Message: If the query fails, contains the full SOQL exception.
• Next Run DateTime: Next scheduled run. Maintained by the batch framework; can be edited to specify
the next time the job is to be run.
Error Handling
If the Data Source Type or Frequency is not set, or if the Data Source Spec format is incorrect, then the
Active checkbox is unchecked (set to false) and the Last Run Error Message field contains an error
message describing what went wrong.
Configuration and SOQL query errors are returned in the Last Run Error Message field. The batch
framework does not catch or report errors that occur in the Integration Procedure or Apex method invoked.
If an error is caught, Last Run DateTime and Next Run DateTime are not updated.
Beginning with Vlocity Insurance and Vlocity Health Summer 2018, by default, all the actions in an
Integration Procedure run in a single transaction. If the transaction exceeds a Salesforce governor limit,
Salesforce ends the transaction and the Integration Procedure fails. You cannot set a limit that exceeds the
maximum imposed by Salesforce. For details about governor limits, see the relevant Salesforce topic.
• Enable chaining from the OmniScript or parent Integration Procedure action that calls the long-running
Integration Procedure.
• Optionally set limits that trigger chaining in the long-running Integration Procedure itself using the settings
described here.
When chaining is enabled and an Integration Procedure step exceeds a governor limit, its interim results
are saved and the step is continued in a separate transaction. Because the step runs in its own transaction,
it does not contend for resources with other steps in the Integration Procedure, so it's less likely to hit
governor limits.
To maximize performance, steps are chained only when they hit governor limits. If no limits are exceeded,
all the steps in the Integration Procedure run in a single transaction. When steps are chained, the
performance of the Integration Procedure can be adversely affected by the need to break up the execution
into chunks that do not exceed the governor limits and the need to store interim results.
In Summer '19 and later releases, you can increase Salesforce governor limits by allowing a chainable step
to start a queueable job, which runs as an Async Apex Job. These jobs have higher CPU, SOQL, and Heap
size limits than regular transactions do. However, while this helps to ensure that governor limits aren't
exceeded, it can reduce performance.
For Developer Edition and Trial orgs, the maximum stack depth for chained jobs is 5, which means that you
can chain jobs four times. This limit of 5 includes the initial parent queueable job. See Queueable Apex in
the Salesforce help.
For an example, see Invoke a Chainable Integration Procedure with REST Calls.
• Chainable Queries Limit: Maximum number of SOQL queries that can be issued. The default maximum
is 100.
• Chainable DML Statements Limit: Maximum number of Data Manipulation Language (DML) statements
that can be issued. The default maximum is 150.
• Chainable CPU Limit: Maximum CPU time on the Salesforce servers. Default maximum is 10,000
milliseconds.
• Chainable Heap Size Limit: Memory used to store data during transaction processing. The default
maximum is 6 MB.
• Chainable DML Rows Limit: Maximum number of records that can be processed as a result of DML
statements, Approval.process, or database.emptyRecycleBin. Default maximum is 10,000.
• Chainable Query Rows Limit: Maximum number of rows that a SOQL query is permitted to retrieve.
The default maximum is 50,000.
• Chainable SOSL Queries Limit: Maximum number of SOSL queries that can be issued. Default
maximum is 20.
• Chainable Actual Time: Number of seconds an Integration Procedure can run before chaining occurs to
avoid reaching the Salesforce Concurrent Request Limit. No default.
NOTE
Chainable Queries Limit, Chainable Query Rows Limit, and Chainable SOSL Queries
Limit work within a managed package but not outside of it. For example, if a Remote
Action runs queries outside the package, these don't count toward the limits.
Queueable Chainable settings, available in Summer '19 and later releases, are as follows:
• Queueable Chainable Heap Size Limit: Memory used to store data during transaction processing. The
default maximum is 12 MB.
• Queueable Chainable CPU Limit: Maximum CPU time on the Salesforce servers. The default maximum
is 60,000 milliseconds.
• Queueable Chainable Queries Limit: Maximum number of SOQL queries that can be issued. Default
maximum is 200.
Queueable Chainable settings override their Chainable equivalents if both are set.
If you are calling an Integration Procedure from a REST API, you can set the chainable or
queueableChainable option to true. See Invoke a Chainable Integration Procedure with REST Calls.
A parent Integration Procedure can disable the Chainable settings of a child Integration Procedure that it
calls. See Integration Procedure Action.
Chain On Step is not required for chaining to occur. If no step has Chain On Step applied, chaining occurs
at the step at which the Integration Procedure's resource use approaches governor limits or a chainable or
queueable chainable setting.
If your Integration Procedure has a DataRaptor Post action followed by an HTTP action, enable Chain On
Step for the DataRaptor Post action to avoid the following Salesforce error: You have uncommitted work
pending. Please commit or rollback before calling out.
To see what the intermediate responses look like, see Invoke a Chainable Integration Procedure with REST
Calls.
function runChainable(options) {
options.isDebug = vm.isDebug;
remoteActions.testIntegrationProcedure(ipId, inputData,
options).then(function(response) {
responseHandler(response);
});
}
function responseHandler(response) {
if (typeof(response) === 'string') {
response = JSON.parse(response);
}
if (response &&
response.vlcIPData &&
response.vlcStatus === 'InProgress') {
runChainable(response);
} else {
// handle IP response
}
}
1. Open the Integration Procedure example in your org. If you imported the DataPack, it's listed under
Documentation/IPTryCatch2.
2. In the Preview tab, try different Name input parameter values until you find one that returns more than
one record but not many. An ideal Name value returns two names.
3. In the Procedure Configuration, click Deactivate Version if the Integration Procedure is active so you
can edit it. Set the Chainable Query Rows Limit to a value low enough to cause chaining.
For example, if the Name value in the previous step returns two records, a Chainable Query Rows
Limit value of 1 results in two transactions. If the Name value in the previous step returns six records,
a Chainable Query Rows Limit value of 2 results in three transactions.
4. Go to the DataRaptorExtractAction1 component and check its Chain on Step property.
5. Go back to the Procedure Configuration and click Activate Version.
6. In a terminal window, enter a curl command in this format, all on one line:
For example, if the Name is Jones, the namespace is vlocity_ins, the Type is Documentation,
and the SubType is IPTryCatchF2, your curl command looks like this:
A session ID is a very long String. In this example, the session ID is truncated for clarity.
TIP
You can assemble the curl command in a text editor and copy it into the terminal
window.
{
"vlcUseQueueableApexRemoting": false,
"vlcMessage": null,
"vlcIPData": "dc3e1986-2f7c-0871-e968-28eb63e11820",
"vlcStatus": "InProgress"
}
NOTE
Integration Procedure Preview handles chaining automatically, so you never see this
type of response.
8. Add a header for the vlcIPData to the curl command and enter it. For example:
{
"response": {},
"ResponseAction1Status": true,
"Name": "Jones",
"options": {
"Accept": "*/*",
"X-B3-SpanId": "ee09609f22d890e1",
This response is an example of what you get when the Integration Procedure is complete.
Long-running HTTP actions: Check Use Continuation for the Integration Procedure action.
Remote actions: Implement a class that extends the VlocityContinuationIntegration class with the following
methods:
The following example illustrates the methods that you need to implement to support continuation for long-
running-remote actions. You can use this approach to support long-running HTTP actions, too.
return result;
}
// You can have other parameters, but make sure you always pass in
Map<String, Object> options
private Object myCallback(Map < String, Object > inputMap, Map < String,
Object > outMap, Map < String, Object > options) {
// This is how you access the state and labels passed by the Continuation
Object. You can maintain more complex State.
Object state = inputMap.get('vlcContinuationCallbackState');
Object labels = inputMap.get('vlcContinuationCallbackLabels');
Each callback method in the chain returns all the Continuation data available from the Salesforce
Continuation feature. The following example shows how to access Continuation data.
This approach permits any data that is written to the VlocitySetAsyncCallbackState to be retained and used
as by its custom Apex class.
For more information on the SFDC Continuation object, see the following Salesforce documentation:
To make a remote call using the Salesforce Continuation object and extending the
VlocityContinuationIntegration class:
CustomApexWrapperClass wrap =
(CustomApexWrapperClass)JSON.deserialize(JSON.serialize(state),
CustomApexWrapperClass.class);
This approach permits any data written to the VlocitySetAsyncCallbackState to be retained and
used as its custom Apex class.
con.continuationMethod = 'customcallback';
// The following line has to be called
VlocitySetAsyncCallbackState(con, con.addHttpRequest(req), options);
// Return it to the system for processing
return con;
}
// Last callback method
// This does NOT return Continuation Object
// This will return the response back to OmniScript, therefore need to set
outMap
private Object customcallback(Map<String, Object> inputMap, Map<String,
Object> outMap, Map<String, Object> options)
{
// This is how you access the state and labels passed by the Continuation
Object
Object state = inputMap.get('vlcContinuationCallbackState');
Object labels = inputMap.get('vlcContinuationCallbackLabels');
// EXAMPLE
HttpResponse response = Continuation.getResponse((String)state);
Integer statusCode = response.getStatusCode();
if (statusCode >= 2000)
{
// System.log ...
}
// This goes back to OmniScript
outMap.put('continuousResp', response.getBody());
return null;
}
}
IMPORTANT
Beginning with the Winter '20 Salesforce release, Guest Users, also called anonymous
users, cannot access any records by default. Criteria-based Sharing Rules grant them
read-only access. This affects all Salesforce orgs. For details, see Guest User Record
Access Development Best Practices.
Vlocity allows guest users to create and update the records to which Sharing Rules grant
access. No additional configuration is necessary for this expanded access.
Prior to the Summer '19 release, you might have used Salesforce Sharing Settings or Sharing Sets to
secure access to DataRaptors and Integration Procedures. This approach is still supported. If you use
caching, you must set CheckCachedMetadataRecordSecurity to true as described here.
Beginning with Summer '19, you can allow access to a DataRaptor or Integration Procedure based on the
Custom Permissions enabled in a user's Salesforce Profiles or Permission Sets. An Apex class added to
your Salesforce Org allows the Vlocity Managed Package to check user Custom Permissions. The custom
settings described here are related to this approach. Vlocity recommends using Custom Permissions in
Profiles or Permission Sets for ease of use and better performance.
For Salesforce access basics, see Control Who Sees What, Who Sees What — Overview Video, and
Salesforce Data Security Model — Explained Visually. For Vlocity-specific information about Profiles, see
Overview of Profiles and Security for Vlocity.
Sharing Settings, Sharing Sets, Profiles, and Permission Sets control access to DataRaptors and
Integration Procedures as object records. To enforce field-level security in the data that DataRaptors
access, go to the DataRaptor's Options tab and select Check Field Level Security.
IMPORTANT
A user's access to a DataRaptor or Integration Procedure includes more than the ability to
run it directly. Access also applies if an application the user is using calls the DataRaptor
or Integration Procedure.
If a user has access to a parent Integration Procedure, the parent can invoke child
Integration Procedures and DataRaptors to which the user doesn’t have direct access.
For a list of settings, see DataRaptor and Integration Procedure Security Settings.
1. Go to Setup.
• In Lightning Experience, click the gear icon and select Setup from the menu.
• In Salesforce Classic, click the user menu and select Setup from the menu.
2. In the Quick Find field, enter Custom Settings.
3. Click Custom Settings.
4. Click the letter G in the index across the top.
6. Click New.
7. Enter a Name and a Value.
8. Click Save.
To configure these settings, see Configure DataRaptor and Integration Procedure Security Settings.
For DefaultRequiredPermission details, see DataRaptor and Integration Procedure Security Settings.
1. Click Setup.
2. In the Quick Find/Search box enter Object, and click Object Manager.
7. Enter the new Element name to the picklist, and click Save.
See Also
• New Integration Procedure Components by Release
See Also
• Add Integration Procedure Components to an Upgraded Org
• You need to read data from SObjects or write data to SObjects, but not both.
• The SObjects you need to read from or write to have a defined relationship. For example, Accounts and
Contacts have a relationship because a Contact can have an AccountId value.
• You only need to work with JSON or XML data. No SObjects are involved.
• You can perform any needed filtering, calculation, or reformatting of data values using one or a series of
formulas.
• You can make any needed changes to the data structure by mapping input JSON nodes to output JSON
nodes.
• You need to both read from and write to one or more SObjects, which means you need to call at least two
DataRaptors.
• The SObjects you need to read from and/or write to have no defined relationship.
• Transforming your data can't be done using formulas alone. For example, different conditions determine
whether some filtering or calculations are performed at all.
• JSON node mappings aren't straightforward and/or require a series of steps.
• You need to read from or write to multiple data source types, such as SObjects, CSV files, external
objects, Apex classes, and so on.
• You need to perform actions such as calling a REST API, sending an email, merging lists, handling
errors, and so on.
See Also
• DataRaptor Best Practices
• Integration Procedure Best Practices
Calculation procedures and matrices can automate the creation of complex quotes. Together these can
guide a customer or agent through a series of questions, pull data from various sources, and present one or
more customized quotes or eligibility determinations. These can be quotes or eligibility determinations for:
Calculation procedures and matrices accept input from a Salesforce form, REST API, and OmniScript (in
the data JSON). Inputs can come from more than one source. The output can be a proposal or PDF, or
data for populating an OmniScript, form, list, JSON structure, or REST API request.
After the first procedural step, the second procedural step runs. Tis step takes the Rate that is the output of
the first procedural step, divides it by a constant, and outputs the Monthly Rate. Subsequent steps can
perform additional math on the data submitted—Smoker, ZIP, Age—or use inputs from other data sources,
such as policies currently held, or current health status, to perform additional calculations and return a
variety of quotes.
Calculation Matrices
Calculation matrices are one of the key elements of a Vlocity rating engine. Vlocity uses calculation
matrices to look up inputs, match them to outputs, and provide the outputs to calculation procedures.
Vlocity offers three styles of calculation matrices you can use based on your business needs:
• Standard Calculation Matrices — Has characteristics common to all calculation matrices, including input
columns, output columns, and versions.
• Grouped Calculation Matrices — Allows grouping of matrix rows by a key such as geographic region or
age.
• Row-Versioned Calculation Matrices — Allows versions to apply to specific rows rather than the entire
matrix.
IMPORTANT
You can't create calculation matrices that are both grouped and row-versioned.
It's more important than ever that you plan out your calculation matrix structure before you
start creating your matrices in Vlocity. Once you choose the type of a calculation matrix,
you can't change it.
CAUTION
You can let people modify calculation matrices based on user profiles. In your Vlocity
sandbox and development orgs, it may be useful to let several user profile groups modify
calculation matrices.
A calculation matrix is a Vlocity rating table that is structured and stored as follows:
You can have multiple versions of the same calculation matrix enabled at the same time. Vlocity uses the
start date/time, end date/time, and priority (highest number is highest priority, so 2 is higher priority than 1)
to determine which version of the matrix to use.
If the start date/time of one version of a calculation matrix overlaps the end date/time of another calculation
matrix, you can set priorities on them to enable Vlocity to determine which one to use. If a call to a
calculation matrix specifies an effective date, Vlocity uses that date to find the correct matrix. If a date isn't
specified, Vlocity uses today as the effective date.
The call to the calculation matrix finds the right hash, matches the input, unpacks the output JSON, finds
the correct output, and returns it.
• Grouped calculation matrices are designed to work best for insurance carriers that have lots of matrices
which are almost exactly alike: same input headers and same output headers.
• Grouped calculation matrices improve management and reduce size requirements.
• Vlocity uses only one SOQL query to query a group of matrix versions.
• Insurance carrier staff members who keep the calculation matrix data up to date can create and enable
new versions of a matrix without touching any other versions.
However, grouped matrices have some limitations. Each matrix in a group must have all the same input
and output column headers.
So this carrier creates a different calculation matrix for each state it offers insurance within, using
Jurisdiction as the Group Key.
All the input and output headers are the same, only the values differ. Each state's calculation matrix can be
updated at a different time, and new versions can be activated at different times.
The Group Key for this calculation matrix is ProviderFeeSchedule, and each version of the calculation
matrix is for a specific provider.
At execution time, Vlocity uses the group key to find the correct grouped calculation matrix, and the
provider code to pick the correct version of the matrix.
For example, you've got a matrix that creates a rating factor per ZIP (postal) code, which includes all ZIP
codes in the United States. You want to be able to update ZIP codes individually or in small groups. This
situation calls for a row-versioned calculation matrix.
Each row of this kind of calculation matrix gets assigned a start date when the matrix is created.
At execution time, Standard and Grouped Matrices both pull matrices by version, start date, end date, and
priority at the calculation matrix level. In a row-versioned matrix, this all goes out the window.
At execution time, Vlocity checks the Start Date and End Date of each row in the row-versioned calculation
matrix. If dates overlap on two versions of a row, the calculation uses the version with the highest Priority
specified.
But Vlocity does still use the versions to manage the rows in a row-versioned calculation matrix.
When you update row-versioned calculation matrices, you can include changes to the rows that you need
to update only. Vlocity uploads only the changed rows and shares the unchanged rows with both versions
of the matrix.
What Vlocity does when you update rows is a little bit complicated. Here's how it works.
First Version
The first version of a row-versioned calculation matrix looks almost the same as a standard calculation
matrix. But some data is stored slightly differently by Vlocity. The Start Date / Time you enter is assigned to
each row of the matrix individually.
Second Version
Your second version of the CSV file can be the whole matrix that includes new and changed rows. Or your
CSV can contain only the new and changed rows.
When you upload the second version, you give the new version of the matrix a different Start Date / Time.
Vlocity gives all the new and changed rows in this version the new Start Date / Time.
Vlocity does not copy the unchanged rows to the new version of the calculation matrix. Instead, it shares
the rows from version 1 of the matrix with version 2. That way, the unchanged rows are stored only once,
which saves storage space.
NOTE
Vlocity shares rows only when both versions are enabled.
For example, if version 1 of a calculation matrix is not enabled, its row will not be shared
with version 2.
You still see all the rows, both the rows shared from version 1 and the new and changed rows of version 2
when you view version 2.
You can also create a second version of the calculation matrix and manually change rows rather than
upload them in a CSV. This works best if there are only a couple of changes required.
Vlocity does not copy the unchanged rows from previous versions. Instead, it shares rows from all previous
version with the new version. So if you've uploaded version 3, you will see unchanged rows stored in
version 1, rows changed in version 2 but not version 3 stored in version 2, and new and changed rows
stored in version 3 only.
Deleted Rows
In a scenario where you've got three versions of a row-versioned calculation matrix, here's what happens
when you delete different rows from different versions:
• Action: In version 3, delete a row that you updated in version 3 that first existed in version 2.
Result: Vlocity shares the version 2 row in version 3 of the matrix. The version 3 row is deleted.
• Action: In version 3, delete a row that has existed unchanged since version 1.
Result: The row disappears from version 3 of the matrix. The row remains unchanged in version 1 and
version 2.
CAUTION
Once you've chosen Standard as the record type of a calculation matrix, you can't change
it. Choose wisely.
IMPORTANT
Starting in the CME Summer '18 release, the following limits are supported:
Before you start the upload, follow the guidelines below to make sure that your CSV file is formatted for use
as a calculation matrix.
TIP
When it's time to update a calculation matrix with new data--like every time a
government makes a change to its insurance regulations--you can do it with a CSV
file. Vlocity is smart enough to scan your CSV file for new rows and changed data in
existing row. Only those new and changed rows get uploaded, which vastly reduces
the amount of time an upload takes, especially for huge matrices.
You must make sure that all column header names exactly match those in the current
calculation matrix.
2. Create rows.
Each row must include a unique combination of input values.
Multiple rows can contain the same output value or combination of values for different input values.
When you build ranges, each set of values must have the same range values. For example, if the
following conditions are true:
• Ranges are 1, 20, and 300 for input 1.
• Ranges are a, b, and c for input 2.
Here's how the table is formatted:
Here's a more realistic example showing a CSV file that will become a calculation matrix for car values,
to be used to rate auto policies:
TIP
If you're importing a CSV file into an existing calculation matrix, make sure that
column header names in the CSV file match exactly with the column header names in
the calculation matrix. CSV column header names that don’t match any existing
columns are added to the calculation matrix as new columns.
NOTE
You must map all the Header Types: set each Header Type to Input or Output.
11. Select a Data Type for each column from this list:
• Text
• Number
• Currency
• Percent
• Boolean
• Number Range
• Text Range
The Data Type defaults to Text for all newly-uploaded columns.
12. Click Save Data.
13. To see the data rows, click Edit Data.
14. Review your table in Vlocity to be sure that it's all correct. To learn how to edit headers and data, see
Review and Edit a Calculation Matrix.
To see columns that have errors, click Show Errors Only. (The button toggles to Show All Rows after
you click it.)
15. Click Save Data.
16. If your organization has an approval process set up for calculation matrices, click Submit for
Approval.
17. After the calculation matrix is approved, or if your organization doesn't approvals and you're ready to
use this calculation matrix, enable the calculation matrix.
Click the pencil icon to the right of the Enabled checkbox.
Select Enabled.
IMPORTANT
You can't disable an enabled calculation matrix, and you can't edit headers or data on
an enabled calculation. Be sure before you click Enabled.
IMPORTANT
Do not change the Data Type of an existing header unless you have no other
choice. When you change the Data Type, the data in the column can be corrupted,
requiring you to re-enter all the data.
NOTE
You must enter data in every data field. You cannot enable a calculation matrix that
contains empty data fields.
IMPORTANT
You can't disable an enabled calculation matrix, and you can't edit headers or data on
an enabled calculation. Be sure before you click Enabled.
1. From the Calculation Matrix list page, click the name of the matrix. Then click the version of the matrix
you want to clone.
2. Click the down-arrow at the top right of the calculation matrix detail page and choose Create New
Version.
Vlocity opens the new version of the calculation matrix. It includes the following:
• A unique name composed of matrixName vX where X is the new version number
• A new version number
• The same start date as the previous version
• The same end date (or lack of end date) as the previous version
NOTE
If you create a new version of the matrix with over 1,500 rows, only the row headers
are copied into the new version. You must re-upload the data into the new version.
If there are fewer than 1,500 rows, all data is copied into the new version.
The new version does not include a Priority number, and is not enabled.
3. To update the headers and data in the matrix, Upload a CSV File or Review and Edit the Calculation
Matrix.
4. Set new Start Date/Time and End Date/Time for the new matrix.
a. When you enter a Start Date/Time for the new version of the matrix, set it to the date/time when
the previous version ends.
Or
Set a Start Date/Time before the End Date/Time of the previous version and set Priority numbers
for both matrices so Vlocity can choose the correct matrix when it's called.
b. Enable the new matrix when it's ready, even if the Start Date/Time is in the future. Vlocity won't
use the new enabled matrix until the Start Date/Time is reached.
5. Enter a Priority number.
When Vlocity finds more than one enabled calculation matrix that matches the call being handled, it
chooses the calculation matrix with the highest priority. For example, if two enabled calculation
matrices have Priority set to 1 and 2, Vlocity uses the calculation matrix that's set to Priority 2.
6. If your organization has an approval process set up for calculation matrices, click Submit for
Approval.
7. After the calculation matrix is approved, or if your organization doesn't approvals and you're ready to
use this calculation matrix, enable the calculation matrix.
Click the pencil icon to the right of the Enabled checkbox.
Select Enabled.
NOTE
You can't directly disable an enabled calculation matrix, and you can't edit headers or
data on an enabled calculation. Be sure before you click Enabled!
If you need to modify or replace an enabled calculation matrix, you can create and
enable a new version of the calculation matrix, and assign it a higher priority number
than the old matrix.
1. Make sure your groups of matrices can follow all these rules:
• Identical input and output column headers
• Contain at least one and maximum two common input dimensions
• Input variable ranges must all be the same
• The Group Key and Sub Group Key cannot be range inputs
The Group Value and Sub Group Value are usually text inputs, such as a jurisdiction code or a
product code.
2. Create a Grouped Calculation Matrix.
3. Populate the Rest of the Matrices in the Group.
TIP
We call matrix group members Versions.
Be sure that your CSV file is set up to support row-level versioning. To learn how, see Prepare a CSV File
to Upload to a Calculation Matrix.
IMPORTANT
You can't add row-level versioning to an existing matrix that lacks it, because overlapping
effective dates cause errors.
IMPORTANT
Once you've enabled your calculation matrix version, the headers are locked. You won't be
able to change them again.
1. Make sure the CSV is in good shape. Most importantly, make sure all the column headers in the .csv
file are identical to the headers in the existing calculation matrix.
See Prepare a CSV File to Upload to a Calculation Matrix.
2. On the calculation matrix you're updating, click the Related tab.
3. Under Vlocity Calculation Matrix Versions, click New.
4. Enter the following information:
• Name: Enter a name for this version of this calculation matrix.
TIP
Choose a name that makes it easy to understand the contents of this version of the
calculation matrix. For example, CalcMatrix_ChangedRows12-24 or
CalcMatrix_ChangedRowsForWesternStates2020.
• Version Number: Enter a unique version number for this calculation matrix version. This version
number does not relate to the row versions, but Vlocity needs it as a unique identifier for each matrix
version uploaded.
• Enabled: Select this checkbox to enable this version of the calculation matrix.
• Start Date / Time: Enter the start date for the new and updated rows.
IMPORTANT
The Date field is mandatory for row-versioned calculation matrices.
• End Date / Time: Enter the end date for the new and updated rows.
TIP
If you need to update rows with an end date that's not today, don't delete the rows.
Instead, create a .csv file that includes only the rows you want to set an End Date
for.
• Priority: Enter a unique priority number that calculation procedures can use to prioritize which in
which order to search calculation matrices.
NOTE
Don't enter anything into the End Date / Time fields unless you're updating rows
specifically to give them an end date. In row-versioned calculation matrices, Vlocity
sets end dates behind the scenes. If you enter specific end dates, you may get
unpredictable results.
5. Click Save.
6. Click the name of the matrix version you just created.
TIP
You don't have to delete rows from matrices to make Vlocity's row-versioning work. You
can leave existing rows in place. When the matrix is called, the row with the most recent
Start Date is used.
CAUTION
Don't delete all data from any calculation matrix version unless you're absolutely sure you
need to. This action can cause problems with calculation procedures that use data from
the calculation matrix.
For example, you've got a calculation matrix that contains insurance ratings for thirty of these states in the
United States. Because you don't have separate ratings for the other twenty states but you want your
calculation procedure to find a value for those states, you make the State column into a wildcard-enabled
column.
You set up your wildcard column when you first create your calculation matrix. So you need to know the
exact name of the column and the value of the wildcard.
For the State example, the column name and value can be:
1. Find the column or columns for which you want to restrict values.
2. Enter the value you're looking for into the field next to the magnifying glass.
NOTE
Don't use wildcards when you search in a matrix. Use exact values.
To download all the data, navigate to the version of the calculation matrix that you need to download and
click Download CSV. The CSV file containing the whole calculation matrix downloads to your computer.
1. Navigate to the version of the calculation matrix that you want to download.
2. Find the column or columns for which you want to restrict values.
3. Enter the value you're looking for into the field next to the magnifying glass.
4. Click the Search button above the columns.
5. Click Download CSV.
The CSV file containing the search results downloads to your computer.
NOTE
You can't use a split-limit attribute as an Output in a calculation matrix.
• Boolean
• Number Range
• Text Range
IMPORTANT
Do not change the Data Type of an existing header unless you have no other
choice. When you change the Data Type, the data in the column can be corrupted.
If the data becomes corrupted, reimport the CSV file to overwrite the corrupted data.
1. Open the version of the calculation matrix that you want to disable.
2. In the details section, click the pencil icon to the right of End Date/Time.
3. Set the End Date/Time to the date and time that you want the matrix to be disabled.
4. Click Save.
In the following example, the numeric range is defined in the Input column. The Age Range Band describes
how values are treated: all values below 18 fall into the first band, values that are 18 or higher and below 25
fall into the second band, and so on. For example, for age 48, the matrix returns an Age Range Band of 6.
For age 22, it returns an Age Range Band of 1.
When you have multiple inputs that include range, define identical ranges for each variable value. For
example:
Declarative calculation procedures are associated with DataRaptor mappings. Declarative calculation
procedures use DataRaptors to read and save data from Salesforce objects. You can add variables from
the DataRaptor extract, such as Original Price (Currency) and Quantity (Number). For example, you can
add a currency variable named UnitPrice as a calculation output that can be used in a DataRaptor load to
update a field in a Salesforce object.
• Matrix: If you have enabled Calculation Matrices, a calculation procedure can include a Calculation Matrix
in the calculation steps. For more information about Calculation Matrices, see Calculation Matrices.
• Formula: For example, you can specify the UnitPrice variable as output. If you are using DataRaptor
mappings, the calculation procedure output variable name must match the DataRaptor Load input
variable name
Each step in a Calculation Procedure can have a condition that must be met in order for the step to be
executed. See Conditional Steps For Calculation Procedures.
In the Preprocessor Class Name section of the calculation procedure, you must specify the class that
implements a nameSpace.VlocityOpenInterface calculation method.
To include the output from a calculation step in the final output, select Include in output.
Case 2 — Attribute-based pricing, but no volume-based pricing across multiple line items:
• You cannot specify the input or output DataRaptors in the Calculation Procedure.
• A preprocessor is required to format the input data for use in the Calculation Matrix.
• A postprocessor is required to evaluate the quantities across all lines in the header object.
By default, the new (cloned) calculation procedure does not have any versions set to Enabled. You have to
manually enable one of the versions to use it.
Any calculation matrices used by the calculation procedure are not cloned.
In Salesforce Lightning, you add a Clone button to the Calculation Procedure object, then add the button to
the Calculation Procedure page layout:
1. Go to Setup > Object Manager > Vlocity Calculation Procedure > Buttons, Links, and Actions.
2. Click New Button or Link.
3. Enter a Label and a Name for the button.
4. In Display Type, choose either Detail Page Button or Detail Page Link.
5. Choose a Behavior.
Recommended: Display in existing window with sidebar.
6. In Content Source, choose Visualforce Page.
7. In Content, choose CalculationProcedureCloner.
8. Click Save.
9. Go to Setup > Object Manager > Vlocity Calculation Procedure > Page Layouts.
TIP
If you can't see the Clone button on your screen, click the gray down-arrow at the
top right of the page and select Clone.
c. In the New Vlocity Calculation Procedure window, enter a name for your new calculation
procedure, then click Save.
See Also
• Declarative Calculation Procedures
The following are a few guidelines for using variables in Calculation Procedures:
x = 2
y = 3
variable = 0
variable = 0
See Also
To specify a condition, check Conditional Step and enter the condition for the step. If the condition
compares a variable with a constant, the constant must be defined in the Constant section.
Calculation procedures can calculate coverage premiums, insured party premiums, insured item premiums,
and insurance policy premiums. Calculation procedures can calculate attribute-based prices for products.
NOTE
Beginning with the Summer '19 release, declarative calculation procedures support:
• Constants
All the constants you need for each calculation step
• Variables
Input variables, all the variables you need for each calculation step and the group key and subgroup key
if you're calling a group of matrices all the variables in calculation matrices you call in matrix lookup steps
• Calculation steps, including:
• Calculations
Each calculation required to get to the correct result of the whole calculation procedure
• Matrix lookups
Finds one or more variable values in calculation matrices, based on one or more variable inputs
• Aggregation steps (optional)
If this calculation procedure will handle an array of inputs, aggregation steps will perform calculations
over the output sets.
OmniScripts, Integration Procedures, and other Vlocity processes can call a calculation procedure. The
calculation procedure takes a JSON that gives the calculation procedure the ingredients it needs to
complete its calculation.
Calculation procedures can take a single input, a single set of inputs, or multiple arrays of inputs.
{
"input": {
"opMVRPoints": "0",
"opAccidentPoints": "0",
"driverGoodStudent": "N",
"driverMaritalStatus": "M",
"driverGender": "M",
"driverYrsExp": "14",
"driverMileage": "7500",
"driverUse": "Business"
}
}
The calculation procedure runs through all its steps once for a single input or single array of inputs. It
returns a calculation or array of calculations. The output JSON for the calculation procedure that processed
this input is:
{
"output": [
{
"calculationResults": [
{
"driverCCD": 1.11,
"driverCOLL": 0.92,
"driverMED": 0.91,
"driverUM": 0.92,
"driverBIPD": 0.86,
"autoSafeDriver__driverSafe": "Y",
"ID": "input"
}
],
"aggregationResults": {}
}
]
}
Because the calculation procedure did not have any aggregation steps, there are no aggregation results in
the output JSON.
For example, in a simple case, the calculation procedure needs to calculate a group premium based on a
census. Each census member has a set of input values that's passed to the calculation procedure. The
calculation procedure runs all of its calculation steps for each member, resulting in an output (premium) for
each member. So now it's got an array of outputs. To sum the premiums of all the members of the census,
an aggregation step sums all the premium output variables.
NOTE
The aggByKey functionality in the following example is available in Vlocity Insuranceand
Vlocity Health only.
In a more complex scenario, an auto insurance calculation procedure must calculate a premium per
instance of car and driver. For example, a user needs to rate out a policy for two cars—a Toyota Prius and
a Tesla Model S. The Prius is driven by Roger and Amy, and the Model S is driven by Amy and Steve. The
calculation procedure needs to calculate and aggregate results separately for the Prius and for the Model
S.
In this case:
• instanceKey = car+driver
• aggByKey = carModel
To complete this calculation with aggregation, the calculation procedure uses aggByKeys. When the
calculation procedure receives aggByKeys as an input, it runs through the aggregation steps once per
aggByKey. Here's what that looks like:
So for the example above, the calculation procedure groups the results of its four calculation step runs into
two subsets: one for the instances for the Prius and another for the instances for the Model S. Then it runs
the aggregation steps twice: once for the Prius and again for the Model S. The calculation procedure
returns two aggregation results—one for each vehicle.
You don't need to add aggByKeys and instanceKeys to your calculation procedure as variables. As long as
the aggByKey option and includeInputKeys option are set correctly in the services, the
getRatedProduct and repriceProduct services will pass the keys in automatically as part of the input
JSON.
If you think you need to use preprocessor classes or postprocessor classes, please contact your Vlocity
representative to verify that your use case requires that you write these classes. (We have a lot of tools that
are easier and more configurable now, and some of those might work better for you.)
NOTE
You can't use the same name for a variable that you use for a constant. Variables and
constants use the same namespace.
1. Add variables:
a. In the Variables and Constants section, click +Add Variable.
NOTE
Before you enter output variables, check the calculation matrices this calculation
matrix will use.
An input variable that requires a user input cannot be used as an output variable.
2. Add constants:
a. In the Variables and Constants section, click +Add Constant.
b. Enter the constant data:
• Name: A unique name for the constant.
• Data Type: Choose one of the available types.
• Precision: Optional. Enter the level of precision you want Vlocity to adhere to for this constant.
For example, enter 0.25 to make this constant's value precise to the nearest quarter of an
integer. For a dollar value example, enter 10 to make the constant precise to the nearest $10.
Enter 0 if this calculation procedure must use the precise value of this constant, with no
adjustment.
• Value: The value of this constant.
3. Click Save Calculation Procedure.
See Also
1. On the Procedure Calculation tab of the calculation procedure's page, scroll down to the Calculation
Steps section.
2. Click + Add Step
3. Select Calculation.
4. In the first field, enter a constant or a variable, then press Return.
5. Enter an operator and press Return. Choose from the following operators:
• + (plus sign)
• – (minus sign)
• * (asterisk)
• / (backslash)
• ^ (caret)
• ( (open parentheses)
• ) (closed parentheses)
6. Enter the next item and press Return.
7. Keep entering operators and items until you've completed the calculation.
8. To make this calculation step conditional, select Conditional Step.
Enter the condition that will invoke this calculation step.
9. To include the calculation output in the calculation output data, select Include in Calculation Output.
10. Click Save Calculation Procedure.
See Also
1. On the Vlocity Calculation Procedure Version Detail page, scroll down to the Pricing Calculation
section.
2. In the Aggregation Step area, click Add Step.
3. Select Aggregation.
4. In the first field, enter one of the following operators:
• SUM
• AVG
• MIN
• MAX
5. Enter the variable to be aggregated enclosed in parentheses. For example, (price).
6. In the second field, enter a variable to represent the aggregated variable. For example, totalPrice.
7. Create all the other aggregation steps you need to complete the aggregation.
8. Click Save Calculation Procedure.
TIP
If you tried Simulate Final Step and didn't get the correct result, do Simulate All Steps
then examine the results starting with the first step to see which calculation step isn't
working right.
1. Open the version of the calculation procedure you want to clone, then click Create New Version. You
may have to click the gray down-arrow at the top right of the window to find this link.
The clone includes all the details, variables, constants, and calculation steps (calculations and matrix
lookups) from the previous version. But the new version is not set to enabled.
2. To make changes to the calculation procedure details, click Edit at the top right.
a. Change detail values such as the Start Date/Time and End Date/Time.
b. Click Save.
Calculation procedures support looping calculations starting in the Vlocity Insurance Winter '18 Major
Release.
For example, you can create a looping calculation procedure for a life insurance policy. The looping
calculation procedure calculates the policy value for each year from the current age of the policy holder to
the policy holder's age at the end of the policy term. The calculation takes a current age (35 years), end
age (65 years), and an interval of 1 to calculate on an annual basis. The calculation runs, looping 30 times.
All input variables remaining constant, but the index starts at 35 and increments by one through 65. The
output shows the user the value of the policy each year from the start date to the end of the term.
Index Variable
The index variable becomes available when you set Enable Looping on the Calculation Procedure
Version. To add it to calculation steps, type index in a calculation step.
When a calculation procedure has looping set up and enabled, it increments index based on the looping
Interval variable (whatever you've named it), from looping start until looping end. You can then use
index to change the calculation on each looping pass. For example, you can add it to an Age to increment
the value of Age for each loop.
NOTE
The system-provided index variable does not show up in the list of variables. You don't
need to create it.
In this example, calculation step 3 is set up to calculate the year of the policy, looping per interval (one
year). Step 4 calculates the age of the policy holder, looping per interval (one), starting with the policy
holder's age at the start of the policy.
PREVIOUS Function
You can use the PREVIOUS function to get the previous looped iteration's result. The calculation step can
use this function to access a previous iteration's variable results and calculate it with other variables.
• Variable name
Usually set up as a constant of type Text
• previousIterator
The index of the previous iteration result set from which to get the value for the variable
• ITERATION
System-provided variable for accumulated results
In this example, the PREVIOUS function uses previous iterations to calculate the cash value of the policy
per iteration (one).
{
"output": [
{
"calculationResults": [
{
"index": 0,
"intervalNumber": 0,
"deathBenefit": 3000,
"deathBenefitGuaranty": 3000,
"cashValue": 0,
"intervalDividend": 0,
"cashInvestment": 2995.83,
"cashInsurance": 4.17,
"deathProbability": 0.00139,
"currentMortality__currentDeathProbability": 0.002402,
"currentAge": 47,
"intervalDate": "2017-12-07",
"endAge": 52,
"ID": "input"
},
{
"index": 1,
"intervalNumber": 1,
"deathBenefit": 5995.83,
"deathBenefitGuaranty": 3000,
"cashValue": 2995.83,
"intervalDividend": 0,
"cashInvestment": 2996.52,
"cashInsurance": 3.48,
"deathProbability": 0.00116,
"currentMortality__currentDeathProbability": 0.002639,
"currentAge": 48,
"intervalDate": "2018-12-07",
"endAge": 52,
"ID": "input"
},
{
"index": 2,
"intervalNumber": 2,
"deathBenefit": 8992.35,
"deathBenefitGuaranty": 3000,
"cashValue": 5992.35,
"intervalDividend": 44.94,
"cashInvestment": 2997.33,
"cashInsurance": 2.67,
"deathProbability": 0.00089,
"currentMortality__currentDeathProbability": 0.002903,
"currentAge": 49,
"intervalDate": "2019-12-07",
"endAge": 52,
"ID": "input"
}
],
"aggregationResults": {}
}
]
}
Example 2: OmniScript
In this example, the looping calculation procedure is added to an OmniScript as a Calculation Action.
The looping calculation creates a list of results. You can display these results in a format of your choice. In
the example below, a custom template displays the results in a table that shows the values of the policy
year over year (incremented by 1).
6. Drag the following items from Fields onto the Vlocity Calculation Procedure Version Detail section:
• Enable Looping
• Loop Specification
7. Click Save.
8. Return to the browser tab for the Calculation Procedure Version you're using and refresh the browser.
9. Click the pencil icon for the Enable Looping field and check the Enable Looping box.
10. In the Loop Specification field, type a JSON value in this format:
{"loopingStart":"StartVariableName","loopingEnd":"TermVariableName","loopin
gInterval":"IntervalVariableName"}
The values must match the names of the variables you will set in the calculation procedure in the next
step.
For example:
return success;
}
Vlocity Intelligence
Vlocity Intelligence is a system composed of Resources, Attributes, and Intelligence Machines. A Vlocity
Intelligence Machine reviews the attribute profile data from Contacts, Accounts, Interactions, or any
standard or custom object, and applies learning algorithms to that data to determine the most appropriate
resources to present to your clients.
This feature can help you better understand how your customers respond, to make your marketing and
client support efforts more effective. For example, while a contact center agent is answering a customer’s
question about their cable service, the agent can be presented with material to assist in upselling the
customer to a new Professional Sports package based on the customer’s interest in football and baseball.
You can add any important item you want to present to your customers as an Intelligence Resource.
Resources can be OmniScripts, help articles, documents with promotional content, and more. After a user
views the Resource, the user can accept or reject it. Vlocity Intelligence ranks the User Profile Attributes
which are likelier to accept or reject certain Intelligence Resources based on the Views, Accepts, and
Rejects of the Intelligence Resource's Profile Attributes.
IMPORTANT
Beginning December 31, 2020, Salesforce will end support for Vlocity Intelligence. We
believe we can offer customers better options for recommending actions and offers
through a tighter integration with Salesforce Einstein.
The feature will not be included in any renewals beyond September 1st, 2020. Existing
customers may continue to use Vlocity Intelligence if installed. However, it will not be
supported after the end of 2020 and new releases thereafter will not include the feature.
• Vlocity Insurance
• Vlocity Health
• Vlocity Communications
• Vlocity Media
• Vlocity Energy
• Vlocity Public Sector
1. First, determine which items you want to get in front of your clients, such as products, offers,
knowledge articles, OmniScripts, documents, etc. These items are added to your Intelligence
Resources. (For more information, see Add New Intelligence Resources.)
2. Next, consider what attributes apply to the audience you are targeting and what resources you’re trying
to deliver to them. Even if your theory ends up being incorrect, Vlocity Intelligence is smart enough to
learn from the real-life responses and adapt by applying the correct attributes to the resource or object.
For example, your company might want to run a promotion offering clients tickets to sporting events. To
get started, add the games that you are offering.
3. After you Add New Intelligence Resources, determine which tickets to offer to which clients. You decide
to offer tickets based on the client's favorite sports and where the client lives.
4. Next, Add a New Attribute Category for Favorite Sport, and one for Location. The Vlocity Intelligence
Machine reviews the attributes for the client and displays the best tickets for a client based on those
attributes. If a client's favorite sport is Basketball and the client lives in the Bay Area, offer them
the Warriors Tickets resource, which shares the Basketball and Bay Area attributes.
However, if the client's geographic region is Los Angeles County, offer them the Lakers
Tickets resource.
To add Intelligence Resources, go to the Vlocity Intelligence Resources tab and click the New button.
The Target Object Type and the Target Object Key determine where the link of the resources goes when
it is clicked. For example, If you use Vlocity Action, the Target Object Type is VlocityAction and the Target
Object Key is the action's name. If the resource is a Product, the Target Object Type is Product2 and the
Target Object Key is the record ID of the Product.
By choosing "Query" for the Data Source, you can create a Virtual Resource. Virtual Resources function as
a single resource that can load additional records based on the specified query. The query is defined under
the resource's Data Source, and supports the use of merge fields, for example, Select Name, Id,
CustomField__c from Product2 where CategoryCode like '%ProductCat%'.
Resources can be active or inactive, so if you have time sensitive or seasonal promotions, you can mark
them inactive when they are no longer offered. These dates can be specified using Effective Date and
Expiration Date.
After creating the resource, you can view and edit details from the resource's page. This page enables you
to edit the appearance of the resources that display on the Card Layout. The image below shows a Card
Layout using Vlocity Intelligence.
Headline and Sub-Title displays on the Card when viewing the resource. The description is displayed under
the name.
Under the Images section, upload the image you you want displayed on the Card Layout. See Display
Resources on the Card Layout for more information.
Under the Training Attributes section, enter the initial data about the targets for this resource. For
example, if your resource is targeted towards customers looking to insure art purchases, add attributes for
art collector snd people with a noted concern about theft.
As the resource is viewed, accepted, or rejected, the data for this section is updated: the Intelligence
Machine learns which Profile Attributes are most likely to accept the Resource and adapts accordingly. To
view this behavior, go to the Activity section.
When you Add New Intelligence Resources, the Target Object Type and the Target Object Key specify
where the link of the Resources goes. For details about actions, see Configuring Vlocity Actions.
Vlocity Actions
Vlocity Actions are automatically generated URLS that launch Vlocity OmniScripts, Vlocity Cards
components, web pages, or external applications. Actions are typically specific to a given object type, such
as Account, Contact, Policy, or Asset.
The Vlocity Action API returns all the Actions that are associated with an object. The display text, icons, and
links can be displayed to enable the user to invoke the Action in the object context. See also Using Actions
with Cards.
To add values to the Applicable Types picklist, use the API name of the object, for example:
Household__c. The value can be a Sobject name or any string. This value is used in the Action page to
match the objType parameter in ActionComponent. (If the action is using a Filter, the Applicable
Type must be the SObject name because it is used in an SOQL query, for example: Policy__c.)
Applicable This field determines what actions to display for a user profile. Default value is All. An admin can add other
User Profile user profiles to the picklist. For example, if the current login user's profile is Vlocity Health, only the actions
with Applicable User Profile = All Or Vlocity Health appear.
Active Check to make the action visible.
Display Enter the text to be displayed as the label for the action.
Label
You can upload a custom icon as an attachment from the Related tab. The latest attached image loaded
(with a size less than 50 KB) is used as the custom image. If both the Vlocity icon and the custom icon
(attachment) are specified, the custom icon is used. When the custom icon is not uploaded, the Vlocity icon
is used.
Open URL In Select Current Window or New Tab/Window to indicate where to open the target URL.
Link Type Pick list values depend on where the action is being launched from. Link Types include :
NOTE
Select this checkbox if the action is a built-in Contracts Document action. Do not
check this flag for a custom action. See Defining Vlocity Actions for Contracts.
Target URL The URL the action navigates to. It can be a simple URL, such as /apex/<pageName>, or a URL with
parameters, for example:
/apex/TestPolicyOmniPage?id={0}#/OmniScriptType/Policy/OmniScriptSubType/Auto/
OmniScriptLang/English/ContextId/{0}/PrefillDataRaptorBundle//true.
To navigate to a Lightning or Lightning Community Page, prefix the relative URL with ltngpage:. For
example, ltngpage:/Home will redirect to your community home page.
To open a Visualforce page from Salesforce's Lightning container, prefix the relative URL with ltng. For
example, ltng:/apex/CustomVFPage, will redirect to the CustomVFPage.
• /apex/NameSpace__OmniScriptUniversalPageWHeader?id={0}#/OmniScriptType/Policy/
OmniScriptSubType/Auto/OmniScriptLang/English/ContextId/{0}/
PrefillDataRaptorBundle//true
• /apex/cards_cme__ConsoleCards?id={0}&layout=lex-layout
• /apex/NameSpace__ConsoleCards?id={0}&layout=Sample-GetObjectFromInteraction
For more information, see Target URL and URL Parameters.
For example, "AccountId, Id" replaces {0} in Target URL with value of Applicable Type's AccountId
value, and replaces {1} in Target URL with value of Applicable Type's Id value.
This example specifies that the action is displayed only for active Policies with policy type ='Auto'. The filter
condition is applicable only for a valid Salesforce object. You can filter by any field on the object.
Additional For a filter that is longer than 255 characters.
Filter
State Model The Contract State Model that defines the contract life cycle associated with this action. See Defining Vlocity
Actions for Contracts.
To State The state associated with this action. Vlocity states are used in Contract object. See Configuring the
Contract State Model.
Invocation These fields store Apex invocation class name and method name. The class must implement
Class Name VlocityOpenInterface/VlocityOpenInterface2. See Vlocity Interfaces and Implementations.
Invocation
Method Name
Validation These fields store validation class name and method name. The class must implement
Class Name VlocityOpenInterface/VlocityOpenInterface2. It is used in the Contract Document Management
UI Action tool bar to display a warning message. See Vlocity Interfaces and Implementations.
Validation
Method Name
To add Attributes to an object page by creating your own Visualforce component for that object, perform the
following steps in Salesforce Classic:
1. From Setup, type Pages in Quick Find, then click Visualforce Pages.
2. Click New.
3. Add a Label and Name, for example, OpportunityAttributesPage.
4. Check the box labeled Available for Lightning Experience, Lightning Communities, and the
mobile app.
5. In the Visualforce markup section, add the following code:
Attributes can be Product Attributes or Profile Attributes. Product attributes are used with Policy Product
Management.
The type of attribute is defined at the category level. You must have an existing Attribute Category to add
the new attributes to. See Create a New Attribute Category.
After the new machine is added, you can associate the appropriate resources and attributes with this
machine.
You can specify the attribute categories that have the highest impact on the rating of the resources to be
displayed. For more information on how category weight determines which resources are displayed, see
Ranking Intelligence Resources.
For example, if you increase the Category Weight for an Attribute Category called Phone Manufacturer
that contains attributes like Apple, Android, or Samsung, the resources with attributes in that Attribute
Category have a greater impact on the overall score.
/services/apexrest/vlocityinsdemo/v1/acuity/MachineName?
contextId={{params.id}}&pageSize=NumberOfOffersToDisplay
• Use Formula rules with formulas that includes data from the object record being processed. For more
information, see Use Formulas With Attribute Assignment Rules.
• Use Field rules when setting the attribute value to the specified field's value on the SObject Record being
processed. For more information, see Use Field Values With Attribute Assignment Rules.
• Use Tracking Formula rules when a formula includes VlocityTrackingEntry__c data that is related to the
Salesforce object that is being processed. Tracking Formulas can be used to apply an attribute in
response to actions taken during a Vlocity Interaction. For more information, see Vlocity Intelligent
Interactions.
For example, to apply the Billing State of the Account to an attribute called "State," set the Service of your
Attribute Assignment Rule to:
BillingState
• &&
• AND
• ||
• OR
• >
• >=
• <
• <=
• =
• ==
• !=
• <>
• LIKE
• NOT LIKE
• +
• -
• *
• /
• %
• ^
• ABS
• AVG
• COUNTQUERY
• IF
• MAX
• MIN
• QUERY
• SUM
All tokens in the formula, except ones in quotation marks, must be separated by a space, including
parenthesis and commas.
Variable names in formulas cannot contain spaces. Replace spaces with underscores. For example,
change "Last Name + ',' + First Name" to "Last_Name + ',' + First_Name"
To add the Medicaid Eligible attribute to a contact if they are 65 or older, use the following formula
when creating your Attribute Assignment Rule:
Age >= 65
To change the contact's Market Segment attribute to Super Affluent if the income field is from
$250,000 to $500,000, use the following formula when creating your Attribute Assignment Rule:
To mark accounts that have a sum of order greater than 100,000 as a Key Client, use the following
formula when creating your Attribute Assignment Rule:
To identify a client with a brand preference, use the following formula when creating your Attribute
Assignment Rule:
You can apply Apple as an attribute and modify the impact that attribute has on certain resources where
brand is a factor. For more information, see Ranking Intelligence Resources.
Vlocity Intelligent Interactions use a Tracking Formula type for Attribute Assignment Rules. Tracking
Formulas have the same syntax as Assignment Rules, but your Tracking Formula checks the related
Tracking Entries for the Salesforce object.
A tracking entry is the record of a single action that occurs during a Vlocity Interaction. Below is the JSON
of a sample tracking entry:
For example, if you have noticed that customers who ask about their effective term are often having trouble
with payment, you can create a tracking formula to add an attribute of Payment Difficulty that
displays a resource on available extensions or discounts. Use the following tracking formula when creating
your Attribute Assignment Rule:
1. Log in to Salesforce.
2. Browse to the Developer Workbench and log in with your credentials.
3. For the Jump to option, select Apex Execute from the list.
4. Enter the following code in the text box and click Execute:
vlocityinsdemo.VFActionFunctionController.invokeServiceRun( 'AttributeAssignmen
tRuleService', 'createBatch', '{"sObjectType":"SObjectType"}', '{}');
The Intelligence Machine is exported, including the attributes and resources used in the machine. The
resulting DataPack can be imported into another org from the Vlocity DataPacks tab. For more information
on importing, see Import a DataPack.
Importing a DataPack
Before importing a DataPack, go to Vlocity Cards and Vlocity OmniScript Designer to deactivate any
layouts that could be affected by the import. You may also need to deactivate any Vlocity Templates that
could be affected by the import.
NOTE
When importing and exporting data, the maximum file size is 2MB.
To import a DataPack:
The OmniScript formula builder and attribute rules use a client-side JavaScript expression engine that is
evaluated in the browser and allows for fast, real-time applications.
For information on operators, functions, and formula syntax, see Function Reference.
For more information on the syntax of the OmniScript formula builder, see Creating Formula Fields in an
OmniScript.
Formula Overview
The formula builder that is available in DataRaptors and Integration Procedures, and in Vlocity Intelligence,
eligibility rules, underwriting rules, state rules, and calculation procedures enables you to use functions to
define calculations required by your business logic.
For example, an insurance product might insure only art pieces that were created before a specified year.
You can define an eligibility rule that uses a formula to evaluate the item's creation date attribute, as shown
in the figures below.
For information on operators, functions, and formula syntax, see Function Reference. For information on
eligibility rules, see Creating Eligibility Rules.
For details about the operators and functions that you can use in formulas, see Function Reference.
To create a formula:
Account:@GoldStarAccount == "On"
You can also use relationship notation in formulas to reference fields in a parent object. See
Relationship Notation versus Multiple Extract Steps.
4. In the Formula Result Path field, specify a JSON node in which to store the formula result.
5. Map the result to the final output as follows:
• Extract: Go to the Output tab and map the formula result to the output structure. Use a colon (:) to
delimit levels in the input and output paths in mappings.
• Transform: Go to the Transforms tab and map the formula result to the output structure. Use a
colon (:) to delimit levels in the input and output paths in mappings.
• Load: For each sObject that you want to update, go to its Fields tab and map the formula result to
the specific field that you want to update.
NOTE
If a variable name contains spaces or non-alphanumeric characters, enclose the variable
name in double quotes and precede it with var: in formulas. For example, if the JSON
node name is Primary Guardian, specify it in formulas as var:"Primary
Guardian".
If the name of a custom field includes special characters, sometimes you can't reference
the field in a formula.
Before Winter '20, the result of a LIST function in a formula was saved to a VLOCITY-
FORMULA-LIST node under the Formula Result Path. Beginning with Winter '20, the
result is saved directly under the Formula Result Path.
See Also
For details about the functions and operators that you can use in formulas, see the Function Reference.
Function Reference
You can use the following operators and functions in DataRaptors and Integration Procedures, and in
Vlocity Intelligence, eligibility rules, underwriting rules, state rules, and calculation procedures.
Supported Operators
Logical operators:
String operators:
• LIKE — True if the left-hand side contains the right-hand side. For example, "ABC" LIKE "A" returns
true.
• NOTLIKE — True if the left-hand side does not contain the right-hand side. For example, "ABC"
NOTLIKE "A" returns false.
• ~= — Performs a case insensitive comparison. For example, "ABC" ~= "abc" returns true. Introduced
in Summer '20.
Supported Functions
Functio Return Example
n s
ABS Absolut ABS(-1) returns 1
e value
of the
specifie
d
number
ADDDA Adds ADDDAY("1999-01-01",100) returns "1999-04-11 00:00:00"
Y the
specifie
d
number
of days
to the
specifie
d date
and
returns
the
resultin
g date.
If the
input
includes
a LIST
function
, the
LIST
part of
the
input is
saved
to
a VLOC
ITY-
FORMUL
A-
LIST k
ey. See
List
Input in
Custom
Functio
ns.
Availabl
e in
Vlocity
Health
and
Insuran
ce
Spring
'21 and
later
release
s.
Availabl
e in
Winter
'20 and
later
release
s.
DOWN Use ROUND(2.572, 2, DOWN) returns 2.57
with
ROUND
to
specify
that the
roundin
g result
is
rounded
down
(toward
s zero).
EOM For a EOM(Account:Cases:CreatedDate)
specifie
d date,
returns
the date
of the
last day
of the
month.
EXIST( Returns EXIST(rentDwelling.dwBusUse, 'office')
search true if
List, the
target specifie
Value) d target
value is
found in
the list.
• 2019-
02-02
T00:0
0:00
• 2018-
12-30
T00:0
0:00.
0000
00Z
You can
supply
an
optional
output
formatti
ng
paramet
er using
Simple
DateFor
mat
notation
.
Specifyi
ng GMT
times is
recomm
ended.
These
are
convert
ed to
the
user's
time
zone.
The
default
time is
00:00:0
0 GMT.
The
default
date is
01-01-1
970, so
specifyi
ng a
complet
e date
is
strongly
recomm
ended.
If no
time
zone
name
paramet
er is
specifie
d, the
default
is the
current
user’s
time
zone.
For a
list of
time
zone
names,
see the
List of
tz
databas
e time
zones
Wikiped
ia page.
If no
output
format
paramet
er is
specifie
d, the
default
output
format
is yyyy-
MM-
dd'T'HH
:mm:ss.
SSSZ.
HALF_ Use ROUND(2.57, 1, HALF_EVEN) returns 2.6, which is rounded up to the nearest even one-decimal place.
EVEN with
ROUND
to
specify
that the
roundin
g result
is
rounded
rounded
towards
the
nearest
neighbo
r (up or
down)
unless
the
neighbo
rs are
equidist
ant, in
which
case it
rounds
to the
nearest
even
neighbo
r.
Behave
s as for
ROUND
HALF_
UP if
the digit
to the
left of
the
discard
ed
fraction
is odd;
behave
s as for
ROUND
HALF_
DOWN
if it is
even.
You can
use IF
to filter
a list.
The
second
exampl
e filters
an input
list of
phones
to an
output
list of
only
Apple
phones.
The
third
exampl
e
remove
s an
initial
dollar
sign if it
is
present,
leaving
a
number
that can
be used
in
calculati
ons.
The
fourth
exampl
e
demons
trates
nesting
of IF
function
s.
Drivers
under
25
qualify
for a
discoun
t if
they’re
good
student
s, and
drivers
over 25
qualify if
they
refer
two or
more
friends.
Takes
one or
more
INPUT('
Key',Val
ue)
pairs as
inputs
to the
Integrati
on
Proced
ure.
The
'Output
Key' is
the IP
Respon
se
Action
output
JSON
key to
get the
resultin
g value.
ISBLAN Returns ISBLANK('Marty') returns false
K true if
the
argume
nt is
blank,
false if it
is not.
Availabl
e in
Vlocity
Health
and
Insuran
ce
Spring
'21 and
later
release
s.
MIN Returns MIN(1,2,3,4,5,6,7,8,9,10) returns 1
the
lowest You can use MIN on a JSON array. For example, AVG(List:Item) returns 3 for the following sample data:
in a list
{
of
"List": [
values
{
"Item": 3
},
{
"Item": 4
},
{
"Item": 5
}
]
}
MONT Returns MONTH("1999-01-11") returns 1
H the
month
of the
specifie
d date
as an
integer.
NOTEX Returns NOTEXIST(rentDwelling.dwBusUse, 'office')
IST(se true if
archLi the
st, specifie
target d target
Value) value is
not
found in
the list.
You can
use
NOW to
specify
dates
and
times
relative
to the
current
date
and
time.
Output
Format:
List<Ma
p<Strin
g,Objec
t>>
QUERY Execute QUERY ("SELECT Name FROM Account WHERE BillingState ='CA'")
sa
SOQL You can also pass in values. For example:
query
QUERY( "SELECT AccountId FROM User WHERE Id = '{0}'",$Vlocity.UserId )
that
returns
a JSON
list of
values.
The
query
cannot
retrieve
more
than
one
column.
Availabl
e in
Winter
'20 and
later
release
s.
You can
also
use the
UP,
DOWN,
HALF_
UP,
HALF_
DOWN,
and
HALF_
EVEN
paramet
ers to
refine
the
roundin
g
results.
Availabl
e in
Winter
'20 and
later
release
s.
Syntax:
SORTB
Y(LIS
T(Inpu
tList)
,
'key1'
,
'key2'
...,
[:DSC]
)
SQRT Calculat SQRT(12 * 3) returns 6
es the
square
root of a
value.
You can ADDDAY(EOM(ADDMONTH(TODAY(),-1)),1) returns the first day of the current month
use
ADDDAY(EOM(ADDMONTH(TODAY(),0)),1) returns the first day of next month
TODAY
to CONCAT(YEAR(ADDYEAR(TODAY(),1)),"-01-01") returns the first day of next year
specify
dates
relative
to the
current
date.
TOSTRI Convert TOSTRING(3.0) returns "3.0"
NG(dat s any
a) input to TOSTRING([4,5]) returns "4,5"
a literal
TOSTRING({ "key": "value" }) returns "{key=value}"
String.
Note TOSTRING([ { "key": "value" }, { "key2": "value2" } ])
how it
differs returns "{key=value}, {key2=value2}"
from
SERIAL
IZE in
the way
it
convert
s JSON
data.
Availabl
e in
Winter
'20 and
later
release
s.
The
StartN
ode
paramet
er must
be a
hard-
coded
node. It
can be
a path
such as
Data:Na
me.
Each
NodeVa
r
paramet
er must
be an
input
node
with the
name of
another
node as
its
value.
If more
than
one
NodeVa
r is
specifie
d, the
previou
s
NodeVa
r
defines
the
starting
node for
the next
NodeVa
r. You
can
retrieve
any
number
of
levels.
YEAR Returns YEAR("1999-01-11") returns 1999
the year
of the
specifie
d date
as an
integer.
NOTE
In Vlocity Health and Insurance Spring '21 and later releases, you can use the
CustomFunction function instead. See Function Reference.
1. Go to Setup.
2. In the Quick Find box, enter apex.
3. Click Apex Classes.
4. Note the Namespace Prefix in use under the Version Settings tab (for example, vlocity_cmt).
5. Click New.
6. Enter the Apex code in the Apex Class tab.
7. Click Save.
See Also
See Also
NOTE
In release Vlocity Health and Insurance Spring '21 or later, you don't need to perform this
task. Just use the CustomFunction function. See Function Reference.
1. Go to Setup.
2. In the Quick Find box, enter custom.
3. Click Custom Metadata Types.
4. Click Function Definition.
5. Click Manage Function Definitions.
6. Click New.
7. Specify settings as follows:
• Label: The function name displayed in the list on the Function Definitions tab.
• Function Definition Name: The unique function name used by the API and managed packages, and
which you use in formulas. The name must begin with a letter and use only alphanumeric characters
and underscores. The name cannot end with an underscore or have two consecutive underscores.
• ClassName: The Apex class containing the method that implements the logic for the function.
• Method Name: The method that implements the logic for the function.
8. To support the Apex code in the example above, you must add two function definitions with the
following settings:
• SUM
• Label: SUM
• Function Definition Name: SUM
• ClassName: CustomFunctionImplementation
• Method Name: sum
• SPLIT
• Label: SPLIT
• Function Definition Name: SPLIT
• ClassName: CustomFunctionImplementation
• Method Name: split
9. Click Save.
See Also
For example:
// Rest of Function
}
See Also
For example, you can create a DataRaptor to test the SUM function:
{
"a": 2,
"b": 3
}
4. Go to the Formulas tab and click Add Formula.
5. Enter SUM(a, b) in the Formula field and total in the Formula Result Path.
6. Go to the Transforms tab, click Quick Match, and click Auto Match.
7. Go to the Preview tab and click Execute. The Response should look like this, although the items might
be in a different order:
{
"a": 2,
"b": 3,
"total": 5
}
See Also
The Tracking Service writes data to the Tracking Entry object: VlocityTrackingEntry__c. Vlocity
components, includingVlocity Intelligence, Vlocity OmniAnalytics, OmniScripts, Cards Framework, and
Integration Procedures, can call the Tracking Service. The Tracking Entry object contains the custom fields
to ensure the service works, and you can add fields to hold additional data you want to track.
The Vlocity Tracking Service class receives JSON data and writes it to the Tracking Entry object. The class
matches JSON keys to Salesforce custom field names and writes the JSON values to the field values. For
example, the class writes the value held in the JSON key ElapsedTime to the custom field
ElapsedTime__c.
This diagram shows how an out-of-box OmniScript would use the Tracking Service.
To configure triggers for custom fields, see Event Tracking for Custom Fields.
1. Go to Setup.
• In Lightning Experience, click the gear icon and select Setup from the menu.
• In Salesforce Classic, click the user menu and select Setup from the menu.
2. In the Quick Find field, enter Custom Settings.
3. Click Custom Settings.
4. Click the letter T in the index across the top.
5. To the left of Trigger Setup, click Manage.
6. Click New.
7. Enter one of the following settings in the Name field.
Track.CardPreview
Intelligence Track.Acuity
You can enable tracking for specific events of specific component types. For example, to enable only
StepActionTime events for OmniScripts, create a Track.OmniScript.StepActionTime trigger.
You can enable tracking for specific Integration Procedures using a trigger of the format
Track.Type_SubType. For example, if the Type is CheckContact and the SubType is CreditScore,
the trigger name would be Track.CheckContact_CreditScore. When one Integration Procedure
calls another, and you enable tracking only in the calling Integration Procedure, events in the called
Integration Procedure are also tracked.
8. Check the Trigger On box.
9. Click Save.
10. Repeat steps 6 through 9 for each trigger you want to add.
NOTE
If you track a large amount of data, manage space consumption by implementing an
archiving policy for the tracking object.
See Also
• Vlocity OmniAnalytics Event Tracking
• OmniScript Event Tracking
• Integration Procedure Event Tracking
• Event Tracking Data for Cards Framework
• Event Tracking for Custom Fields
• Action Container Component: Component type, either FlexCard, OmniScript, or Integration Procedure
• Action Container Global Key
• Action Container Name: Name of FlexCard, OmniScript, or Integration Procedure
• Action Container Version
• Action Element Type: Component type or component action type
• Action Target Name: Component referenced by the action
• Action Target Type: Type of component referenced by the action
• Action Target Version
• Business Category: Metadata attribute of the action that categorizes its business purpose
• Business Event: Metadata attribute of the action that categorizes its business purpose
• Name: Event that populated the step, such as Card Load, Card Unload, UI Action, or Mouse Click
• Primary Account: Primary Account to which the event pertains based on the configuration of the parent
UI component
• Primary Asset: To which the event pertains
• Primary Case: To which the event pertains
• Primary Contact: To which the event pertains
The following data is tracked for Test Procedures if the OmniAnalyticsTrackingDebug custom setting is set
to true:
• Error Code
• Error Message
• Error Occurred
• Request Payload
• Response Payload
NOTE
If you track a large amount of data, manage space consumption by implementing an
archiving policy for the tracking object.
See Also
• Vlocity OmniAnalytics Overview
To track events for specific Integration Procedures, see Enable Tracking for Vlocity Components.
NOTE
Although OmniAnalytics manages the data collection, the Test Framework uses the data.
The OmniAnalyticsTrackingDebug custom setting is not dependent on the
OmniAnalyticsEnabled custom setting.
1. Go to Setup.
• In Lightning Experience, click the gear icon and select Setup from the menu.
• In Salesforce Classic, click the user menu and select Setup from the menu.
2. In the Quick Find field, enter Custom Settings.
3. Click Custom Settings.
4. Click the letter G in the index across the top.
6. Click New.
7. Enter a Name of OmniAnalyticsTrackingDebug and a Value of True.
8. Click Save.
NOTE
If your org does not include the Track.CardPreview trigger, you can create it. See
Enable Tracking for Vlocity Components.
Track.CardPreview trigger state in Custom Settings Trigger Setup Tracking entries generated for the Card Designer
Preview
Absent No
Present but off No
Present but the Track.CardFramework trigger is absent or off No
On and the Track.CardFramework trigger is on Yes
The following table lists events and event-specific data logged for user interaction with the Cards
Framework:
trackField • ElapsedTime
• EntityLabel
• EntityName
• Field Value
Resolution None
(End tracking)
See Also
• Vlocity Intelligence
The name of the custom field, minus the trailing __c, must match the key of the corresponding node in the
incoming data JSON. For example:
Add the JSON key/value pairs to the Tracking Custom Data list in the component. This list is located:
NOTE
If space is a concern, be sure to monitor the size of the tracking object and delete
unneeded records as required.
For example:
CustomerInteractionId: %InteractionId%
/apex/DFOmniScriptUniversalPageConsole?id={0}&OmniScriptType=Policy
%20Servicing&OmniScriptSubType=Payment
%20Extension&OmniScriptLang=English&scriptMode=vertical&layout=lightning&Contex
tId={0}&InteractionId={1}&Role={2}
/**
* Process the tracking events
*/
void processTrackingEvent( List<Map<String, Object>> trackingDataList,
Map<String, Object> outMap ){
// Get the current users Id from the input JSON...
Id userId = (Id)trackingDataList[0].get('UserId');
// Get the users details to add to the tracking data...
User currentUser = [SELECT Id, FirstName, LastName, Profile.Name,
UserRole.Name FROM User WHERE Id = :userId];
// Iterate through the tracking entries and add the User's details...
for ( Map<String, Object> trackingEvent : trackingDataList ){
trackingEvent.put( 'UserFirstName', currentUser.FirstName );
trackingEvent.put( 'UserLastName', currentUser.LastName );
trackingEvent.put( 'UserProfile', currentUser.Profile.Name );
trackingEvent.put( 'UserRole', currentUser.UserRole.Name );
}
outMap.put( 'trackingDataList', trackingDataList );
}
}
Managed Vlocity Lightning Components are available out-of-the-box in the Lightning App Builder and
Community Builder. They appear in the Components panel under Custom - Managed in the Lightning App
Builder and under Custom Components in the Community Builder.
The components are different from custom Lightning web components and generated Lightning web
components. These Lightning web components may appear in the Components panel under Custom in
the Lightning App Builder and under Custom Components in the Community Builder. For more information
on Vlocity Lightning Web Components, see Vlocity Lightning Web Components.