{
  "dataset": "ForceFolks Salesforce Interview Question Bank",
  "publisher": "ForceFolks",
  "page": "https://forcefolks.com/salesforce-interview-questions/",
  "license": "CC BY 4.0 for original ForceFolks material. Credit ForceFolks and link to the page. Salesforce documentation retains its own rights.",
  "date_modified": "2026-10-06",
  "questions": [
    {
      "id": "q01",
      "q": "What is the difference between a profile, a permission set and a permission set group?",
      "role": "Admin",
      "level": "Junior",
      "strong": "A profile sets a user's base settings, such as the login hours and default apps. Permission sets add access on top of the profile. A permission set group bundles permission sets for a job role. Salesforce recommends minimal profiles and access through permission sets.",
      "weak": "Says profiles and permission sets do the same thing."
    },
    {
      "id": "q02",
      "q": "How do org-wide defaults, the role hierarchy and sharing rules work together?",
      "role": "Admin",
      "level": "Mid",
      "strong": "Org-wide defaults set the most restrictive record access. The role hierarchy opens records up to managers. Sharing rules, teams and manual sharing open access to more users. Restriction rules work the other way: they limit the records a user can see.",
      "weak": "Thinks a sharing rule can remove access that the default already gives."
    },
    {
      "id": "q03",
      "q": "When do you use a lookup relationship, and when do you use a master-detail relationship?",
      "role": "Admin",
      "level": "Junior",
      "strong": "Use master-detail when the child cannot exist without the parent and needs roll-up summary fields. The child takes the parent's sharing. Salesforce deletes the child when you delete the parent. Use a lookup for a loose link where the child can stand alone.",
      "weak": "Picks master-detail for every relationship without thinking about deletes and sharing."
    },
    {
      "id": "q04",
      "q": "A user cannot see a record. How do you find the cause?",
      "role": "Admin",
      "level": "Mid",
      "strong": "Check object access in the user's profile and permission sets first. Then check the org-wide default, role hierarchy and sharing rules. Also check applicable restriction rules. Use the Sharing button or Sharing Hierarchy to inspect record access.",
      "weak": "Gives the user the 'View All Data' permission to fix the problem fast."
    },
    {
      "id": "q05",
      "q": "Which automation tool do you use for a new requirement, and why?",
      "role": "Admin",
      "level": "Mid",
      "strong": "Start with Flow. Use a before-save flow for fast field updates on the same record and an after-save flow for related records. Use Apex only when Flow cannot meet the volume or logic. Salesforce ended support for Workflow Rules and Process Builder on December 31, 2025.",
      "weak": "Builds a new Process Builder process."
    },
    {
      "id": "q06",
      "q": "How do you import 200,000 records and avoid duplicates?",
      "role": "Admin",
      "level": "Mid",
      "strong": "Use Data Loader, because the Data Import Wizard handles up to 50,000 records at a time. Clean the file first. Turn on matching and duplicate rules. Load a small test batch, check the results, then load the rest.",
      "weak": "Loads all records at once with no test batch or duplicate check."
    },
    {
      "id": "q07",
      "q": "What is the difference between a validation rule and a required field?",
      "role": "Admin",
      "level": "Junior",
      "strong": "A field required in its definition must have a value, including in API loads. A page-layout requirement applies only in that layout. A validation rule checks a condition, such as requiring a loss reason when an opportunity moves to Closed Lost.",
      "weak": "Says page layout required fields also stop API loads."
    },
    {
      "id": "q08",
      "q": "How do you prepare for a Salesforce release?",
      "role": "Admin",
      "level": "Mid",
      "strong": "Salesforce releases 3 times a year: Spring, Summer and Winter. Read the release notes, test in a sandbox on the preview instance and review release updates. Tell users what changes and when.",
      "weak": "Waits for users to report problems after the release."
    },
    {
      "id": "q09",
      "q": "How do you deactivate a user who owns many records?",
      "role": "Admin",
      "level": "Junior",
      "strong": "Freeze the user at once to stop logins. Transfer record ownership with the mass transfer tool or Data Loader. Then deactivate the user. You cannot delete a Salesforce user.",
      "weak": "Tries to delete the user."
    },
    {
      "id": "q10",
      "q": "How do you measure and improve user adoption?",
      "role": "Admin",
      "level": "Senior",
      "strong": "Track logins, record updates and key report usage. Ask users where Salesforce slows them down. Remove fields that nobody uses, simplify page layouts and train champions in each team.",
      "weak": "Only sends a reminder email to use Salesforce."
    },
    {
      "id": "q11",
      "q": "What are governor limits? Name the limits that matter most in triggers.",
      "role": "Developer",
      "level": "Junior",
      "strong": "Governor limits protect the shared platform. In a synchronous transaction, you get 100 SOQL queries and 150 DML statements. SOQL can return 50,000 records, DML can process 10,000 records and CPU time is 10,000 ms. Code must stay inside these limits at any data volume.",
      "weak": "Knows the word but cannot name a single limit."
    },
    {
      "id": "q12",
      "q": "How do you bulkify an Apex trigger?",
      "role": "Developer",
      "level": "Mid",
      "strong": "Process Trigger.new as a list, never one record at a time. Collect IDs into sets, run one query outside the loop and store results in maps. Do one DML operation on a list at the end. Test with 200 records.",
      "weak": "Puts a SOQL query inside a for loop."
    },
    {
      "id": "q13",
      "q": "Explain the order of execution when a record is saved.",
      "role": "Developer",
      "level": "Mid",
      "strong": "Initial system checks precede before-save flows and before triggers. Custom validation and duplicate rules run before the initial save. After triggers and other automation follow, including after-save flows. The transaction then commits before post-commit work. Explain re-entry from updates, and consult Salesforce's full sequence for the actual org.",
      "weak": "Thinks validation rules run after the after triggers."
    },
    {
      "id": "q14",
      "q": "When do you choose Flow, and when do you choose Apex?",
      "role": "Developer",
      "level": "Mid",
      "strong": "Choose Flow when the logic is clear and the volume is moderate, so admins can maintain it. Choose Apex for complex logic, large volumes, callouts with retries or code that needs unit tests. Do not mix both on the same object without one owner for the automation.",
      "weak": "Says code is always better."
    },
    {
      "id": "q15",
      "q": "How do you stop a trigger from running in a loop?",
      "role": "Developer",
      "level": "Mid",
      "strong": "Compare old and new field values so work runs only for relevant changes. Make updates idempotent, so repeated execution does not repeat side effects. Use narrowly scoped guards if needed. A blanket processed-ID set can skip valid later work. Test repeated updates and bulk loads.",
      "weak": "Uses a single static Boolean that blocks all later records in the batch."
    },
    {
      "id": "q16",
      "q": "What are the differences between future methods, Queueable Apex, Batch Apex and Scheduled Apex?",
      "role": "Developer",
      "level": "Mid",
      "strong": "Future methods run simple async work but cannot chain or take objects. Queueable Apex takes objects, returns a job ID and can chain. Batch Apex processes large data sets in chunks. Scheduled Apex runs code at set times, often to start a batch.",
      "weak": "Uses future methods for everything."
    },
    {
      "id": "q17",
      "q": "How do you write good Apex tests? What does 75% coverage mean?",
      "role": "Developer",
      "level": "Junior",
      "strong": "Default production deployment requires at least 75% overall Apex coverage and some coverage for every trigger. RunSpecifiedTests requires 75% for each deployed class and trigger. Tests must pass. Assert outcomes, cover bulk and failure cases, create test data and test supported asynchronous work with Test.startTest and Test.stopTest.",
      "weak": "Writes tests with no assertions only to reach 75%."
    },
    {
      "id": "q18",
      "q": "How do you make Apex secure?",
      "role": "Developer",
      "level": "Senior",
      "strong": "Use bind variables in SOQL to prevent injection. Declare 'with sharing' unless you have a clear reason. Enforce object and field security with user mode database operations or Security.stripInaccessible. Never put credentials in code. Use Named Credentials.",
      "weak": "Builds dynamic SOQL from user input with string concatenation."
    },
    {
      "id": "q19",
      "q": "What is the difference between Lightning Web Components and Aura components?",
      "role": "Developer",
      "level": "Junior",
      "strong": "Lightning Web Components use modern web standards. Aura is the older framework. Prefer Lightning Web Components for new work where the required features are supported. Both can appear on the same page, but check their interoperability rules. Measure performance instead of assuming every rewrite is faster.",
      "weak": "Does not know that Aura is the older model."
    },
    {
      "id": "q20",
      "q": "How do Lightning Web Components talk to each other?",
      "role": "Developer",
      "level": "Mid",
      "strong": "A parent passes data down through public properties marked @api. A child sends data up with custom events. Unrelated components use Lightning Message Service.",
      "weak": "Uses global variables or direct DOM access between components."
    },
    {
      "id": "q21",
      "q": "When do you use @wire, and when do you call Apex imperatively?",
      "role": "Developer",
      "level": "Mid",
      "strong": "Use @wire for read-only data that must refresh when its parameters change. The Apex method must be cacheable. Call Apex imperatively for actions the user starts, for DML or when you control the timing.",
      "weak": "Marks a method that does DML as cacheable."
    },
    {
      "id": "q22",
      "q": "How do you design an integration that calls an external API?",
      "role": "Developer",
      "level": "Senior",
      "strong": "Store the endpoint and authentication in Named Credentials and External Credentials. Make callouts async when the user does not need to wait. Add retries, timeouts and logging. Use Platform Events or Change Data Capture for event-driven sync.",
      "weak": "Hard-codes the endpoint and API key in Apex."
    },
    {
      "id": "q23",
      "q": "What is an AI agent in Salesforce, and when should you not use one?",
      "role": "Agentforce and Data 360",
      "level": "Junior",
      "strong": "An agent uses a large language model with your data, instructions and actions to complete tasks. Do not use an agent when a simple rule or a flow solves the task. Also avoid an agent when an error has a high cost and no human review.",
      "weak": "Says an agent is a chatbot with scripted answers."
    },
    {
      "id": "q24",
      "q": "An agent gives wrong answers. How do you find the cause?",
      "role": "Agentforce and Data 360",
      "level": "Mid",
      "strong": "Check the grounding data first: is the knowledge current and accessible? Then check the instructions, the topic scope and the actions. Test the same prompt in conversation preview and compare the reasoning with what you expected.",
      "weak": "Changes the model or rewrites everything at once."
    },
    {
      "id": "q25",
      "q": "How do you control what an agent can see and do?",
      "role": "Agentforce and Data 360",
      "level": "Mid",
      "strong": "Check the agent type and its execution context. Grant only needed permissions and actions. Test record access and human handoff for sensitive requests. Do not assume Trust Layer masking covers agents. Salesforce documents pattern-based and field-based masking as disabled for agents. Review logging and data controls for the actual feature.",
      "weak": "Gives the agent user System Administrator access."
    },
    {
      "id": "q26",
      "q": "What is Data 360, and how does it help agents?",
      "role": "Agentforce and Data 360",
      "level": "Mid",
      "strong": "Data 360 is the new name for Salesforce Data Cloud. It unifies customer data from many sources into one profile. Agents use this data to answer with more context and to take better actions.",
      "weak": "Says Data 360 is a backup tool."
    },
    {
      "id": "q27",
      "q": "How do you test an agent before go-live?",
      "role": "Agentforce and Data 360",
      "level": "Mid",
      "strong": "Write test cases for normal, edge and out-of-scope requests. Run them in conversation preview and in batch tests. Check the answers, the actions taken and the handoff to a human. Test again after each change.",
      "weak": "Tests 3 happy-path questions and goes live."
    },
    {
      "id": "q28",
      "q": "How do you measure whether an agent works?",
      "role": "Agentforce and Data 360",
      "level": "Senior",
      "strong": "Measure resolution rate, not only containment. Track escalations, customer satisfaction and the cost per resolved case. Review a sample of conversations each week.",
      "weak": "Reports the number of conversations only."
    },
    {
      "id": "q29",
      "q": "How do you run a discovery workshop?",
      "role": "Consultant and BA",
      "level": "Mid",
      "strong": "Agree on the goal and the success measures first. Map the current process with the people who do the work. Capture pain points, data sources and integrations. End with a prioritized list and the open questions.",
      "weak": "Starts by showing Salesforce features."
    },
    {
      "id": "q30",
      "q": "How do you write a good user story for Salesforce?",
      "role": "Consultant and BA",
      "level": "Junior",
      "strong": "Use the form 'As a role, I want an action, so that a benefit'. Add acceptance criteria that a tester can check. Keep each story small enough to deliver in one sprint.",
      "weak": "Writes stories with no acceptance criteria."
    },
    {
      "id": "q31",
      "q": "A stakeholder asks for a feature that breaks the data model. What do you do?",
      "role": "Consultant and BA",
      "level": "Mid",
      "strong": "Ask what problem the feature solves. Explain the cost: data quality, reporting and maintenance. Offer an option that meets the need inside the data model. Record the decision and who made it.",
      "weak": "Builds the feature because the stakeholder asked."
    },
    {
      "id": "q32",
      "q": "How do you handle scope creep?",
      "role": "Consultant and BA",
      "level": "Mid",
      "strong": "Compare each new request with the agreed scope. Estimate its impact on time and cost. Ask the sponsor to approve, trade or defer it. Keep a change log.",
      "weak": "Adds small requests without telling anyone."
    },
    {
      "id": "q33",
      "q": "How do you plan a data migration from another CRM?",
      "role": "Consultant and BA",
      "level": "Senior",
      "strong": "Map the source fields to Salesforce objects and fields. Clean and deduplicate before you load. Load in the right order, parents first. Run test loads in a sandbox and reconcile record counts. Plan the cutover and a rollback.",
      "weak": "Plans one big load on go-live day with no test run."
    },
    {
      "id": "q34",
      "q": "How do you drive adoption after go-live?",
      "role": "Consultant and BA",
      "level": "Mid",
      "strong": "Train users on their real tasks, not on features. Name a champion in each team. Track usage reports for 90 days and fix the top 3 pain points fast.",
      "weak": "Ends the project at go-live."
    },
    {
      "id": "q35",
      "q": "How do you choose between a single org and multiple orgs?",
      "role": "Architect",
      "level": "Senior",
      "strong": "Compare a shared org with multiple orgs against business processes, data residency, access rules and release needs. A shared org can simplify the customer view. Multiple orgs add separation but also integration and reporting work. Estimate each option's total cost instead of assuming one is always cheaper.",
      "weak": "Picks multiple orgs without a reason."
    },
    {
      "id": "q36",
      "q": "How do you design for large data volumes?",
      "role": "Architect",
      "level": "Senior",
      "strong": "Use selective queries on indexed fields and plan archiving early. Check for ownership and parent-child skew. More than 10,000 related records is a risk signal, not a universal platform limit. Evaluate Bulk API for loads and suitable archive storage. Test with representative volumes and sharing rules.",
      "weak": "Plans no archiving and ignores data skew."
    },
    {
      "id": "q37",
      "q": "Which integration pattern fits which use case?",
      "role": "Architect",
      "level": "Senior",
      "strong": "Use request and reply when the user needs an answer now. Use fire and forget for events that can process later. Use batch sync for large nightly loads. Use data virtualization when data must stay in the source system.",
      "weak": "Uses real-time point-to-point calls for everything."
    },
    {
      "id": "q38",
      "q": "How do you design a sharing model for 20,000 users?",
      "role": "Architect",
      "level": "Senior",
      "strong": "Start with private defaults where data is sensitive. Keep the role hierarchy close to the real reporting structure. Use criteria-based sharing and public groups. Test performance of sharing recalculation.",
      "weak": "Gives every user View All on all objects."
    },
    {
      "id": "q39",
      "q": "How do you set up DevOps and release management?",
      "role": "Architect",
      "level": "Mid",
      "strong": "Keep all metadata in source control. Develop in sandboxes or scratch orgs. Use a pipeline with automated tests and code review. Release on a fixed schedule with a rollback plan.",
      "weak": "Deploys with change sets straight to production."
    },
    {
      "id": "q40",
      "q": "When do you build on the platform, and when do you build off it?",
      "role": "Architect",
      "level": "Senior",
      "strong": "Build on the platform when the logic uses Salesforce data and needs Salesforce security. Build off the platform for heavy computing, large files or logic that other systems share. Compare limits, cost and the team's skills.",
      "weak": "Builds everything in Apex no matter the load."
    }
  ],
  "sources": [
    {
      "publisher": "Salesforce",
      "title": "Workflow Rules and Process Builder end of support",
      "checked_at": "2026-10-06",
      "url": "https://help.salesforce.com/s/articleView?id=000389396&language=en_US&type=1"
    },
    {
      "publisher": "Salesforce",
      "title": "Data Import Wizard record limit",
      "checked_at": "2026-10-06",
      "url": "https://help.salesforce.com/s/articleView?id=sf.data_import_wizard.htm&language=en_US&type=5"
    },
    {
      "publisher": "Salesforce",
      "title": "Apex governor limits",
      "checked_at": "2026-10-06",
      "url": "https://login.salesforce.com/help/pdfs/en/salesforce_app_limits_cheatsheet.pdf"
    },
    {
      "publisher": "Salesforce",
      "title": "Trigger order of execution",
      "checked_at": "2026-10-06",
      "url": "https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_triggers_order_of_execution.htm"
    },
    {
      "publisher": "Salesforce",
      "title": "Production deployment test coverage",
      "checked_at": "2026-10-06",
      "url": "https://developer.salesforce.com/docs/platform/salesforce-migration-guide/guide/forcemigrationtool-deploy-run-specific-tests.html"
    },
    {
      "publisher": "Salesforce",
      "title": "Lightning Web Components and Aura",
      "checked_at": "2026-10-06",
      "url": "https://developer.salesforce.com/docs/platform/lwc/guide/get-started-lwc-or-aura.html"
    },
    {
      "publisher": "Salesforce",
      "title": "Trust and Agentforce data controls",
      "checked_at": "2026-10-06",
      "url": "https://help.salesforce.com/s/articleView?id=sf.copilot_trust.htm&language=en_US&type=5"
    }
  ],
  "rubric": [
    {
      "score": 1,
      "description": "Gives a definition only."
    },
    {
      "score": 2,
      "description": "Gives a correct answer and one real example."
    },
    {
      "score": 3,
      "description": "Explains trade-offs and limits, with an example from their own work."
    },
    {
      "score": 4,
      "description": "Explains trade-offs, limits, testing and the business impact. Says when they would choose another option."
    }
  ],
  "interview_loop": [
    {
      "step": 1,
      "name": "Screening",
      "focus": "Experience and role fit"
    },
    {
      "step": 2,
      "name": "Technical",
      "focus": "Platform knowledge"
    },
    {
      "step": 3,
      "name": "Scenario",
      "focus": "Trade-offs and design"
    },
    {
      "step": 4,
      "name": "Task",
      "focus": "Take-home or live build"
    },
    {
      "step": 5,
      "name": "Decision",
      "focus": "Team fit and decision"
    }
  ]
}
