Posts

Mastering the Matrix: Top 10 Advanced Salesforce Integration Interview Questions

Mastering the Matrix: Top 10 Advanced Salesforce Integration Interview Questions Designing integrations in Salesforce is straightforward when everything goes right. But true senior developers and architects are defined by how they handle system failures, governance limits, and data integrity when things break down. If you are preparing for a senior-level Salesforce interview or looking to build bulletproof systems, these 10 advanced integration questions from the SF Interview Pro Guide explore the deep architectural decisions that separate the juniors from the experts. 1. Why can't you make HTTP callouts directly from Apex triggers, and how do you resolve it? The Core Problem: Salesforce executes triggers within an active database transaction (DML). While a database transaction remains open, Salesforce prohibits holding a thread open to wait for a response from an external system...

Top 10 Senior Salesforce Integration Interview Questions & Expert Answers (2026 Edition)

Salesforce Interview Questions Preparation 1. What are the core Salesforce Integration Patterns, and when should you choose one over the other? The Answer: Salesforce defines several distinct integration patterns based on timing, direction, and volume. A senior architect must choose the pattern that minimizes governor limit consumption while matching business requirements: Request and Reply (Synchronous): Salesforce invokes an external system API and pauses execution to wait for an immediate response. Fire and Forget (Asynchronous): Salesforce hands off a transaction payload to an external system or an internal queueing mechanism and resumes its thread immediately without waiting for a response. Batch Data Synchronization (Bulk): Exporting or importing millions of records on a scheduled cadence (typically nightly or hourly) rather than handling them record-by-record. UI Data Virtualization: Displaying real-time external data o...

Upload Document Using Composite API

Simplify Document Uploads with Salesforce's Composite API Manually linking uploaded files to records in Salesforce typically requires a tedious chain of multiple HTTP requests. Salesforce’s Composite API solves this by letting you execute a series of actions in a single REST call , reducing network overhead and enforcing sequential logic. Why Use the Composite API for Document Management? Reduced API Calls: Create records, upload files, and link them together in one request. Reference Dependencies: Use the ID of a record created in Step 1 immediately in Step 2. All-or-None Execution: Roll back the entire operation if a single step fails (optional but recommended). The Implementation Workflow Uploading a document and attaching it to a record (like a Case) requires three primary steps handled sequentially within the composite request body: Create the Parent Record: Generate the Case (or any standard/custom object). Upload the File: Insert a ContentVe...

Server-Side Document Generation

Image
Document Generation                  With Document Generation , you can generate contracts, proposals, quotes, reports, non-disclosure agreements, service agreements, and so on. Client-side document generation  requires a user interaction and generates documents using an OmniScript. Salesforce provides sample OmniScripts and Integration Procedures that you can use and customize to implement these capabilities. Server-side document generation   typically doesn’t require user interaction. Instead, a backend server processes requests to generate documents. Let’s examine the differences between client-side and server-side document generation.   Client-Side Document Generation  ...

Reusable Code in OmniScript - Lightning Web Components

Lightning Web Components are great for breaking down layouts and interfaces into small, reusable pieces. Step 1: Create Lightning Web Component BaseComponent is via a BaseComponent folder in the standard LWC folder of a SFDX project. Export and Import Inside baseComponent.js, we can define reusable functions and export them for use in other components. In the example below, I define a function called convertToArray and export it BaseComponent import { LightningElement } from 'lwc' ; import { OmniscriptBaseMixin } from 'vlocity_cmt/omniscriptBaseMixin' ; export default class BaseComponent extends OmniscriptBaseMixin ( LightningElement ) { } export function convertToArray ( obj ) { if ( obj instanceof Array ) { return obj ; } else { return [ obj ]; } } Child Component import { LightningElement , api , track } from 'lwc' ; import { OmniscriptBaseMixin } from 'vlocity_cmt/omniscriptBaseMixin' ; ...

Communicating between Independent LWC in Omniscript

Image
This is a simple example that shows a button that, when clicked, publishes a message. This shows how two separate custom LWCs can communicate with each other inside of an OmniScript. Below is the overall design using the Pub/Sub model. So, lets get started! Step 1: Create a LWC component and use below code to fire events with parameters to pass an omniscript and component to Community Page. Below is the HTML and JS code for reference. SampleLWCComponent.html < template > < lightning-button label = "Send Event" onclick = {handleClick} ></ lightning-button > </ template > SampleLWCComponent.js import { LightningElement } from 'lwc' ; import pubsub from 'vlocity_ins/pubsub' ; export default class SampleLWCComponent extends LightningElement { handleClick ( e ){ let accId = '0015g00000gWY8VAAW' ; pubsub . fire ( "handlePubSubEventChange" , "result" , { "accId" : ac...

Import third party JS library in OmniScript Custom Lightning Web Components

 Import third party JS library in OmniScript Custom Lightning Web Components This post explains how to import third-party libraries in omniscript custom lightning web components(lwc). We can not directly import the third party scripts in Lightning web components because Security purpose. We will get error as  "This page has an error. You might just need to refresh it. Error in $A.getCallback() [Assertion Failed!: Scoped imports not allowed when a runtime namespace is specified" Salesforce restrict the importing scripts from third-party content delivery sites like cdnjs, jsdelivr, etc.  Firstly, you need to download the scripts from third-party sites. Then upload the scripts in static resources. Syntax import { loadScript } from 'lightning/platformResourceLoader' ; import { OmniscriptBaseMixin } from 'vlocity_cmt/omniscriptBaseMixin' ; platformResourceLoader  have two methods  loadStyle , and  loadScript.  For both methods return type is Promise....

Efficient way to write apex code

Image
Set.contains(element) Vs List.contains(element)  Guess What if I tell small things Matter!!!                     If you’re having a cup of tea, pause for a moment because next two minutes will reveal something simple yet less known it the world of Salesforce                     Set && List your favorite go to during the typical development cycle. But going forward you will definitely double check before using them. For Instance, look at this example                     Take two set of collections (Set<Integer> and List<Integer>). Now the crux of the discussion which one will give better performance. Lets get technical Which will give better performance Set or List ?      a.     I f collection is List :  List < Integer > listInteger = new List ...