🏠 Home 🔒 Record Sharing ⚙ Apex Triggers 🔍 SOQL 💻 LWC 🔗 Integration 🤖 Flows & Automation 🤖 Agentforce & AI 🎈 Agentforce Course — Free ☁ Data Cloud 🎓 DC Course — Free 🚀 DevOps Course — Free 💵 CPQ 🎯 100 Scenario Questions 🏆 150 Advanced Questions 📧 Marketing Cloud 🏗️ Company Wise 👥 About Us Start Learning Free →

120 Salesforce Technical Support Engineer Interview Questions & Answers 2026 | Real MNC Questions

📅  Salesforce
120 Salesforce Technical Support Engineer Interview Questions 2026 | sfinterviewpro.com
🔧 Salesforce Interview 2026

120 Salesforce Technical Support Engineer Interview Questions & Answers

Real questions asked at Salesforce, TCS, Cognizant, Infosys, Wipro — debugging, governor limits, security, integration, Service Cloud, deployment & real scenarios.

120
Questions
8
Sections
Real
Interview Asked
100%
Free
🔧 Support Engineer 🎯 Scenario Based 120 Questions · 8 Sections · 2026
🔍

Section 1: Debugging & Debug Logs

Every support interview starts here

Q1–Q15
1
Q01 · Debug Logs
What is a Debug Log in Salesforce and how do you set it up?
✅ Answer
A Debug Log captures Apex code, SOQL queries, DML, governor limits, and errors for a specific user. Setup → Debug Logs → New. Set log levels per category.
  • 📍Path: Setup → Quick Find: “Debug Logs” → New → select User → set expiry
  • 💡Log levels: NONE → ERROR → WARN → INFO → DEBUG → FINE → FINER → FINEST
  • 💡Categories: Apex Code, Database, Workflow, Callout — set each independently
  • 🔥Limits: 20MB max per log, 50 logs retained. Delete old logs to free space.
🎤 One-Line Answer
"Debug logs capture Apex, SOQL, DML, governor limits. Setup → Debug Logs → New. FINEST for max detail. Developer Console filters logs by event type."
2
Q02 · Debug Logs
How do you read a Debug Log to find an error? Walk me through the process.
✅ Answer
Open Developer Console → Logs tab → open log → filter for EXCEPTION_THROWN or FATAL_ERROR → read stack trace for exact class, method, and line number.
  • 1Developer Console → Logs tab → double-click log to open
  • 2Filter box: type EXCEPTION_THROWN — shows exact error + line number
  • 3Filter: FATAL_ERROR — unhandled exceptions that rolled back transaction
  • 4Bottom of log: LIMIT_USAGE_FOR_NS — shows all governor limits consumed
  • 5Stack trace: exact class → method → line number → error message
🎤 One-Line Answer
"Filter EXCEPTION_THROWN for exact error + line. LIMIT_USAGE_FOR_NS shows governor limit usage. Stack trace reveals which class and method threw it."
3
Q03 · Debug Logs
Debug log is not capturing for a specific user. How do you troubleshoot?
✅ Answer
Check: log is active (not expired), correct user selected, 50-log limit not reached, user performed action AFTER log was created.
  • Verify log expiry — recreate if expired. Logs have a fixed duration.
  • Check 50-log limit — delete old logs if full.
  • Exact username match — one wrong character = no log captured
  • 🔥Automated processes: add log for Automated Process user
🎤 One-Line Answer
"Check expiry, 50-log limit, exact username. User must act AFTER log created. Automated processes need Automated Process user log."
4
Q04 · Debug Logs
How do you debug a Salesforce Flow that is throwing an error?
✅ Answer
6-step process: error email → Paused Interviews → Flow Debugger → debug log → fault paths → field API names.
  • 1Error email — Salesforce sends admin email with fault path details
  • 2Setup → Flows → Paused/Failed Interviews — see exact error state
  • 3Flow Debugger — Flow Builder → Debug button → step through
  • 4Debug log for running user — filter FLOW events
  • 5Fault paths — add to every element. No fault path = silent failure.
  • 6Field API names — wrong name = null values. Case sensitive.
🎤 One-Line Answer
"Error email → Paused Interviews → Flow Debugger → debug log → fault paths → API names. Add fault paths everywhere."
5
Q05 · Debugging
A user reports a validation rule is blocking them but cannot tell which one. How do you identify it?
✅ Answer
The error message on screen IS the validation rule’s Error Message field. Search that text in Setup → Object → Validation Rules to find the exact rule.
  • 💡Error on page = validation rule Error Message text. Match it to find rule.
  • 💡Setup → Object → Validation Rules — check all active rules
  • 🔥Test bypass: add AND $Profile.Name != “System Administrator” temporarily
🎤 One-Line Answer
"Error message text = validation rule Error Message field. Search that text in Setup → Validation Rules to find which rule fired."
6
Q06 · Debugging
What is the Developer Console and what are its key features for support engineers?
✅ Answer
Developer Console: browser-based IDE. Key support features: Execute Anonymous Apex, debug log viewer, SOQL Query Editor, Apex test runner, code coverage, Checkpoints.
FeatureLocationSupport Use Case
Execute AnonymousDebug menuRun ad-hoc Apex, fix data, test logic
Query EditorQuery Editor tabRun SOQL to inspect records
Log InspectorLogs tabFilter and analyze debug logs
Test RunnerTest menuRun tests, check coverage
CheckpointsDebug menuHeap snapshot at code line
🎤 One-Line Answer
"Developer Console: Execute Anonymous, SOQL Query Editor, debug log viewer, test runner. Every support engineer’s primary debugging tool."
7
Q07 · Debugging
How do you use Execute Anonymous for debugging?
✅ Answer
Developer Console → Debug → Execute Anonymous. Runs Apex instantly without deployment. Query records, inspect field values, test logic, or fix data on the spot.
// Check a specific record Account acc = [SELECT Id, Name, Status__c FROM Account WHERE Id = '001xx000003GYk1']; System.debug('Name: ' + acc.Name); System.debug('Status: ' + acc.Status__c); // Fix data // acc.Status__c = 'Active'; // update acc;
🎤 One-Line Answer
"Execute Anonymous: run ad-hoc Apex without deploy. Query records, test logic, fix data. Output in debug log — System.debug() shows values."
8
Q08 · Debugging
How do you troubleshoot when an Apex trigger is not firing?
✅ Answer
Checklist: trigger is active, correct DML event (before/after insert/update), no kill switch, debug log shows trigger class executing.
  • 1Setup → Apex Triggers → find trigger → verify Is Active = checked
  • 2Verify DML event: after insert, before update — wrong event = never fires
  • 3Debug log → perform action → check if trigger class appears in log
  • 4Check Custom Metadata kill switch — trigger may be intentionally disabled
🎤 One-Line Answer
"Verify Active, correct DML event, no kill switch. Debug log shows if trigger class executes. Wrong event = trigger never fires."
9
Q09 · Debugging
What is Workbench and how do support engineers use it?
✅ Answer
Workbench (workbench.developerforce.com): free web tool for SOQL queries, REST API calls, data manipulation, metadata retrieval, streaming. Essential for querying and fixing production data.
  • 💡SOQL — complex queries, relationship queries, inspect any record
  • 💡REST Explorer — test GET/POST/PATCH endpoints without code
  • 💡Data — bulk insert/update/delete via CSV
  • 🔥Streaming — monitor Platform Events and CDC live
🎤 One-Line Answer
"Workbench: SOQL, REST API, data manipulation without code. Query any record, fix data, test endpoints. Essential production support tool."
10
Q10 · Debugging
What is the difference between a handled and unhandled exception in Apex?
✅ Answer
Handled: caught in try-catch — execution continues, custom error logic runs. Unhandled: no catch block — entire transaction rolls back, Salesforce error page shown to user, email sent to admin.
TypeTransactionUser SeesAdmin Notified
Handled (try-catch)ContinuesCustom messageOnly if logged
UnhandledFull rollbackSF error pageAuto email
🎤 One-Line Answer
"Handled: try-catch, execution continues, custom message. Unhandled: full rollback, error page, admin email. Always wrap callouts and DML in try-catch."
11
Q11 · Debugging
How do you debug a Visualforce page that shows a blank screen?
✅ Answer
Enable Development Mode on the user — shows detailed error on page. Most VF blank screens = NullPointerException in controller or bad binding expression.
  • 1Setup → Users → Edit user → check Development Mode → Save
  • 2Reload VF page — shows error details and code editor at bottom
  • 3Add ?debug=1 to URL for additional output
  • 4Check controller debug log — filter for EXCEPTION events
🎤 One-Line Answer
"Enable Development Mode → detailed errors on VF page. Most blank VF = NullPointerException in controller. Debug log EXCEPTION events show exact cause."
12
Q12 · Debugging
What is addError() in Apex triggers and when do you use it?
✅ Answer
addError() prevents DML on a specific record and shows a user-friendly message. Unlike throwing an exception, only THAT record is blocked — other records in same transaction may still save.
trigger AccountTrigger on Account (before insert) { for(Account acc : Trigger.new) { if(acc.AnnualRevenue == null) { acc.addError('Annual Revenue is required.'); } // Field-level error if(acc.Phone == null) { acc.Phone.addError('Phone is mandatory.'); } } }
🎤 One-Line Answer
"addError() blocks that record with user-friendly message. Only that record fails — others may succeed. Use for business validation in triggers."
13
Q13 · Debugging
How do you hotfix a critical bug in production without full deployment?
✅ Answer
Custom Metadata kill switch (instant, no deploy), Execute Anonymous to fix data, update Custom Metadata/Settings to change behavior. Then proper fix in sandbox and deploy.
🚨 Critical Rule
NEVER edit Apex directly in production. Kill switch first to stop damage, then fix in sandbox and deploy via Change Set.
🎤 One-Line Answer
"Kill switch via Custom Metadata (no deploy, instant). Execute Anonymous fixes data. Proper fix in sandbox → deploy. Never edit production Apex directly."
14
Q14 · Debugging
What are Checkpoints in Salesforce Developer Console?
✅ Answer
Checkpoints capture a heap snapshot at a specific Apex code line — showing all variables, types, and values at that exact execution moment. Better than System.debug() for complex objects.
  • 💡Set: Developer Console → open Apex class → click line gutter → red dot appears
  • 💡View: Developer Console → Checkpoints tab → expand → all variables in memory
  • 🔥Shows full object structure — not just toString(). Ideal for List, Map, SObject inspection.
  • 💡Max 5 checkpoints per session.
🎤 One-Line Answer
"Checkpoints: heap snapshot at code line — shows all variable values and types. Better than System.debug for complex objects. Max 5 per session."
15
Q15 · Debugging
How do you use Setup Audit Trail for debugging?
✅ Answer
Setup Audit Trail records all configuration changes — who changed what and when — for 180 days. Essential when “it worked yesterday” investigations.
  • 💡Path: Setup → Quick Find: “View Setup Audit Trail”
  • 💡Shows: user, date, action, what was changed (field, rule, class, profile)
  • 🔥Critical: “everything worked yesterday” — Audit Trail shows exactly what changed
🎤 One-Line Answer
"Audit Trail: 180-day log of all Setup changes — who changed what, when. First thing to check when ‘it stopped working yesterday.’"

Section 2: Governor Limits & Common Errors

Must know — asked in every support interview

Q16–Q30
16
Q16 · Governor Limits
What are Governor Limits and why do they exist?
✅ Answer
Runtime execution limits enforced so no single tenant monopolizes Salesforce’s shared multitenant infrastructure. Every Apex transaction runs within these limits.
LimitSyncAsync
SOQL Queries100200
SOQL Rows50,00050,000
DML Statements150150
DML Rows10,00010,000
CPU Time10,000ms60,000ms
Heap Size6MB12MB
Callouts100100
🎤 One-Line Answer
"Governor Limits protect multitenant infrastructure: 100 SOQL, 150 DML, 10K CPU (sync). Use Queueable/Batch for heavy work — async gets higher limits."
17
Q17 · Governor Limits
What is “Too many SOQL queries: 101” and how do you fix it?
✅ Answer
Most common Apex error — SOQL inside a loop. Fix: move SOQL outside loop, use Map for O(1) lookups inside loop. Query once, access many times.
// ❌ WRONG — SOQL in loop for(Account acc : accounts) { Contact c = [SELECT Id FROM Contact WHERE AccountId = :acc.Id]; } // ✅ CORRECT — One SOQL outside loop Map<Id, List<Contact>> cMap = new Map<Id, List<Contact>>(); for(Contact c : [SELECT Id, AccountId FROM Contact WHERE AccountId IN :accountIds]) { if(!cMap.containsKey(c.AccountId)) cMap.put(c.AccountId, new List<Contact>()); cMap.get(c.AccountId).add(c); } for(Account acc : accounts) { List<Contact> cons = cMap.get(acc.Id); // No SOQL! }
🎤 One-Line Answer
"SOQL in loop = instant governor limit. Move query outside, Map for O(1) lookup inside. Query once, access many times."
18
Q18 · Common Errors
What is MIXED_DML_OPERATION error and how do you fix it?
✅ Answer
Occurs when setup objects (User, Profile) and non-setup objects (Account, Contact) are DMLed in the same transaction. Fix: move setup DML to @future method.
// ❌ WRONG User u = new User(...); insert u; // Setup object Account a = new Account(...); insert a; // MIXED_DML error! // ✅ CORRECT @future public static void createUser(String name) { User u = new User(...); insert u; // Separate transaction — no conflict }
🎤 One-Line Answer
"MIXED_DML: setup (User/Profile) + non-setup (Account) in same transaction. Move setup DML to @future — runs in separate transaction."
19
Q19 · Common Errors
What is UNABLE_TO_LOCK_ROW error?
✅ Answer
Concurrent transactions fighting for the same record lock. Common when child trigger updates parent — multiple children save simultaneously = deadlock.
  • 💡Child trigger updates parent → multiple saves simultaneously → deadlock
  • Use Platform Events to decouple parent updates
  • Use Queueable with chaining for sequential processing
  • SELECT ... FOR UPDATE to proactively lock record
🎤 One-Line Answer
"Concurrent transactions fighting for same record. Decouple parent updates via Platform Events. Queueable for sequential processing."
20
Q20 · Common Errors
What is “Callout not allowed after uncommitted work” error?
✅ Answer
Salesforce blocks HTTP callouts after DML in same transaction — can’t guarantee external system rollback if DML fails. Fix: @future(callout=true) or Queueable — both run after transaction commits.
// ❌ WRONG insert account; // DML done Http h = new Http(); // ERROR! // ✅ CORRECT trigger AccTrigger on Account (after insert) { MyService.callERP( new Map<Id,Account>(Trigger.new).keySet() ); // @future(callout=true) method }
🎤 One-Line Answer
"Callout blocked after DML — external API can’t be un-called on rollback. Use @future(callout=true) or Queueable which run after commit."
21
Q21 · Common Errors
What is a NullPointerException and how do you prevent it?
✅ Answer
NPE = calling method or accessing property on a null variable. Most common Apex error. Prevention: null checks, safe navigation operator (?.).
// ❌ WRONG — NPE if no Contact or no Email String email = acc.Contacts[0].Email.toUpperCase(); // ✅ CORRECT — Null checks if(acc.Contacts != null && !acc.Contacts.isEmpty() && acc.Contacts[0].Email != null) { String email = acc.Contacts[0].Email.toUpperCase(); } // ✅ BETTER — Safe navigation operator String email = acc?.Contacts?.get(0)?.Email?.toUpperCase();
🎤 One-Line Answer
"NPE = method on null. Use safe navigation (?.) or null checks. Most NPEs from relationship fields not queried in SOQL."
22
Q22 · Governor Limits
How do you check remaining governor limits programmatically?
✅ Answer
Use the Limits class — provides current usage and maximum for every governor limit. Also visible as LIMIT_USAGE_FOR_NS at end of debug log.
System.debug('SOQL: ' + Limits.getQueries() + '/' + Limits.getLimitQueries()); System.debug('DML: ' + Limits.getDmlStatements()); System.debug('CPU: ' + Limits.getCpuTime() + 'ms'); System.debug('Heap: ' + Limits.getHeapSize() + ' bytes'); // Conditional check if((Limits.getLimitQueries() - Limits.getQueries()) > 10) { // Safe to query more }
🎤 One-Line Answer
"Limits class: getQueries(), getLimitQueries(), getCpuTime(), getHeapSize(). LIMIT_USAGE_FOR_NS at debug log end shows all. Use in Batch to avoid mid-execution violations."
23
Q23 · Common Errors
What is SOQL injection and how do you prevent it?
✅ Answer
User input in dynamic SOQL allows attackers to modify query logic and access unauthorized data. Prevention: bind variables (:var) are injection-proof, or String.escapeSingleQuotes().
// ❌ VULNERABLE String q = 'SELECT Id FROM Account WHERE Name = \'' + userInput + '\''; // Attacker enters: ' OR Name != '' → ALL accounts! // ✅ SAFE — Bind variable List<Account> accs = [SELECT Id FROM Account WHERE Name = :userInput]; // ✅ SAFE — Escape for dynamic SOQL String safe = String.escapeSingleQuotes(userInput);
🎤 One-Line Answer
"SOQL injection: unescaped user input modifies query. Bind variables (:var) injection-proof. escapeSingleQuotes() for unavoidable dynamic SOQL."
24
Q24 · Governor Limits
How do you handle CPU Time Limit exceeded error?
✅ Answer
10,000ms sync limit. Caused by nested loops, complex operations. Fix: replace nested loops with Map lookups, move heavy work to Queueable/Batch (60,000ms limit).
  • Nested loops (O(n²)) — biggest CPU killer. Replace with Map lookups O(1).
  • String concatenation in loops — use List + String.join() instead
  • Move heavy processing to Batch Apex or Queueable (60K ms limit)
  • Check Limits.getCpuTime() to profile which code consumes most
🎤 One-Line Answer
"CPU limit: nested loops or complex logic. Replace nested loops with Maps (O(1)), move heavy work to Queueable/Batch. 60,000ms async vs 10,000ms sync."
25
Q25 · Governor Limits
What happens when a Batch Apex chunk exceeds governor limits?
✅ Answer
Only that chunk (execute() call) fails and rolls back — other chunks continue. Each execute() gets fresh governor limits. finish() still runs.
  • 💡Each execute() = fresh 100 SOQL, 150 DML, 60K CPU limits
  • 💡Failed chunk: rolls back → logged in AsyncApexJob → other chunks unaffected
  • 🔥Reduce scope: Database.executeBatch(job, 50) — fewer records = fewer limits per chunk
🎤 One-Line Answer
"Batch: only failed chunk rolls back — other chunks continue. Each execute() gets fresh limits. Reduce scope size if hitting limits."
26
Q26 · Common Errors
What is FIELD_CUSTOM_VALIDATION_EXCEPTION and how do you catch it?
✅ Answer
Validation rule blocked the DML. Catch DmlException and use getDmlMessage() and getDmlFieldNames() to identify which rule fired.
try { insert account; } catch(DmlException e) { for(Integer i = 0; i < e.getNumDml(); i++) { System.debug('Type: ' + e.getDmlType(i)); // FIELD_CUSTOM_VALIDATION_EXCEPTION System.debug('Field: ' + e.getDmlFieldNames(i)); System.debug('Message: ' + e.getDmlMessage(i)); } }
🎤 One-Line Answer
"FIELD_CUSTOM_VALIDATION_EXCEPTION = validation rule blocked DML. Catch DmlException, getDmlType(), getDmlMessage() for exact details."
27
Q27 · Governor Limits
How do you fix “Too many DML statements: 151” error?
✅ Answer
DML inside a loop hits 150 limit instantly. Fix: modify records in memory inside the loop, then execute ONE DML on the entire list after the loop.
// ❌ WRONG — DML in loop for(Contact c : contacts) { c.Phone = '9999'; update c; // 1 DML per contact! } // ✅ CORRECT — Bulkified for(Contact c : contacts) { c.Phone = '9999'; // Memory only } update contacts; // ONE DML for all
🎤 One-Line Answer
"DML in loop = hits 150 instantly. Modify in memory inside loop, ONE DML on full list after loop. Bulkification is Salesforce’s golden rule."
28
Q28 · Common Errors
What causes heap size limit exceeded?
✅ Answer
Heap = memory for all variables. 6MB sync / 12MB async. Exceeded by querying large text fields on many records, or storing huge API responses.
  • Querying Description/Body fields on thousands of records
  • Storing entire large JSON API response as String
  • SELECT only fields you need — never SELECT *
  • Null out variables when done: largeList = null;
🎤 One-Line Answer
"Heap exceeded: too many large text fields in memory. Query only needed fields, null variables after use, Batch for large volumes."
29
Q29 · Common Errors
What is the difference between with sharing and without sharing?
✅ Answer
with sharing: SOQL respects user’s sharing rules. without sharing: system mode, sees all records. Neither auto-enforces FLS — use WITH SECURITY_ENFORCED separately.
KeywordSharing RulesFLS/CRUDUse When
with sharingEnforcedNot automaticUser-facing code
without sharingIgnoredNot automaticAdmin, batch
inherited sharingFrom callerNot automaticUtility classes
🎤 One-Line Answer
"with sharing: SOQL respects sharing rules. without sharing: sees all records. Add WITH SECURITY_ENFORCED for FLS — sharing keywords don’t enforce FLS."
30
Q30 · Common Errors
What is WITH SECURITY_ENFORCED and why is it important?
✅ Answer
Enforces FLS and CRUD in SOQL — throws if user can’t access a queried field. Without it, Apex runs in system mode and bypasses FLS (security violation in user-facing code).
// Without security — bypasses FLS List<Account> accs = [SELECT Id, Salary__c FROM Account]; // With security — respects user FLS List<Account> accs = [SELECT Id, Salary__c FROM Account WITH SECURITY_ENFORCED]; // Modern alternative SObjectAccessDecision d = Security.stripInaccessible( AccessType.READABLE, accounts);
🎤 One-Line Answer
"WITH SECURITY_ENFORCED enforces FLS in SOQL. Throws if user can’t access field. Mandatory in user-facing Apex. Security.stripInaccessible() is the newer alternative."
🔒

Section 3: Security & Access Issues

Users can’t see records, fields, buttons — diagnose fast

Q31–Q45
31
Q31 · Security
A user cannot see a record they should have access to. Walk through your troubleshooting steps.
✅ Answer
Follow the access hierarchy from widest to narrowest: Profile Object permissions → OWD → Role Hierarchy → Sharing Rules → Manual Sharing → Sharing Debugger.
  • 1Profile/Permission Set — Read permission on the object?
  • 2OWD — if Private, user needs explicit sharing. Setup → Sharing Settings
  • 3Role Hierarchy — is user’s role above record owner’s role?
  • 4Sharing Rules — criteria-based rules that should cover this user?
  • 5Sharing Debugger — Setup → Sharing Settings → Sharing Debugger → user + record ID
🎤 One-Line Answer
"Profile → OWD → Role Hierarchy → Sharing Rules → Sharing Debugger. Always in this order. Sharing Debugger gives definitive answer in 30 seconds."
32
Q32 · Security
A user cannot see a field on a record page. What are the two things you check?
✅ Answer
Two independent layers both required: FLS (Field-Level Security) in Profile/Permission Set AND Page Layout. Either one missing = field invisible.
⚡ Key Point
FLS = can user access this field at all. Page Layout = is field displayed. BOTH required. FLS OK but off layout = hidden. On layout but FLS blocked = hidden.
  • 1FLS: Setup → Object → Fields → click field → Field Accessibility → user’s profile = Read
  • 2Page Layout: Setup → Object → Page Layouts → verify field is included
  • 3Record Type: different types = different layouts. Check which applies to this user.
🎤 One-Line Answer
"Field invisible: check FLS in Profile AND Page Layout. Both required. FLS OK but off layout = hidden. On layout but FLS blocked = hidden."
33
Q33 · Security
What is the Sharing Debugger and how do you use it?
✅ Answer
Sharing Debugger shows exactly why a user can or cannot access a specific record — all sharing entries, source (OWD/role/rule/manual), and access level. Fastest access troubleshooting tool.
  • 1Setup → Quick Find: “Sharing Settings” → scroll to bottom → Sharing Debugger
  • 2Enter User and Record ID → click Debug
  • 3See every sharing entry: Access Level + Sharing Reason + Source
  • 4No entries = no access. Read entry = can view. Edit = can modify.
🎤 One-Line Answer
"Sharing Debugger: Setup → Sharing Settings → enter user + record ID. Shows every sharing entry explaining WHY user has or lacks access."
34
Q34 · Security
A user gets “Insufficient Privileges” error. How do you diagnose?
✅ Answer
Generic error — identify exact action first, then check the specific permission for that action.
  • 💡Record access → Sharing Debugger
  • 💡Tab/App access → Profile → App/Tab Settings
  • 💡Running Apex/VF → Profile → Apex class/VF page access
  • 💡Object CRUD → Profile → Object settings
  • 💡Event Monitoring → exact permission check that failed (requires license)
🎤 One-Line Answer
"Insufficient Privileges: identify exact action first. Record = Sharing Debugger. Tab/App = Profile settings. Apex/VF = class/page access."
35
Q35 · Security
What is the difference between Profile and Permission Set?
✅ Answer
Profile: mandatory, one per user, baseline access. Permission Set: optional, multiple per user, only ADDS permissions — never restricts. Modern: minimal profile + Permission Sets.
AspectProfilePermission Set
Required?Yes — one per userNo — optional, multiple
Can restrict?YesNo — only adds
Best practiceMinimal base accessRole-specific additions
🎤 One-Line Answer
"Profile: required, one per user, base access. Permission Set: optional, multiple, only adds. Modern: minimal profile + targeted Permission Sets per role."
36
Q36 · Security
How do you unlock a locked user account?
✅ Answer
Setup → Users → find user → Unlock button. Check Login History first to confirm truly locked vs wrong password.
  • 1Setup → Quick Find: “Users” → find user
  • 2Click user name → Unlock button at top
  • 3Also: Reset Password → sends reset email
  • 4Check Login History first — status: “Failed: Locked Out” vs “Failed: Wrong Password”
🎤 One-Line Answer
"Setup → Users → Unlock button. Check Login History to confirm locked vs wrong password. Reset Password sends new credentials."
37
Q37 · Security
What is Login History and how is it useful for support?
✅ Answer
Records every login attempt: user, timestamp, IP, browser, status. 6-month retention. Critical for lockouts, failed logins, suspicious access, SSO troubleshooting.
  • 💡Path: Setup → Quick Find: “Login History”
  • 💡Status column: “Failed: Wrong Password” vs “Failed: Locked Out” — different fixes
  • 💡IP address: find which system causes failed logins
  • 💡SSO issues: “Failed: Unknown” = SAML assertion mismatch → check IdP logs
🎤 One-Line Answer
"Login History: 6 months of login attempts with status, IP, browser. First tool for lockout and authentication troubleshooting."
38
Q38 · Security
What are the different OWD settings?
✅ Answer
OWD sets the baseline access for all records. Sharing rules can only open up from OWD, never restrict below it.
OWD SettingViewEdit
PrivateOwner + above in hierarchyOwner only
Public Read OnlyEveryoneOwner + hierarchy
Public Read/WriteEveryoneEveryone
Controlled by ParentInherits from parentInherits
🎤 One-Line Answer
"OWD = baseline. Private = owner only. Read Only = all view, owner edits. Read/Write = all view and edit. Start restrictive, open with sharing rules."
39
Q39 · Security
What is a Permission Set Group?
✅ Answer
Bundles multiple Permission Sets into one assignable group. Supports Muting Permission Sets to REMOVE specific permissions within the group for exceptions.
  • 💡Create: Setup → Permission Set Groups → New → add Permission Sets
  • 💡Assign like a regular PSset — user gets all included permissions
  • 💡Muting PSets — remove specific permissions within group for exceptions. Unique to groups.
  • 💡Example: “Sales Manager Group” = Sales PSets + Manager access in one assignment
🎤 One-Line Answer
"Permission Set Group: bundle of PSets in one assignment. Muting PSets remove specific permissions for exceptions — only available in groups."
40
Q40 · Security
How do you log in as another user for support purposes?
✅ Answer
Admin can Login As user from Setup → Users → Login link. User must grant access via My Settings → Grant Account Login Access.
  • 💡Path: Setup → Users → find user → Login link
  • 💡User grants access: My Settings → Grant Account Login Access → set duration
  • 💡Support value: reproduce issue in user’s exact context without knowing their password
  • 💡All logins audited in Login History — full audit trail
🎤 One-Line Answer
"Setup → Users → Login. User must grant access. Reproduces issue in user’s exact context. All logins audited."
41
Q41 · Security
What is Event Monitoring and when do support engineers use it?
✅ Answer
Event Monitoring (add-on license) logs 70+ activity types: logins, record views, API calls, exports, Apex executions. Used for security investigations, compliance, performance diagnosis.
  • 💡Access: Workbench REST → /services/data/v62.0/sobjects/EventLogFile
  • 💡70+ event types: LoginEvent, ReportEvent, ApiEvent, ApexCalloutEvent
  • 💡Scenario: user deleted 500 records — Event Monitoring shows who/when/which records
  • 💡Real-time with Shield Event Monitoring
🎤 One-Line Answer
"Event Monitoring: 70+ activity logs for security audits and compliance. Requires license. Shows exactly who did what and when."
42
Q42 · Security
A user can suddenly see records they should not. How do you investigate?
✅ Answer
Over-exposure investigation: Audit Trail for recent changes → Sharing Debugger to find excess access entry → check new sharing rules, OWD changes, role changes.
  • 1Audit Trail — what changed recently? OWD? New sharing rule? Role change?
  • 2Sharing Debugger — user + record → which entry grants excess access?
  • 3User changes — new role assigned? New Permission Set? New Profile?
  • 4Remediate — remove incorrect sharing rule, revert OWD, fix role
🎤 One-Line Answer
"Audit Trail shows what changed. Sharing Debugger shows which entry grants excess access. Remove incorrect sharing rule or revert change."
43
Q43 · Security
What is System.runAs() and when do you use it?
✅ Answer
Runs a code block in the context of a specific user — respecting their sharing rules, FLS, permissions. Test-only (not available in production Apex). Used to simulate user data access in test classes.
@isTest static void testUserAccess() { User rep = [SELECT Id FROM User WHERE Username = 'rep@company.com']; System.runAs(rep) { // Respects rep's sharing rules List<Account> visible = [SELECT Id FROM Account]; System.debug('Rep sees: ' + visible.size()); } }
🎤 One-Line Answer
"System.runAs(user): simulate user context in tests — SOQL respects their sharing. Test-only. Reveals exactly what data a specific user can access."
44
Q44 · Security
A user cannot click a button on a record page. What do you check?
✅ Answer
Button visibility: Page Layout (button not added), Profile Apex/VF access (button calls code user can’t access), button display formula (evaluates to false), Record Type layout.
  • 💡Page Layout — button not in layout Buttons section → add it
  • 💡Profile → Apex/VF access — button calls class or page user can’t access
  • 💡Button display formula — evaluates to false for this record
  • 💡Record Type — different layout per type may exclude the button
🎤 One-Line Answer
"Button missing: Page Layout, Profile Apex/VF access, display formula false, Record Type layout. Check all four in order."
45
Q45 · Security
What is IP Allowlisting and how does it affect support cases?
✅ Answer
Restricts login to specific IP ranges. Users outside allowed ranges get login failure. Check Profile Login IP Ranges and org-level Network Access (trusted IPs).
  • 💡Profile IP ranges: Setup → Profiles → edit → Login IP Ranges
  • 💡Org trusted IPs: Setup → Network Access
  • 💡Remote workers: VPN IP not in allowed range → add VPN IPs to trusted ranges
  • 💡Email verification challenge sent if IP not trusted and 2FA not enabled
🎤 One-Line Answer
"IP Allowlisting blocks logins from unapproved IPs. Check Profile Login IP Ranges and Setup → Network Access. Add VPN IPs to trusted ranges for remote workers."
📊

Section 4: Data & Migration Issues

Data problems, duplicates, migration troubleshooting

Q46–Q57
46
Q46 · Data
How do you recover accidentally deleted records?
✅ Answer
Deleted records go to Recycle Bin — retained 15 days. Undelete from App Launcher → Recycle Bin or via Apex with ALL ROWS query.
// Query deleted records List<Account> deleted = [SELECT Id, Name FROM Account WHERE IsDeleted = true ALL ROWS]; // Undelete undelete deleted; // OR: App Launcher → Recycle Bin → select → Undelete
🎤 One-Line Answer
"Recycle Bin: 15-day recovery. Undelete from App Launcher or Apex undelete DML. After 15 days or hard delete — restore from backup only."
47
Q47 · Data
How do you identify and merge duplicate records?
✅ Answer
Three approaches: Duplicate Rules (automated), manual merge button (2-3 records), Apex merge statement (bulk programmatic).
// Apex merge Account master = [SELECT Id FROM Account WHERE Id = :masterId]; List<Account> dupes = [SELECT Id FROM Account WHERE Id IN :dupeIds]; merge master dupes; // Dupes deleted, related records (Contacts, Opps) // automatically transferred to master
🎤 One-Line Answer
"Duplicate Rules prevent future dupes. Manual merge for 2-3 records. Apex merge for bulk — all related records auto-transfer to master."
48
Q48 · Data
A Data Loader import failed for some records. How do you identify and fix them?
✅ Answer
Data Loader generates success.csv and error.csv. Error CSV has exact error per row. Fix errors in CSV, re-run with failed rows only.
  • 1After import → save both success.csv and error.csv
  • 2Open error.csv → ERROR column = exact error per row
  • 3Common: required field blank, invalid picklist, parent ID not found
  • 4Fix data in CSV → re-run Data Loader with error rows only
  • 5Load order: parent objects first, then children
🎤 One-Line Answer
"error.csv has exact error per failed row. Fix data, re-run with failed rows only. Load parents before children."
49
Q49 · Data
What is an External ID and why is it critical for migration?
✅ Answer
Custom field marked as External ID — auto-indexed, enables upsert without Salesforce IDs, makes migration idempotent (retry 10 times = same result, no duplicates).
  • 💡Create: Setup → Object → New Field → check “External ID” checkbox
  • 💡Upsert by External ID: match = update. No match = insert. Idempotent.
  • 💡Without External ID: retry on failure = duplicate records. With: retry = safe update.
  • 💡CSV relationship: Contact.Account:SAP_No__c instead of SF Account ID
🎤 One-Line Answer
"External ID enables upsert without SF ID — retry-safe, no duplicates. Mandatory on every migration object."
50
Q50 · Data
What is the difference between hard delete and soft delete?
✅ Answer
Soft delete: Recycle Bin, 15-day recovery, still counts in storage. Hard delete: permanent, bypasses Recycle Bin, frees storage, requires “Bulk API Hard Delete” permission.
TypeRecycle BinRecoveryStorage
Soft DeleteYes15 daysStill counted
Hard DeleteNoNeverFreed immediately
🎤 One-Line Answer
"Soft delete: 15-day Recycle Bin recovery. Hard delete: permanent, no recovery, frees storage. Hard delete needs special permission in Data Loader."
51
Q51 · Data
How do you disable triggers during data migration?
✅ Answer
Custom Metadata kill switch in every trigger — toggle without deployment. Also disable email deliverability and deactivate Flows.
trigger ContactTrigger on Contact (before insert, after insert) { Migration_Config__mdt cfg = [ SELECT Is_Active__c FROM Migration_Config__mdt WHERE Label = 'ContactTrigger' LIMIT 1 ]; if(!cfg.Is_Active__c) return; // Skip ALL logic! new ContactTriggerHandler().run(); } // Disable: set Is_Active__c = false in Custom Metadata // No code deployment needed!
🎤 One-Line Answer
"Custom Metadata kill switch: instant toggle without deployment. Disable email deliverability and Flows too. Never deploy code just to disable during migration."
52
Q52 · Data
How do you validate data quality after a migration?
✅ Answer
5-step validation: record count comparison, spot checks, relationship integrity (orphan check), required field completeness, business report comparison, then UAT with real users.
  • 💡Count: source record count = Salesforce count?
  • 💡Spot checks: 20-30 random records field by field
  • 💡Orphan check: SELECT Id FROM Contact WHERE AccountId = null
  • 💡Business reports: key metrics match source system
  • 💡UAT: real users verify their data — they catch anomalies fastest
🎤 One-Line Answer
"Counts, spot checks, orphan check, business reports, UAT. Users find anomalies faster than technical checks — always include them."
53
Q53 · Data
What is Data Import Wizard vs Data Loader?
✅ Answer
Import Wizard: browser-based, max 50K, limited objects, no delete. Data Loader: desktop/CLI, millions of records, all objects, all DML, schedulable.
FeatureImport WizardData Loader
Max records50,000Millions
ObjectsLimitedAll objects
OperationsInsert, Update, UpsertAll + Delete + Hard Delete
SchedulingNoYes (CLI)
🎤 One-Line Answer
"Import Wizard: 50K, browser, limited objects. Data Loader: millions, all objects, all DML, CLI scheduling. Use Data Loader for serious migration work."
54
Q54 · Data
How do you fix records corrupted by a bad automation?
✅ Answer
Stop → Identify → Test fix on 5 records → Bulk fix → Verify. Disable automation first, find affected records via SOQL with LastModifiedDate.
// Identify affected records List<Account> affected = [ SELECT Id, Status__c FROM Account WHERE LastModifiedDate >= 2026-05-21T10:00:00Z AND LastModifiedDate <= 2026-05-21T11:00:00Z AND Status__c = 'Wrong_Value' ]; // Fix for(Account a : affected) { a.Status__c = 'Correct_Value'; } update affected;
🎤 One-Line Answer
"Disable automation → SOQL by LastModifiedDate finds affected → test on 5 → bulk fix → verify. LastModifiedDate = your time machine."
55
Q55 · Data
How do you handle relationship fields in Data Loader?
✅ Answer
Use External ID relationship columns in CSV: Account:ExternalId__c. Data Loader resolves parent by External ID without needing Salesforce IDs.
// Contact CSV with External ID relationship FirstName,LastName,Account:SAP_Customer_No__c John,Smith,CUST-12345 Jane,Doe,CUST-67890 // Data Loader finds Account WHERE SAP_Customer_No__c = CUST-12345 // Links Contact automatically — no SF Account ID needed!
🎤 One-Line Answer
"External ID relationship columns: Account:ExternalId__c. Data Loader resolves parent without SF IDs. Always load parents before children."
56
Q56 · Data
What is Bulk API 2.0?
✅ Answer
REST-based async CSV processing — 150M records/day separate limit. Create job → upload CSV → poll for status → download success/error. Data Loader uses it internally.
  • 💡Async: fire and forget. Check job status via job ID.
  • 💡150M records/day separate from regular 1M API limit
  • 💡Use UPSERT not INSERT — idempotent if job fails and retries
  • 💡Create → Upload CSV → Poll status → Download results
🎤 One-Line Answer
"Bulk API 2.0: async CSV jobs, 150M records/day separate limit. Create → upload → poll → download. Use Upsert for idempotent migrations."
57
Q57 · Data
What is a Salesforce data backup strategy?
✅ Answer
Layered approach: Data Export (scheduled CSV), Salesforce Backup (native paid), or OwnBackup/Spanning. Test restore quarterly — backup without tested restore is false security.
  • 💡Data Export: Setup → Data Management → Data Export → schedule weekly
  • 💡Salesforce Backup: native product, daily snapshots, easy restore
  • 💡OwnBackup/Spanning: automated daily, cross-org restore
  • 💡Test restore quarterly — backup that’s never been restored is just archived data
🎤 One-Line Answer
"Data Export + Salesforce Backup or OwnBackup. Test restore quarterly. Backup without tested restore = false security."
🔗

Section 5: Integration & API Errors

REST API, callout failures, integration debugging

Q58–Q72
58
Q58 · Integration
How do you troubleshoot a failed Salesforce outbound REST callout?
✅ Answer
Enable debug log → filter CALLOUT events → read HTTP status code → diagnose by status.
Status CodeMeaningFix
401Auth failedCheck OAuth token, Named Credential
403No permissionCheck API scope, IP allowlist
404Wrong URLVerify endpoint in Named Credential
500External errorCheck external logs, retry
503External downWait, retry later
TimeoutToo slowIncrease req.setTimeout()
🎤 One-Line Answer
"Debug log → CALLOUT events → status code. 401=auth, 404=wrong URL, 500=external error, timeout=increase timeout. Each status has specific fix."
59
Q59 · Integration
What is “Unauthorized endpoint” error and how do you fix it?
✅ Answer
Endpoint URL not whitelisted in Salesforce. Fix: add to Remote Site Settings OR switch to Named Credentials (bypasses RST automatically).
  • 1Setup → Remote Site Settings → New → enter base URL
  • 2Save → retry callout
  • 3Better fix: switch to Named Credentials — auto-bypasses RST, handles auth too
🎤 One-Line Answer
"Unauthorized endpoint: URL not in Remote Site Settings. Add to RST or switch to Named Credentials. Named Credentials bypass RST automatically."
60
Q60 · Integration
What is a Named Credential?
✅ Answer
Stores endpoint URL + auth encrypted in Salesforce. Referenced as callout:Name. Auto-refreshes OAuth tokens. URL changes → update once → all callouts fixed, no code deploy.
HttpRequest req = new HttpRequest(); req.setEndpoint('callout:XYZ_ERP/orders'); // Named Credential req.setMethod('GET'); req.setTimeout(30000); Http h = new Http(); HttpResponse res = h.send(req);
🎤 One-Line Answer
"Named Credential: encrypted endpoint + auth, callout:Name syntax, auto-refreshes OAuth. URL changes → update once → all callouts fixed, no code deploy."
61
Q61 · Integration
How do you mock HTTP callouts in Apex test classes?
✅ Answer
Implement HttpCalloutMock interface, register via Test.setMock(). Intercepts all HTTP calls in test transaction. Always test success AND failure.
@isTest public class MockHTTP implements HttpCalloutMock { public HTTPResponse respond(HTTPRequest req) { HTTPResponse res = new HTTPResponse(); res.setStatusCode(200); res.setBody('{"status":"success"}'); return res; } } @isTest static void testIt() { Test.setMock(HttpCalloutMock.class, new MockHTTP()); Test.startTest(); MyService.doCallout(); Test.stopTest(); }
🎤 One-Line Answer
"Test.setMock(HttpCalloutMock.class, new Mock()) intercepts HTTP calls. Test success (200) AND failure (500, 401). No real API calls in tests."
62
Q62 · Integration
An integration is creating duplicate records. How do you fix it?
✅ Answer
Root cause: INSERT instead of UPSERT, or no External ID. Fix: add External ID field, switch to UPSERT by External ID. Same record sent 100 times = 1 record updated.
  • 1Add External ID field to object (New Field → check External ID)
  • 2Change integration to UPSERT by External ID instead of INSERT
  • 3Add Duplicate Rules as backup
  • 4Clean existing dupes via Apex merge statement
🎤 One-Line Answer
"Dupes = INSERT without External ID. Fix: add External ID → switch to UPSERT. Same record 100 times = 1 record updated, zero dupes."
63
Q63 · Integration
How do you check Salesforce API limits?
✅ Answer
Setup → Company Information (API Requests Last 24 Hours), REST API /limits endpoint, or System Overview page. Alert at 80% to prevent disruption.
// REST API — all limits with remaining GET /services/data/v62.0/limits // Response: // "DailyApiRequests":{"Max":1000000,"Remaining":950000} // "DailyBulkApiRequests":{"Max":150000000,"Remaining":149000000}
🎤 One-Line Answer
"Setup → Company Information shows API usage. /services/data/v62.0/limits returns all limits. Alert at 80% — not when already hit."
64
Q64 · Integration
What is Platform Event and how do you troubleshoot delivery failures?
✅ Answer
Platform Events = pub-sub messaging. Delivery failures: check EventBusSubscriber for Status/LastError, use 72-hour replay to resend missed events.
// Check subscriber status SELECT Id, ExternalId, LastError, Position, RetryCount, Status, Topic FROM EventBusSubscriber // Status: Running=healthy, Stopped/Error=problem // LastError: exact delivery failure reason
🎤 One-Line Answer
"EventBusSubscriber: Status and LastError reveal delivery failures. 72-hour replay resends missed events. Subscriber trigger errors in debug log."
65
Q65 · Integration
What is idempotency and why must integrations be idempotent?
✅ Answer
Idempotency: same request processed multiple times = same result. No duplicates, no errors on retry. Critical because network failures cause automatic retries.
  • 💡External ID upsert makes operations idempotent
  • 💡Same record sent 100 times = 1 record updated, never 100 records
  • 💡Network retries are inevitable in distributed systems
  • 💡Design all integrations idempotent from day 1
🎤 One-Line Answer
"Idempotency: same request 100 times = same result. External ID upsert achieves this. Design all integrations idempotent — retries are inevitable."
66
Q66 · Integration
What is the Composite API?
✅ Answer
25 REST subrequests in ONE HTTP call with @{referenceId} chaining — output of step 1 as input for step 2. 25x more API-efficient.
POST /services/data/v62.0/composite { "allOrNone": true, "compositeRequest": [ {"method":"POST","referenceId":"NewAcc", "url":"/services/data/v62.0/sobjects/Account", "body":{"Name":"ABC Pharma"}}, {"method":"POST","referenceId":"NewCon", "url":"/services/data/v62.0/sobjects/Contact", "body":{"LastName":"Smith", "AccountId":"@{NewAcc.id}"}} ] }
🎤 One-Line Answer
"Composite: 25 subrequests in 1 HTTP call with @{referenceId} chaining. allOrNone=true for atomic. 25x API-efficient for related record creation."
67
Q67 · Integration
How do you log integration errors in Salesforce?
✅ Answer
Custom Integration_Error__c object + Database.insert(log, false) — allOrNone=false ensures logging never itself throws.
public class IntegrationLogger { public static void log(String source, Integer status, String msg, Id recId) { Integration_Error__c err = new Integration_Error__c( Source__c = source, HTTP_Status__c = status, Error_Message__c = msg, Record_Id__c = recId, Status__c = 'Pending Retry' ); Database.insert(err, false); // Never throws! } }
🎤 One-Line Answer
"Integration_Error__c + Database.insert(log, false) — logging never throws. Build CRMA dashboard on it. Know failures before users report them."
68
Q68 · Integration
What is Change Data Capture and how is it different from Platform Events?
✅ Answer
CDC: auto-publishes change events for every CUD — zero code. Platform Events: custom events published manually. CDC for data sync, Platform Events for business process triggers.
FeatureCDCPlatform Events
PublisherSalesforce (auto)Developer (manual)
Code neededZero (Setup only)EventBus.publish()
Use forData syncBusiness process
🎤 One-Line Answer
"CDC: auto-published every CUD, zero code, for data sync. Platform Events: manually published, for business process. CDC for sync, PE for business logic."
69
Q69 · Integration
Records are not syncing from external system to Salesforce. How do you debug?
✅ Answer
External logs → Postman manual test → auth check → payload validation → validation rules → trigger errors.
  • 1External system logs — is it actually sending? What HTTP response?
  • 2Postman manual test — replicate same call manually. Isolates Salesforce vs external.
  • 3Auth — OAuth token valid? Re-authenticate.
  • 4Payload — required fields? Correct data types? Valid picklists?
  • 5Validation rules — is a rule blocking insert silently?
🎤 One-Line Answer
"External logs → Postman manual test → auth → payload → validation rules. Postman test isolates whether issue is Salesforce or external."
70
Q70 · Integration
What are the OAuth 2.0 flows in Salesforce?
✅ Answer
JWT Bearer (recommended for server-to-server), Web Server (browser apps), Username-Password (avoid production), Device (IoT/CLI).
FlowUse ForRecommended?
JWT BearerServer-to-server automated✅ Yes
Web ServerBrowser-based apps✅ Yes
Username-PasswordTesting only❌ Avoid prod
DeviceIoT, CLI✅ Specific use
🎤 One-Line Answer
"JWT Bearer: server-to-server, certificate-based, recommended. Web Server: browser apps. Username-Password: avoid production."
71
Q71 · Integration
What is the Salesforce REST API endpoint structure?
✅ Answer
Base: https://[instance].salesforce.com/services/data/v62.0/. Key endpoints: /sobjects (CRUD), /query (SOQL), /composite (batch), /limits (usage).
GET /services/data/v62.0/sobjects/Account/{id} // Read POST /services/data/v62.0/sobjects/Account // Create PATCH /services/data/v62.0/sobjects/Account/{id} // Update DELETE /services/data/v62.0/sobjects/Account/{id} // Delete GET /services/data/v62.0/query?q=SELECT+Id+FROM+Account GET /services/data/v62.0/limits // API usage POST /services/data/v62.0/composite // Batch
🎤 One-Line Answer
"/services/data/v62.0/ — /sobjects for CRUD, /query for SOQL, /composite for batching, /limits for monitoring. Always pin API version explicitly."
72
Q72 · Integration
How do you implement retry logic for failed API callouts?
✅ Answer
Queueable with attempt counter — catch 5xx/exceptions → re-enqueue with count+1. After MAX_ATTEMPTS: log error. Never retry 4xx — bad request won’t succeed on retry.
  • 💡Queueable implements both Queueable AND Database.AllowsCallouts
  • 💡Catch 5xx responses: re-enqueue with attempts+1
  • 💡After MAX_ATTEMPTS (e.g. 3): log to Integration_Error__c
  • 💡4xx responses (400, 401, 404): DO NOT retry — fix the request instead
🎤 One-Line Answer
"Queueable with attempt counter: catch 5xx → re-enqueue count+1 → log after MAX. Never retry 4xx — bad requests won’t succeed."

Section 6: Service Cloud & Case Management

Core knowledge for Salesforce Support Engineer roles

Q73–Q90
73
Q73 · Service Cloud
What is the typical Case lifecycle in Salesforce Service Cloud?
✅ Answer
New → Assigned → In Progress → Pending Customer → Resolved → Closed. Each stage triggers automation: assignment rules, SLA milestones, escalation rules, notifications.
StageAutomation Triggered
NewAssignment Rules route to queue/agent
AssignedSLA timer starts, agent notified
Pending CustomerAuto-email, optional timer pause
ResolvedCSAT survey sent
ClosedAuto-close after X days if no response
🎤 One-Line Answer
"New → Assigned → In Progress → Pending Customer → Resolved → Closed. Assignment rules, SLAs, escalation rules trigger at each stage."
74
Q74 · Service Cloud
Case Assignment Rules are not routing cases. How do you troubleshoot?
✅ Answer
Check: only one rule can be active, rule entry order (first match wins), criteria on entries, checkbox on case creation.
  • 1Setup → Case Assignment Rules → verify Active checkbox = checked. One active rule only.
  • 2Check rule entry ORDER — evaluates top to bottom, first match wins
  • 3Verify rule entry CRITERIA — correct field/operator/value?
  • 4UI case creation: “Assign using active assignment rules” checkbox must be checked
  • 5API/Apex: must set AssignmentRuleHeader
🎤 One-Line Answer
"Assignment rules not firing: check Active, rule entry order, criteria. UI: checkbox required. API: set AssignmentRuleHeader."
75
Q75 · Service Cloud
What are Entitlements and Milestones in Salesforce?
✅ Answer
Entitlement: defines support level a customer gets. Milestone: time-based SLA steps within Entitlement Process. Violation triggers escalation.
  • 💡Entitlement — linked to Account — defines WHAT support they receive
  • 💡Entitlement Process — defines SLA steps (milestones) for cases
  • 💡Milestone — “First Response: 1 hour”, “Resolution: 8 hours”
  • 💡Violation — exceeded → triggers escalation (email, field update, reassign)
🎤 One-Line Answer
"Entitlement = support level. Milestones = SLA timing steps. Violation triggers escalation. Core of Salesforce SLA enforcement."
76
Q76 · Service Cloud
What is Omni-Channel and how does it route work?
✅ Answer
Routes Cases, chats, custom objects to agents based on availability, capacity, skills. Agents set Presence Status; work is automatically pushed to available agents.
ComponentPurpose
Service ChannelDefines type of work (Cases, custom)
Routing ConfigPriority, capacity, routing model
QueueHolds unassigned work
Presence StatusAgent availability (Available/Busy/Away)
🎤 One-Line Answer
"Omni-Channel: routes Cases/chats to agents by availability + capacity. Service Channels + Routing Configs + Queues + Presence Status. Replaces manual queue assignment."
77
Q77 · Service Cloud
Email-to-Case is not creating cases. How do you troubleshoot?
✅ Answer
Check: feature enabled, routing address active, Email Log Files for receipt, deliverability setting, sender not blocked.
  • 1Setup → Email-to-Case → verify feature Enabled
  • 2Routing Addresses → verify email address active + “Enable On-Demand Service” checked
  • 3Email Log Files (Setup → Email) — did Salesforce receive the email?
  • 4Deliverability → must be “All Email” not “System Email Only”
  • 5Setup → Email → Email Blocked Senders — sender blocked?
🎤 One-Line Answer
"Email-to-Case not creating cases: check feature enabled, routing address active, Email Log Files, deliverability = All Email, sender not blocked."
78
Q78 · Service Cloud
What is a Case Escalation Rule?
✅ Answer
Auto-escalates cases not resolved within defined time — reassigns owner, sends notification, changes priority. Respects Business Hours for accurate SLA calculation.
  • 💡Create: Setup → Escalation Rules → New → criteria + age threshold
  • 💡Example: open > 4 hours AND Priority = High → reassign to Senior Queue
  • 💡Actions: reassign owner, send email notification, change priority
  • 💡Works with Business Hours — excludes off-hours from case age calculation
🎤 One-Line Answer
"Escalation Rules: auto-escalate if case age > threshold. Actions: reassign, notify, change priority. Business Hours ensures accurate SLA time."
79
Q79 · Service Cloud
What is Salesforce Knowledge?
✅ Answer
Article knowledge base for agents and customer self-service. Article lifecycle: Draft → In Review → Published → Archived. Einstein surfaces relevant articles automatically on Case open.
  • 💡Create: New Article → Draft → Submit for Review → Publish
  • 💡Agents attach articles to Cases → consistency and faster resolution
  • 💡Einstein Case Classification + Knowledge = AI surfaces relevant article on Case creation
  • 💡Customer self-service: publish to Experience Cloud Help Center
🎤 One-Line Answer
"Knowledge: article base for agents + self-service. Draft → Review → Published. Einstein surfaces articles on Case. Reduces handle time."
80
Q80 · Service Cloud
What is Service Console and how is it different from standard view?
✅ Answer
Service Console: multi-tab layout, split-screen, keyboard shortcuts, Omni-Channel widget, macros. Optimized for handling multiple cases simultaneously.
FeatureStandard ViewService Console
Multiple recordsOne page at a timeMultiple tabs
Related recordsSeparate pageSplit screen inline
MacrosNoYes
Omni-ChannelLimitedBuilt-in widget
🎤 One-Line Answer
"Service Console: multi-tab, split-screen, macros, Omni-Channel. Dramatically faster for agents handling high case volume."
81
Q81 · Service Cloud
What are Macros in Service Console?
✅ Answer
Automate repetitive multi-step actions — single click: update status, send email, add comment, change priority. Reduces handle time and ensures consistency.
  • 💡Setup: Setup → Macros → New → add instructions (Update, Email, Quick Text)
  • 💡Agents run: Macros widget in Service Console → click macro name
  • 💡Example: “Close Case” → Status=Closed + send closure email + add comment
  • 💡Bulk Macros: run across multiple selected cases simultaneously
🎤 One-Line Answer
"Macros: one-click multi-step automation. Update fields, send emails, add comments — all in one click. Reduces handle time, ensures consistency."
82
Q82 · Service Cloud
How do you auto-close cases after customer inactivity?
✅ Answer
Record-Triggered Flow with scheduled path OR Escalation Rule: when status = “Pending Customer” → wait 5 days → if still pending → close + notify.
// Record-Triggered Flow: // Trigger: Case status changed to 'Pending Customer' // Scheduled Path: 5 days after LastModifiedDate // Condition: Status still = 'Pending Customer'? // If yes: Update Status = 'Closed' // Send email: 'Case auto-closed' // OR Escalation Rule: // Case Age > 5 days AND Status = Pending Customer // Action: Update Status = Closed
🎤 One-Line Answer
"Flow with scheduled path: wait 5 days → still pending → close + notify. OR Escalation Rule: case age > 5 days = auto-close."
83
Q83 · Service Cloud
What are Quick Actions in Salesforce?
✅ Answer
Shortened forms for common tasks — Log Call, New Task, Send Email — directly from record page without navigating away. Massive productivity boost for support agents.
  • 💡Create: Object → Buttons, Links and Actions → New Action → configure fields → add to Page Layout
  • 💡Object-specific: only on that object (Log a Call on Case)
  • 💡Global: any page (New Task from anywhere)
  • 💡Agents log calls in 2 clicks vs navigating multiple pages
🎤 One-Line Answer
"Quick Actions: shortened forms for Log Call, New Task, Send Email without navigating away. Add to Page Layout. Major productivity gain."
84
Q84 · Service Cloud
What are Business Hours and why are they important?
✅ Answer
Define when support team is available. Used by Escalation Rules and SLA Milestones to calculate case age — excluding off-hours and holidays for accurate SLA.
  • 1Setup → Business Hours → New → name, timezone, working days/hours
  • 2Add Holidays → exclude public holidays from SLA calculation
  • 3Assign to Escalation Rules and Entitlement Processes
  • 4Create multiple sets: “India Hours”, “US Hours” for global teams
🎤 One-Line Answer
"Business Hours: define working hours/timezone. Escalation Rules and SLA Milestones use them for accurate time excluding off-hours."
85
Q85 · Service Cloud
What is Einstein Case Classification?
✅ Answer
AI auto-populates Case fields (Priority, Reason, Type) from case text using ML trained on historical cases. Reduces agent data entry, improves routing accuracy.
  • 💡Setup → Einstein Case Classification → enable → needs 1000+ historical cases
  • 💡Predicts: Priority, Case Type, Case Reason, custom picklist fields
  • 💡Combined with Assignment Rules: AI sets Priority=High → routes to senior queue
  • 💡Agent reviews AI suggestions → confirms or overrides → model improves
🎤 One-Line Answer
"Einstein Case Classification: AI fills Priority/Type/Reason from case text. Trains on 1000+ cases. Reduces entry, improves routing accuracy."
86
Q86 · Service Cloud
What is a Case Queue?
✅ Answer
Queue: holding area for unassigned cases. Members see and accept cases. Assignment Rules route in, Omni-Channel pushes from queues to agents by availability.
  • 💡Create: Setup → Queues → New → objects → add members (users/groups)
  • 💡Members see queued cases in list views filtered by Queue Name
  • 💡Accept: open case → Accept button (Omni-Channel) or change owner manually
  • 💡Queue email: notify all members when new case arrives
🎤 One-Line Answer
"Queue: holding area for unassigned cases. Assignment Rules route in, Omni-Channel pushes to agents. Members see and accept cases."
87
Q87 · Service Cloud
Approval emails are not reaching approvers. How do you troubleshoot?
✅ Answer
Check: email deliverability = All Email, approver active with valid email, Email Alert configured in approval process, Email Log Files for bounce.
  • 1Deliverability: Setup → Email → Deliverability = “All Email”
  • 2Approver active: Setup → Users → active? Valid email address?
  • 3Approval Process: Initial Submission Actions → Email Alert configured?
  • 4Email Log Files: did Salesforce send? Bounce or block?
  • 5HasOptedOutOfEmail: approver opted out?
🎤 One-Line Answer
"Approval emails missing: deliverability = All Email, approver active with valid email, Email Alert in approval process, Email Log Files for bounce."
88
Q88 · Service Cloud
What is Embedded Service Chat (Live Agent)?
✅ Answer
Real-time chat on websites/Experience Cloud. Sessions routed via Omni-Channel. Pre-chat form captures customer info. Transcripts auto-create Cases.
  • 💡Setup: Embedded Service → New Deployment → configure button, branding, routing
  • 💡Pre-chat form: captures name, email, case reason → auto-populates Case
  • 💡Supervisor: monitor chats, whisper to agent, take over chat
  • 💡Einstein Bot handles routine questions → escalates complex to human
🎤 One-Line Answer
"Embedded Chat: real-time chat routed via Omni-Channel. Pre-chat auto-creates Case. Supervisor can monitor and whisper. Transcripts saved."
89
Q89 · Service Cloud
What is a Case Deflection strategy?
✅ Answer
Deflection = preventing cases via self-service: Knowledge Help Center, Einstein Bot for FAQs, web-to-case article suggestions. Fewer cases = agents handle complex issues only.
  • 💡Knowledge + Help Center: customers find answers before contacting support
  • 💡Einstein Bot: handles FAQs, escalates complex to agents
  • 💡Web-to-Case deflection: show relevant articles before case form submission
  • 💡Deflection metric: % of users who found answer without submitting case
🎤 One-Line Answer
"Case deflection: Knowledge + Einstein Bot + web-to-case article suggestions. Customers self-serve → fewer cases → agents handle complex issues."
90
Q90 · Service Cloud
What are Quick Text and Email Templates?
✅ Answer
Quick Text: short pre-written snippets inserted with ; shortcut. Email Templates: full email templates with merge fields for consistent communication.
  • 💡Quick Text: Setup → Quick Text → type ; in email composer → suggestions appear
  • 💡Email Templates: Setup → Email → Templates → create with merge fields {!Case.CaseNumber}
  • 💡Templates ensure brand consistency in customer communications
  • 💡Combine with Macros: one-click sends specific template = maximum efficiency
🎤 One-Line Answer
"Quick Text: ; shortcut snippets. Email Templates: full emails with merge fields. Combine with Macros for one-click consistent communication."
🚀

Section 7: Deployment & Release Management

Change Sets, SFDX, sandboxes — support engineers handle deployments daily

Q91–Q105
91
Q91 · Deployment
What is a Change Set and how do you troubleshoot deployment failures?
✅ Answer
Deploys metadata between connected orgs. Failures: missing dependencies, test failures (75% coverage needed), component errors.
  • 1Setup → Deployment Status → find deployment → click for error details
  • 2“Component not found in target” — missing dependency. Add it to Change Set.
  • 3Test failures — 75%+ org-wide coverage required. Check failing test class.
  • 4Validate first — run validation (no deploy) to catch issues early
  • 5Quick Deploy — after successful validation, deploy without re-running tests (24hr window)
🎤 One-Line Answer
"Change Set failures: Deployment Status shows errors. 75% coverage required. Validate first, then Quick Deploy. Missing dependencies = most common failure."
92
Q92 · Deployment
What are the different types of Salesforce Sandboxes?
✅ Answer
Four types: Developer (metadata only, 200MB, daily refresh), Developer Pro (1GB, daily), Partial Copy (sample data, 5GB, 5-day), Full Copy (full production, 29-day).
TypeDataStorageRefreshUse For
DeveloperNo prod data200MB1 dayDev, unit testing
Developer ProNo prod data1GB1 dayLarger projects
Partial CopySample data5GB5 daysTesting, QA
Full CopyFull prod dataSame as prod29 daysUAT, perf testing
🎤 One-Line Answer
"Developer (200MB, daily), Developer Pro (1GB, daily), Partial Copy (5GB, 5-day, sample data), Full Copy (full data, 29-day). Full Copy for UAT."
93
Q93 · Deployment
What is SFDX and how does it differ from Change Sets?
✅ Answer
SFDX: CLI-based, source-driven development with Git version control, CI/CD pipelines, scratch orgs. Better than Change Sets: version control, automation, rollback via Git.
FeatureChange SetsSFDX
Version controlNoGit-based
AutomationManualCI/CD pipelines
RollbackManualgit revert
Dev environmentsSandboxes onlyScratch Orgs
🎤 One-Line Answer
"SFDX: CLI + Git + CI/CD + Scratch Orgs. Change Sets: manual, no version control. SFDX for modern teams, Change Sets for simple deployments."
94
Q94 · Deployment
How do you check and fix Apex test coverage issues?
✅ Answer
Need 75%+ org-wide coverage for production deployment. Developer Console highlights uncovered lines in red. Fix: write test methods covering uncovered paths.
// Check coverage via SOQL SELECT ApexClassOrTriggerId, NumLinesCovered, NumLinesUncovered FROM ApexCodeCoverageAggregate WHERE ApexClassOrTrigger.Name = 'MyClass' // Developer Console: Tests menu → Run All // Red lines = uncovered paths needing test methods // Fix: add test for uncovered scenario @isTest static void testErrorPath() { Account acc = new Account(Name='Test'); try { insert acc; } catch(Exception e) { System.assert(e.getMessage() != null); } }
🎤 One-Line Answer
"Run All Tests shows coverage %. Developer Console highlights red uncovered lines. Write tests for uncovered paths. 75% org-wide minimum for production deploy."
95
Q95 · Deployment
What is Quick Deploy?
✅ Answer
After successful validation (tests passed), deploy to production without re-running tests — minutes vs hours for large orgs. Valid 10 days after validation.
  • 1Run Validate on Change Set — runs all tests but doesn’t actually deploy
  • 2After successful validation → Quick Deploy button appears (valid 10 days)
  • 3Click Quick Deploy during off-peak hours → deploys in minutes
  • 410-day window to use Quick Deploy after validation
🎤 One-Line Answer
"Validate first (tests run but no deploy) → Quick Deploy deploys without re-running tests. Minutes vs hours. Valid 10 days after validation."
96
Q96 · Deployment
What is the difference between metadata and data deployment?
✅ Answer
Metadata: config and code — Apex, objects, Flows, layouts — via Change Sets/SFDX. Data: actual records — Accounts, Contacts — via Data Loader/Bulk API. Metadata first, then data.
TypeWhatToolExample
MetadataConfig/CodeChange Set, SFDXApex class, Flow, Object
DataRecordsData Loader, Bulk APIAccount records
🎤 One-Line Answer
"Metadata = code/config via Change Sets/SFDX. Data = records via Data Loader/Bulk API. Both needed for complete environment. Metadata first, then data."
97
Q97 · Deployment
What happens to Custom Metadata when deploying between orgs?
✅ Answer
Custom Metadata records DEPLOY with metadata — they travel in Change Sets and SFDX automatically. Unlike Custom Settings (data = separate migration). This is why Custom Metadata is preferred for config.
✅ Why Custom Metadata is Preferred
Custom Metadata deploys with code. Custom Settings are data — need separate Data Loader migration. Always use Custom Metadata for configuration that needs to move between sandboxes and production.
🎤 One-Line Answer
"Custom Metadata deploys with code automatically. Custom Settings are data — need separate migration. Always prefer Custom Metadata for deployable configuration."
98
Q98 · Deployment
A deployment succeeded but the feature is not working in production. Why?
✅ Answer
Deployment success ≠ feature working. Common causes: Flow deployed inactive, Custom Settings not populated, Permission Set not assigned, Named Credentials pointing to wrong endpoint.
  • 💡Flows: deploy inactive by default — manually activate in target org
  • 💡Custom Settings: data doesn’t deploy — add values in target org
  • 💡Permission Sets: deployed but not yet assigned to users
  • 💡Named Credentials: may still point to sandbox endpoint
🎤 One-Line Answer
"Deployment success ≠ feature working. Check: Flows activated, Custom Settings populated, Permission Sets assigned, Named Credentials pointing to production."
99
Q99 · Deployment
What is a deployment rollback strategy?
✅ Answer
No native one-click rollback. Options: SFDX git revert + redeploy (cleanest), kill switch via Custom Metadata (instant no-deploy), pre-prepared rollback Change Set.
  • 💡SFDX: git revert → redeploy previous version (fastest, cleanest)
  • 💡Kill switch: Custom Metadata flag disables code instantly without redeployment
  • 💡Change Set: pre-prepare rollback CS before deployment — ready if needed
  • 💡Prevention: thorough sandbox testing + validation run before every production deploy
🎤 One-Line Answer
"No native rollback. SFDX: git revert + redeploy. Kill switch: Custom Metadata flag. Change Sets: pre-prepared rollback CS. Prevention beats rollback."
100
Q100 · Deployment
How do you refresh a sandbox?
✅ Answer
Setup → Sandboxes → find sandbox → Refresh. Wipes all sandbox data and copies from production. After refresh: update Named Credentials and email deliverability.
  • 💡Path: Setup → Quick Find: “Sandboxes” → find sandbox → Refresh
  • 💡WARNING: wipes ALL data in sandbox — backup anything important first
  • 💡After refresh: update email deliverability, Named Credentials, integration configs
  • 💡Takes minutes (Dev) to hours (Full) depending on org size
🎤 One-Line Answer
"Setup → Sandboxes → Refresh. Wipes sandbox, copies from production. Backup before. Update deliverability and Named Credentials after."
101
Q101 · Deployment
What are Profile deployment challenges?
✅ Answer
Profiles contain references to ALL objects/fields — if target org has different config, deployment fails. Best practice: deploy Permission Sets instead.
  • 💡Full Profile deploy = commonly fails due to missing fields/objects in target
  • 💡Fix: deploy Permission Sets — only contain explicitly added permissions
  • 💡If must deploy Profile: deploy dependent objects/fields FIRST, then Profile
  • 💡SFDX tip: --ignorewarnings for non-critical Profile warnings in CI/CD
🎤 One-Line Answer
"Profile deployments fail due to missing field/object references. Deploy dependencies first. Better: use Permission Sets which only contain explicitly added permissions."
102
Q102 · Deployment
What is a Scratch Org?
✅ Answer
Temporary, source-driven, disposable Salesforce environment created in minutes. Clean slate per feature — no legacy config contamination. Expire in 1-30 days. Max 6 active per Dev Hub.
# Create scratch org sfdx force:org:create -f config/project-scratch-def.json \ -a MyScratchOrg --durationdays 7 # Push local source sfdx force:source:push # Open in browser sfdx force:org:open # Clean slate: perfect for isolated feature dev + testing
🎤 One-Line Answer
"Scratch orgs: temp, disposable, source-driven. Created in minutes, expire 1-30 days. Clean slate per feature — no legacy contamination."
103
Q103 · Deployment
What is the difference between Managed and Unmanaged Package?
✅ Answer
Managed: protected IP, code hidden, upgradeable, namespace, AppExchange. Unmanaged: open code, fully editable, not upgradeable. Unlocked (SFDX): open + upgradeable, modular DevOps.
TypeCode VisibleUpgradeableUse For
ManagedNo — protectedYesAppExchange products
UnmanagedYes — editableNoTemplates, open-source
UnlockedYesYesEnterprise DevOps
🎤 One-Line Answer
"Managed: hidden code, upgradeable, AppExchange. Unmanaged: open code, not upgradeable. Unlocked: open + upgradeable, SFDX enterprise DevOps."
104
Q104 · Deployment
How do you monitor a deployment in progress?
✅ Answer
Setup → Deployment Status: real-time progress, components deployed/failed, test results. Can abort mid-deployment if critical error detected.
  • 💡Path: Setup → Quick Find: “Deployment Status”
  • 💡Shows: % complete, components succeeded/failed, tests passing/failing
  • 💡Cancel: click Abort button — rolls back all changes
  • 💡After completion: full report of succeeded, failed, coverage per class
🎤 One-Line Answer
"Setup → Deployment Status: real-time progress, component status, test results. Can abort mid-deploy. Validate first saves time by catching errors early."
105
Q105 · Deployment
What is Salesforce order of execution?
✅ Answer
Critical for debugging conflicting automations — determines which runs first when multiple automations configured on same object.
Order of Execution (simplified): 1. System Validation Rules 2. Before Triggers 3. Custom Validation Rules 4. Duplicate Rules 5. After Triggers 6. Assignment Rules 7. Auto-Response Rules 8. Workflow Rules (field updates) 9. Flows 10. Escalation Rules 11. Roll-up Summaries 12. Async: @future, Platform Events
🎤 One-Line Answer
"Before trigger → Validation Rules → After trigger → Workflow → Flows. Critical for debugging conflicts between multiple automations on same object."
🎯

Section 8: Real-World Scenario Questions

Asked in every senior support engineer interview

Q106–Q120
106
Q106 · Scenario
SCENARIO: Users report Salesforce is running very slowly today. How do you diagnose?
✅ Answer
Systematic: trust.salesforce.com first (platform incident?) → isolate scope → check Apex Jobs → API limits → debug log for slow SOQL.
  • 1trust.salesforce.com — platform incident? No point debugging your org if SF is down
  • 2Isolate scope — all users or one? All pages or specific?
  • 3Apex Jobs — Setup → Apex Jobs → long-running jobs consuming CPU?
  • 4API limits — near daily limit? API throttling causes slowness
  • 5Debug log — affected user → check SOQL timing and CPU usage
  • 6Browser — clear cache? Try incognito? Different browser?
🎤 One-Line Answer
"trust.salesforce.com first. Isolate: all users vs one, all pages vs specific. Apex Jobs, API limits, debug log. Clear browser cache often fixes it."
107
Q107 · Scenario
SCENARIO: 10,000 records were accidentally deleted in production. What do you do?
✅ Answer
Recycle Bin (15 days) → mass undelete → if hard deleted/expired, restore from backup. Stop the cause, investigate, prevent recurrence.
  • 1Recycle Bin — App Launcher → Recycle Bin → mass select → Undelete
  • 2Apex undelete — ALL ROWS query + undelete DML for bulk
  • 3Stop cause — disable automation that deleted them
  • 4Audit Trail — who deleted? User, automation, integration?
  • 5Hard deleted/expired — restore from backup (OwnBackup, Data Export CSV)
  • 6Prevention — remove Delete permission, validation rule blocking deletion
🎤 One-Line Answer
"Recycle Bin → mass undelete. Hard deleted: restore from backup. Stop cause. Audit Trail shows who. Prevention: remove Delete permission."
108
Q108 · Scenario
SCENARIO: A critical Apex trigger is blocking all Account saves in production. What do you do immediately?
✅ Answer
IMMEDIATE: deactivate trigger or use kill switch. Restore service FIRST. Diagnose and fix in sandbox. Then deploy fix and re-activate.
🚨 Critical Rule
ALWAYS stop the bleeding first. Deactivate trigger in 30 seconds = all users restored. Never try to quickly fix production trigger — makes it worse. Fix in sandbox, then deploy.
  • 1IMMEDIATE: Setup → Apex Triggers → uncheck Active → Save
  • 2OR: Kill switch — Custom Metadata Is_Active__c = false (no deployment!)
  • 3Communicate: notify users issue identified and being fixed
  • 4Root cause: debug log → reproduce error → read exception
  • 5Fix in sandbox → test → deploy → re-activate
🎤 One-Line Answer
"Deactivate trigger instantly. Restore service first, diagnose second. Fix in sandbox → deploy. Kill switch pattern prevents emergency deactivations."
109
Q109 · Scenario
SCENARIO: A user says “Salesforce is not working.” How do you begin?
✅ Answer
“Not working” is too vague. Gather specifics with 5 key questions before touching anything.
  • What exactly are you trying to do? (object, action)
  • What do you see? Error message? Blank page? Screenshot?
  • When did it start? Always? Today? After specific action?
  • Is it only you? Or others too?
  • Which browser/device? Chrome, Safari, Mobile?
💡 Fast Fix — Try This First
Clear browser cache + cookies, try incognito mode, try different browser. 40% of ‘not working’ issues are browser-related and resolved in 2 minutes.
🎤 One-Line Answer
"Ask: what action, what error, when started, who else affected, which browser. Clear cache, try incognito. 40% of ‘not working’ = browser issue."
110
Q110 · Scenario
SCENARIO: A Flow set wrong values on 5,000 records. How do you fix it?
✅ Answer
Stop Flow → identify affected via SOQL with LastModifiedDate → test on 5 records → bulk fix → fix Flow root cause → redeploy.
// Step 1: Deactivate the bad Flow // Step 2: Find affected records List<Account> affected = [ SELECT Id, Status__c FROM Account WHERE LastModifiedDate >= 2026-05-21T10:00:00Z AND LastModifiedDate <= 2026-05-21T11:00:00Z AND Status__c = 'Wrong_Value' ]; // Step 3: Fix (test on 5 records first!) for(Account a : affected) { a.Status__c = 'Correct'; } update affected;
🎤 One-Line Answer
"Deactivate Flow → SOQL by LastModifiedDate finds affected → test on 5 → bulk fix → fix Flow in sandbox → redeploy. LastModifiedDate = your time machine."
111
Q111 · Scenario
SCENARIO: An integration was working last week but now creates duplicates. What happened?
✅ Answer
Something changed last week. Audit Trail reveals it. Check: UPSERT vs INSERT switch, External ID cleared, Duplicate Rules disabled.
  • 1Audit Trail — what changed between last week and now?
  • 2Integration code — UPSERT or INSERT? Was it recently changed?
  • 3External ID field — still populated on existing records?
  • 4Duplicate Rules — disabled or criteria changed?
  • 5Fix: switch to UPSERT + External ID, merge existing dupes
🎤 One-Line Answer
"Audit Trail reveals what changed. Check UPSERT vs INSERT, External ID cleared, Duplicate Rules disabled. Fix: UPSERT + External ID + merge existing dupes."
112
Q112 · Scenario
SCENARIO: An LWC shows blank in production but works in sandbox. Why?
✅ Answer
Blank LWC: F12 browser console for JS errors, FLS differences prod vs sandbox, data not existing in prod, hard refresh for cache, enable debug mode.
  • 1F12 Browser Console — JavaScript error = exact blank screen cause
  • 2FLS — queried fields accessible to this user in prod?
  • 3Data — component expects data that doesn’t exist in prod
  • 4Hard refresh — Ctrl+Shift+R clears cached CSS/JS
  • 5Debug mode — Setup → Users → Development Mode for detailed JS errors
🎤 One-Line Answer
"F12 console first — JS error shows exact cause. Check FLS differences, data differences prod vs sandbox, hard refresh. Enable debug mode for detailed errors."
113
Q113 · Scenario
SCENARIO: A SOQL query that took 2 seconds now takes 30 seconds. Why?
✅ Answer
Performance degradation: data volume grew beyond index threshold, unindexed WHERE field, or index removed. Query Plan tool reveals index vs table scan.
  • 💡Query Plan tool: Developer Console → Help menu → Query Plan → paste SOQL
  • 💡Table scan = slow (scans all records). Index = fast.
  • 💡Selective queries: WHERE on indexed field (Id, Name, External ID, custom indexed)
  • 💡Request custom index from Salesforce Support for frequently-queried fields
🎤 One-Line Answer
"Query Plan tool shows index vs table scan. Table scan on large object = 30 seconds. Fix: WHERE on indexed field or request custom index from Salesforce Support."
114
Q114 · Scenario
SCENARIO: Salesforce emails are not reaching customers. How do you troubleshoot?
✅ Answer
Check: deliverability, Email Log Files for receipt/bounce, opt-out status, bounce list, SPF/DKIM DNS records.
  • 1Deliverability: Setup → Email → Deliverability = “All Email” not “System Only”
  • 2Email Log Files: Setup → Email → did SF send? Bounce or block?
  • 3HasOptedOutOfEmail: Contact/Lead opted out?
  • 4Bounce management: previous bounce = SF suppresses resending
  • 5SPF/DKIM: for custom From address — verify DNS records
🎤 One-Line Answer
"Check: deliverability = All Email, Email Log Files for bounce/block, HasOptedOutOfEmail = false, SPF/DKIM for custom domain. Email Log Files is the definitive record."
115
Q115 · Scenario
SCENARIO: A Batch Apex job is stuck “In Progress” for hours. How do you handle it?
✅ Answer
Check if truly stuck (no progress 30+ min) → Abort via Setup → Apex Jobs → resubmit with smaller scope.
  • 1Setup → Apex Jobs → find job → check records processed (not changing = stuck)
  • 2If no progress 30+ min → click Abort button
  • 3Debug log for Automated Process user → find governor limit error
  • 4Re-run with smaller scope: Database.executeBatch(job, 10)
  • 5Check for UNABLE_TO_LOCK_ROW on records being processed
🎤 One-Line Answer
"Apex Jobs → Abort. Debug log for Automated Process user shows root cause. Resubmit with smaller scope (10-50 records) to reduce governor limit pressure."
116
Q116 · Scenario
SCENARIO: Multiple automations on same object are conflicting. How do you resolve?
✅ Answer
Know order of execution. Consolidate to one trigger per object (handler pattern). Deactivate conflicting Process Builders/Workflows. Document all automations per object.
// One trigger per object — handler pattern trigger AccountTrigger on Account ( before insert, after insert, before update, after update) { // Single entry point new AccountTriggerHandler().run(); } // No multiple triggers fighting each other // All logic organized in one handler class
🎤 One-Line Answer
"One trigger per object (handler pattern) eliminates conflicts. Deactivate conflicting Process Builders. Document all automations per object — prevention beats debugging."
117
Q117 · Scenario
SCENARIO: A report is showing wrong numbers compared to last week. How do you investigate?
✅ Answer
Check filters (date range most common), run as affected user (sharing affects results), SOQL cross-check, verify data not mass-modified.
  • 💡Check filters — date range, status, owner filters. Most common cause of wrong numbers.
  • 💡Run as user — sharing rules affect report results. Log in as user to see their view.
  • 💡SOQL cross-check — run equivalent SOQL → compare count to report
  • 💡Data changes — records bulk-modified between last week and now?
🎤 One-Line Answer
"Check filters (date range most common), run as affected user (sharing affects results), SOQL cross-check. Audit Trail shows if data was bulk-modified."
118
Q118 · Scenario
SCENARIO: How do you prioritize multiple critical support issues simultaneously?
✅ Answer
Triage by business impact: production outage > data loss risk > critical feature broken > single user blocked > cosmetic. Communicate ETA immediately.
PriorityIssue TypeResponse
P1 CriticalProduction down, all usersImmediate — drop everything
P2 HighData loss, critical featureSame day, hours
P3 MediumSingle user, workaround existsSame or next business day
P4 LowEnhancement, cosmeticNext sprint
🎤 One-Line Answer
"Triage: outage > data loss > feature broken > single user > cosmetic. Communicate ETA immediately. Document everything. Delegate parallel issues."
119
Q119 · Scenario
SCENARIO: After migration, many records have wrong owner. How do you fix it?
✅ Answer
Wrong OwnerId in migration. Fix: SOQL finds wrongly owned records → build source-to-SF user ID mapping → Data Loader Update with OwnerId column.
  • 1Identify: SOQL → records owned by migration user or wrong owner
  • 2Build mapping: source username → Salesforce User ID mapping CSV
  • 3Data Loader Update: CSV with Id + OwnerId columns
  • 4Verify: spot check 20 records after update
  • 5Prevention: include OwnerId/owner External ID in migration CSV from start
🎤 One-Line Answer
"SOQL finds wrongly owned records. Build source-to-SF user ID mapping. Data Loader Update with OwnerId. Prevention: map owner IDs in migration CSV."
120
Q120 · Scenario
SCENARIO: What is your go-to checklist before making ANY change in a production Salesforce org?
✅ Answer
The non-negotiable production change checklist every support engineer must follow without exception.
  • Test in sandbox first — NEVER make untested changes in production
  • Peer review — second set of eyes on every change
  • Data backup — export affected records before any data changes
  • Communicate — notify users: “changes tonight 10PM–11PM”
  • Off-peak deploy — fewest active users = minimum blast radius
  • Rollback plan — know exactly how to undo BEFORE making change
  • Monitor 30 min post-deploy — watch debug logs and error emails
  • 🔥Document — record what changed, when, why, by whom
🎤 One-Line Answer
"Sandbox test → peer review → backup → communicate → off-peak deploy → rollback plan → monitor → document. Production is sacred. Skipping sandbox costs 10x to fix later."